After several sets of trial and error I found that the settings provided in this document have rendered desirable output for me when creating basic “screencasts.” These settings have been tested on long duration videos, in excess of 1 hour. I have had final file sizes as low as 66 MB for a video that is nearly two hours long with a final screen resolution at or near 800 x 600. Your usage and mileage may vary but these settings have proven successful for me.
These settings and recommendations are based off of the settings found on drupal.org node #62196.
Codec Type: H.264
Frame Rate: 10 fps
Frame Controls: Automatic (if available)
Key Frames: Every 500 frames (use frame reordering if available)
Pixel depth: 24
Spatial quality: 50
Temporal Quality: 50
Minimum Temporal Quality: 25
If your software only has options like low, medium and high you should be able to just select “medium” and still have your videos turn out fine.
When available use multi-pass encoding, your end file size will be smaller and sometimes the quality is even better.
Again if available, use an automatic data rate. If this option is not available for your software you may need to do some experimentation. The higher the number the larger your end file size will be.
Codec Type: IMA 4:1
Rate: 12.000 kHz
If your video has music or other attributes you may wish to tweak these settings some. I found that these settings work well for voice only. Also you should be cautious of your audio level when using such low quality settings because if your levels get too high your audio track may develop a slight squeak or just peak out and sound awful.
I’m using a file extension of *.mov, but I think a few other extensions work as well it just depends on what software and actual codec you are using.
I am using Apple Compressor but you should be able to use any encoding software and yield very similar results. Mencoder and ffmpeg are both very good video encoders and I believe they are both open source. It is my understanding that Mencoder is very good and fast at encoding H.264 video, especially on Mac Dual G5 and Dual Core computers. Again your experience may differ as I have not personally tested these settings with mencoder or ffmpeg. I plan to do so very soon.
Remember your video will only be as good as your source, so if you are recording off a remote desktop or something your video is already being compressed. Try to obtain your recordings from the source when and if possible. Also if you are recording system audio when making your recordings, try to remember to turn off all the alerts for your email programs and instant messenger applications. Your audience probably doesn’t want to hear a little “bonk” every time someone instant messages you.
It’s always a good practice not to resize your videos if possible during encoding. A native screen resolution is always best, but often not an option. The following snippets can be used to resize your web browser. Just copy and paste them into your “address” field or save them as bookmarks.
Like I said, it’s not always possible or desirable to encode your video in its native screen size. So if you have to scale your video try to maintain a screen resolution of 640 x 480 or higher. Even at 800 x 600 small text can be difficult to read. When I encode video I try to keep each length as an even number. Try to avoid sizes like 559 x 649 as I have found even numbers encode better. Some software applications do not have a setting to maintain your video’s aspect ratio. In those cases you may think you can just “guess” a screen resolution. Don’t! If ever in doubt, some simple math can save you a lot of time. Just try this…
Determine the desired final dimension of one side of your video, either the length or the height. Now divide that number by the size of the same side of your source video. Now save the answer and multiply whichever side of the video you didn’t use by that answer. You now have the final dimensions of your encoded video. If any of the final numbers turn out to be odd, just round up to make it an even length. Some may say that is not a good idea, but I have found that it yields desirable results. It’s ok to cheat it by a pixel or two, but you should avoid dramatically altering a length.
That explanation may be a bit confusing so let me give an example. I just have created a screen capture and my video has the dimensions of 1012 x 757. That’s way to big. My video is nearly two hours long, if I kept that size, my final video would be 250MB or even much larger than that. So I want to make this smaller, but still be able to read the text. I am going to say I want my final video to be as close to 800 x 600 as possible. As I have found that size still allows most text to be readable. So I am going to divide my desired output width of 800 by my source length of 1012.
800 / 1012 = .790513834
So now I need to determine the height for my final video. So I take the answer of the above equation multiply it by the height of my source video. So in my example I would multiply my source height of 757 by .79513834.
757 * .79513834 = 598.419
So I am just going to round this number off to 598.
My final video size will now be 800 x 598. Perfect!
Now that we have all these settings, plug them into your software and go.
Hope this helps. Playback tested in QT 7.1.3, VLC media player V 0.8.5, and MPlayer OSX V 1.0 rc1 all on a Mac PPC.