Encoding MPEG-4 for SIGGRAPH Submissions

Beginning in 2004, SIGGRAPH will allow videos accompanying papers to be submitted electronically. They have specified that they will accept only one kind of video file: Quicktime MPEG-4. This guide describes how to encode these files yourself. However, if at all possible, I would encourage you to let me encode the files, since I can generally spend more time tweaking the videos.

SIGGRAPH doesn’t specify a file size, but they say to submit early if all your submission materials total over 100 MB. With this in mind, I use 25-50 MB as a rough target file size. Since file size and quality depend greatly on the complexity of the video, and given the fact that the Quicktime MPEG-4 is a variable bit rate codec, it’s not possible to accurately predict the resulting file size any more than that.

The whole of SIGGRAPH’s submission guidelines can be found here.

Info that only pertains to MIT's Computer Graphics Group appears in blue text.


Required Software: Quicktime Pro 6.x

Only the Pro version of Quicktime 6.x can create MPEG-4s. A license for Quicktime Pro along with instructions on how to upgrade is on Citydev.

Quicktime Pro is not a separate download; the license key simply unlocks the Pro features which are included in the standard free version of Quicktime. Thus, if you already have Quicktime 6, you do not have to download any additional software.

The newest version of Quicktime is version 6.4. Apple claims that this version has improved MPEG-4 encoding, so you’ll probably want to upgrade Quicktime if you do not already have this version. To upgrade, open the Quicktime Player and select Help > Upgrade Existing Software… and follow the directions from there.


Preparing Your Video for Encoding

While in theory Quicktime can work with AVIs, its compatibility is spotty. Some AVI codecs will be displayed at low quality in Quicktime, while other codecs simply won’t work at all (the video will just be a white screen). Unfortunately, one of the codecs that doesn’t work is the Canopus DV codec, which is the native format for many of our video projects. Thus to encode a Canopus DV file in Quicktime you’ll first have to convert the Canopus file into something Quicktime can work with.

I suggest you export your project from Premiere as a Quicktime movie using the Animation codec with the quality slider set at 100%. I recommend this because the Animation codec at 100% is a lossless codec. Be aware that the resulting file will be very large (usually several GB). Use this Quicktime movie to encode to MPEG-4.

If you are short on disk space and don’t want to work with a file that is several gigs large, then another option is to encode using the Avid DV codec. The Avid DV codec is not installed with Quicktime and can be found in \\schizzo\share\codecs\. A file using this codec will have a size of approximately 215 MB a minute. However, this codec is not lossless, although the compression is very light.

In most cases, you probably won’t see a difference between an Avid DV and an Animation encoded file, but if you have the space, use Animation to ensure that you won’t be losing quality.


Encoding

1. Open the video you wish to encode with the Quicktime player.

2. Select File > Export. This brings up the Save exported file as window. If you do not see the Export option in the file menu, then you are not using the Pro version of Quicktime (see the Required Software section of this page).

3. In the Save exported file as window, select Movie to MPEG-4 from the Export pull-down menu (the second pull-down menu from the bottom). Press the Options… button to open the MPEG-4 Settings window.

4. The MPEG-4 Settings window is where you will do the most of your tweaking. The settings are grouped into five general areas that are selected using the pull down menu at the top of the screen. The areas are: General, Video, Audio, Streaming, and Compatibility. The paragraphs at the bottom of the screen are simply a written summary of all your current settings.

Here is what the settings for each area of the codec should be:


General
Video Track: Improved. (Basic is highly limited when it comes to resolution, bit rate, and frame rate).

Size: Most likely 320x240. To quote the SIGGRAPH electronic submissions guideline page:

"We also recommend that you choose a reasonable frame size and frame rate: full-frame video may not play back at 30 fps on many current laptops."
So basically the message is “Don’t use full resolution.”

The MPEG-4 codec allows three options: Current (preserve the resolution of the source), 320x240, and 160x120. 320x240 should play fine at 30 fps on any laptop currently in use. 160x120 is too small to be useful.

If you want a different resolution, you will have to create your source video at that resolution (as explained in Preparing Your Video for Encoding) and use Current for the size. You may need to do this if there are small details in your video which are simply not noticeable at 320x240, although keeping in mind SIGGRAPH’s admonition, I wouldn’t go any higher than 480x360. Please note that each dimension of the video must be divisible by eight. (You could also use a higher resolution by reducing the frame rate, but I predict that the choppy motion that would result from a lower frame rate would be unacceptable for most submissions.)

Audio Track: Music. Yeah, I know that you probably don’t have music in your video and that the only sound is a voice over, but the codec meant for speech is not included by default with the Quicktime package, which is why the speech option is grayed out. Music is fine, since it simply uses the AAC codec, which most experts feel is better than MP3.


Video
Video Track: Improved.

Bit Rate Slider: 900 kbps (can be changed).

Frames per second: 29.97. if your source is DV. If you video is entirely an animation you created from frames, then use whatever frame rate you rendered at. If real-time motion is not a concern, then you can decrease the frame rate, which would then allow you to use a higher resolution (in keeping with SIGGRAPH's request for a "reasonable" frame rate and resolution).

Key frame every: 24 frames (can be changed).

The bit rate and keyframe rate are the two settings that will go the most to determining the quality of your video. They are also the two settings that you can experiment with freely. The values given here are the defaults, which in my experience usually give pretty good video. Unfortunately, since the complexity of SIGGRAPH submission videos can vary greatly, I can’t simply recommend a one-size-fits-all bit rate that will look good for all videos. I suggest you start with these as a baseline and see if the results (both quality and file size) are acceptable. If not, then these are the two settings you need to tweak.

Tip: If your video seems to pulsate or flash rhythmically, then you have a problem with “keyframe flashing.” It is caused by having too many keyframes for the selected bit rate; all the bits are spent on the keyframes, leaving the intermediate frames to be of noticeably lesser quality. The difference in quality is so great that it is visually apparent and causes the video to seemingly pulsate. To solve this, increase the distance between keyframes. This evens out how the bits are distributed, creating a smooth transition between frames.


Audio
Audio Track: Music.

Bit rate slider: 128 kbps (can be changed). If you need the file to be really tiny, you can reduce this to 64 kbps (especially if your audio is just speech, where you won’t notice much of a difference).

Channels: Mono. Only use Stereo if your video includes stereo music or has panned sound effects. If it is just speech, then the speech was likely recorded with a mono mic, so stereo would simply be a waste of space.

Output Sample Rate: Recommended. (this will keep the original sampling rate). If file size is a dire concern, use 32 kHz.

Encoding Quality: Best. Nothing but the best!


Streaming
Hinting Type: None. Your file isn’t being streamed, so there’s no need for any of this.


Compatibility
This section refers to compatibility with devices that may play MPEG-4 (like cell phones or PDAs), not compatibility with other computers. Like Streaming, this section is unnecessary for our purposes.

Compatibility Type: None. (ISMA has a bit rate restriction)

Desired Connection Speed: Any.


5. Hit OK to return to the Save exported file as window, name your file (the file will have a .mp4 extension), and hit save. Encoding time varies from machine to machine, but expect the average SIGGRAPH submission to take an average of 10-15 minutes to encode.
Return to Video Guide