Making Movies
-------------
QuickTime 2.0 supports movies of higher data rates, frame rates, and frame sizes than in the past. The problem for content developers of how to balance these variables to create the best possible movie still remains.
The improvements apply to all existing decompressors. Cinepak, Apple Video, Animation, and Graphics compressors will show the best result. Further, best playback result, as always, are obtained when the movie is played back at either its normal size or at exactly double size.
There is no magic formula for how to make the best movie. You need to select your target playback machine and experiment with some variables. In the following paragraphs some benchmark numbers are provided to help get you started.
To make video based movies, use the Cinepak (previously Compact Video) compressor. If you have a Power Macintosh computer with the QuickTime PowerPlug extension installed, CinePak compression runs about 2.5 times faster than on a Quadra 950.
Movies can now typically be made which take full advantage of the target device. This means you can make movies at 150k/sec and have them play back from a CD150. You can also make movies at 300k/sec and have them play back on a CD300. There are other limiting factors, however, such as frame rate and frame size. Even if you can't get the desired frame rate (due to video hardware limitations), you may be able to take advantage of the higher data rate in other ways. For example, you might choose to include higher quality audio.
The biggest limiting factor for movie playback is usually the performance of video memory. NuBus video cards are much slower than on board video memory.
On a Macintosh IIfx it is possible to play a 320x240 movie at 15 fps to 8 and 16 bit displays, and sometimes to 32 bit displays. A 320x240 movie can play on the same fx at 30fps, in most cases. There is no on board video memory on the fx, which greatly limits performance.
On an Macintosh LC 475, a 320x240 movie at up to 30fps can play to the on board video memory at 16 bits. A 240x180 can be played pixel doubled at 15fps at 16 bits, which is full screen for the 12 inch monitor. These same numbers also apply for a Duo 270c.
On any Quadra, a 320x240 movie can be played at 30fps (or more in many cases) to on board video at any depth. A 320x240 movie can also be played pixel doubled at between 15 and 24 fps, depending on the amount of motion in the content. A 320x240 movie can be played at 30 fps to most NuBus video boards.
On the Power Macintosh computers a 320x240 movie can be played at 30fps to on board video. On most Power Macintosh computers, a 320x240 movie can be played back pixel doubled at 30 fps.
To playback "full screen" movies on many machines requires a special application. When the movie plays back it must not intersect the menu bar or the rounded corners of the desktop, or performance will suffer. Currently the simplest way to play a movie full screen is using OttoPlayer, which is on the QuickTime 1.5 and 1.6 developer CD's.
When making movies, for frame rates up to about 15fps, the movie data rate should be no higher than 150k/sec. For movies at 30fps, the data rate typically needs to be close to 300k/sec.
One way to get higher performance from low end machines is to play movies back at 8 bits. Less data has to be pushed through to video memory per frame, so more frames or bigger frames can be used. Unfortunately, 8 bit video can look rather grainy. One way to improve this is to calculate a custom color table for the movie for use on 8 bit displays. Two tools are included with the seed which allow you to do this. SetMovieColorTable lets you take an existing color table and attach it to a movie. MakeMovieColorTable lets you calculate a color table for a movie. The color table attached to the movie will be used in MoviePlayer and in other applications which use the Movie Controller to control the palette. The custom color table is only used for playback to displays at 8 bits or less. At 16 and 32 bit, the color table is not used. This allows you to create a single movie which will playback well at any bit depth. The process of attaching a color table to a movie does not change the compressed data in any way.
Existing Content
----------------
Existing content will playback much more smoothly using QuickTime 2.0. Frames are now displayed at much more accurate times. This helps to eliminate the "jerkiness" associated with software based digital video.
QuickTime has always required that a movie be "pre-rolled" before being played. The pre-roll process allows the movie to allocate all the resources it needs to play the movie, and to start reading from the disk. Some applications fail to pre-roll the movie before playing. Others don't pre-roll with the correct values. If it plays back well in MoviePlayer (and poorly in the application), the application probably isn't pre-rolling. In QuickTime 2.0 pre-rolling is much more important than in the past. With earlier versions of QuickTime, it was possible to almost get away without pre-rolling the movie. With QuickTime 2.0, not pre-rolling the movie can cause extremely bad playback. If a movie starts out playing badly, it probably has not been pre-rolled. MoviePlayer does pre-roll correctly. If a movie plays badly inside another application, try playing it in MoviePlayer.
Looping Movies
--------------
The way looping is usually handled in QuickTime is somewhat different in QuickTime 2.0. Previously, a movie in loop mode would start to accumulate all its frames in memory. This made the movie playback better once all the frames were loaded. However, if all the frames couldn't be loaded, because there wasn't enough memory, it actually made playback worse as the Memory Manager thrashed around looking for free space. In QuickTime 2.0 the frames are not ever cached in memory. However, work has been done in 2.0 to improve looping performance. Most movies should now loop extremely smoothly from hard disk. From CD movies should loop smoothly, with only a slight delay between the end and beginning.
Article Change History:
28 Nov 1995 - Corrected minor typo.
15 Feb 1995 - Reviewed for accuracy and changed keyword.
Support Information Services