You don't gain much by keeping all the pixels either, considering the fact that in anamorphic videos the realtime resizing method is simple bilinear (most of the times ). Filesize is an issue as well, especially in high resolutions. So a compromise between quality and size must be made. Of course it's important how videos would be watched - cross-eyed on regular monitor (both images) or on iz3d with the special player (I think the image there has to be just one ), and the resolution of that screen... Anyway, let's just forget about this, it's not that important as long as the viewer enjoys the experience of watching .BlackShark wrote: As I previously said, letterboxing could be useful for playing crosseyed, but for recording, i'd rather find some other way around than throwing away some of the resolution.
In fact, I'd rather do AFR recording (full resolution shutter recording) with all the framerate requirement issues than recording letterboxed.
AFR is good but you have to be sure that it's really Alternate Frames that's been Rendered and captured, or sync is still going to be an issue (which doesn't seem to bother you, but most users won't be happy with it).
Yes, BUT it's strange to have the game fluidly running at 60fps (in 60hz display mode with v-sync on) [doesn't seem interrupted by the capture process] and in the same time capture with 25-30 fps only. It really depends on a lot of stuff, not on last place the way the capture software works. FRAPS for example obviously works on lower level, and I guess that's why it doesn't work anymore with iz3d drivers, but in the same time the reason why it's so fast compared to other apps (like the one I use, which runs on higher level (desktop)). For comparison I ran a game in a "mono" mode at stable 60fps @1024x768 - tried to capture with fraps (set to 60fps capture) and it captured it at 60fps without framerate going down! I was amazed, no frames dropped, perfect fluidity. Tried the other app (again set to 60fps capt) - framerate was again 60fps, but the resulting video had ~30 actual fps, only about half the frames were captured. That's why shutter mode is out of the question with this technique. If only fraps could be made to work again with the driver...BlackShark wrote:The reason why you aren't getting stable 30.0 fps is because you are playing and recoding on the same machine via software. Which means that your capture software has to interrupt the game rendering process to access the GPU backbuffer and then bring the image back through the GPU, through the PCI-express bus, and through the central RAM before being even able to access it for compression and disk writing.Zerofool wrote: I searched a lot on this matter whole last week and the best thing I managed to do is capture 1024x768 interlaced video, 30fps (no additional hardware required), so the final video is 2048x368 (quality doesn't benfit much from keeping the full rez so resizing width in half is good filesize-wise move). But when inspecting the video closely it's visible that motion isn't absolutely perfectly fluid (some frames are duplicated, so real captured frames per second are ~ 25-27). I should probably capture @25fps, or lower the rez to 800x600. The strangest thing is my CPU isn't used @100%... I'll experiment some more tomorrow and post the videos and more details on how I did it.
These represent a lot of bottleneck possibilities and are the reason why you can't get high res and fluid captures via sofware (fraps and others)
Yes, it's always better to have dedicated hardware for the job... quality comes with price.BlackShark wrote: I have personally tested this : using the same capture resolution, i get better framerate and lower cpu useage at the same time by capturing through my tv capture card (on the same PC) than by capturing via fraps.
Software captre sure is extremely practical and super cheap but i has unavoidable limitations.
I just said that because there are some games which use more than one core @100%, and having more cores will guarantee at least one core dedicated for the capture process itself, while the rest will cover the game and other background processes. Raw speed is still more important because these games are not that much right now. But I guess you're right that this won't help much in this case. Anyway everyone is free to investigate where the bottleneck really is (if they have the free time and resources).BlackShark wrote: Switching to a Quad or Octo-core won't help improve the resolution since the bottleneck is somewhere else.
=======================
OK, now finally here's my video and capture method:
Game: Overlord Raising Hell (v1.4)
Video: 800x300 (2x 400x300) 30fps, x264 ~2800kbps (using --crf 22)
Audio: mono, ogg vorbis ~130kbps
Length: 6:17 min
Filesize: 132MB
rapidshare | megaupload | badongo
The anamorphic version is ~257mb (~5600kbps) so I decided not to upload it. You'll notice framerate becoming verry low on some parts - the game is heavy in stereo, and this is the fastest running level (realm) and still no desynch with this method. I have a racing game capturing going on, it runs much faster and it looks cool .
I'm using the interlaced mode, capture with HyperCam v2.14.02, but when compressing sound I noticed it was just mono . The other app I tried was Camtasia Studio v4 (later versions are worse for game captures) it has stereo sound capture, but video capture is little slower and actual fps of the movie is even lower, and the worst part - it uses some kind of non-constant framerate (which is not typical for avi container), which makes videos harder to edit later (avisynth adds frames at the end to compensate for the missing frames and the whole video runs faster (30fps) so you have to use filter that analyzes the video and creates timecodes file to use later in mkvmerge). The codec I use for capturing is huffyuv (the one in ffdshow vfw) in YUY2 mode (predict left, no huffman opt).
The rest is similar to BlackShark's method but simpler - 3 avisynth scripts and megui.
And here are the scripts themselves:
avi1.avs
Code: Select all
directshowsource("clip0019.avi")
SeparateFields()
SelectEven()
Code: Select all
directshowsource("clip0019.avi")
SeparateFields()
SelectOdd()
Code: Select all
vid1=import("avi1.avs")
vid2=import("avi2.avs")
StackHorizontal(vid1,vid2)
# I did use the resize filter for this one in particular, but this may be skipped for higher detail level but bigger file.
Lanczosresize(800,300)
ConverttoYV12()