Codec information
The following concerns all the codecs built into the library.
DV
DV is only supported for decoding only. Secondly, only NTSC 25
Mbit/sec 4:2:0 single frame per chunk DV data has ever been tested.
The Quicktime movies you get from Windows and Mac insert 3-4 frames per
chunk, hence they aren't single frame per chunk. This won't be decoded
properly.
IMA4
The IMA4 compressor reduces 16 bit audio data to 1/4 size, with very
good quality. This is the preferred codec for low bandwidth audio.
JPEG
and JPEG is preferred for low bandwidth video. This format writes a
seperate JPEG photo for every frame.
Using the JPEG format requires calling the following function after
quicktime_set_video.
int quicktime_set_jpeg(quicktime_t *file, int quality, int use_float);
This takes a quality factor from 1 - 100 and a booleen flag to
determine whether floating point operations should be used to slow it
down.
MJPA
MJPA stores each frame as two JPEGs interlaced. Quicktime for Linux
lets you synthesize MJPA images suitable for playback on hardware or
decompress MJPA frames captured on hardware. The real advantage is
that it can split compression and decompression across 2 processors,
doubling the frame rate. To enable dualized MJPA processing call:
quicktime_set_cpus(quicktime_t *file, int cpus);
immediately after the quicktime_init call. Cpus should contain
the number of CPUs to devote to compression.
After specifying MJPA in quicktime_set_video you need to call
quicktime_set_jpeg as described previously.
RAW
RAW identifies both a video and an audio codec. When you specify RAW
for an audio track you invoke unsigned 8 bit encoding so you'll probably
never use it.
When you specify RAW for a video track you get RGB packed
frames. RAW video supports alpha channels. To get RGBA packed frames
you can then issue
int quicktime_set_depth(quicktime_t *file, int depth, int track);
specifying a depth of 32. In this case the input format for
encode_video functions is RGBA packed as well.
PNG
This consists of one PNG image for every frame. Like RAW this
codec supports 32 bit depths.
YUV2
The human eye percieves brightness much more accurately than colors.
YUV2 downsamples the color components by 50% for a total compression of
33% with virtually no image degredation. This is preferred for
intermediate storage. YUV2 is called "Component video" in Losedows and
Mac OS land.
YUV4
YUV4 is only supported in Quicktime for Linux. It downsamples the
color components by 75% for a total 50% compression. YUV4 allows high
capture framerates on slow hard drives. Since the same downsampling is
used in MPEG-I and DV, this is the preferred intermediate format for
working with these sources.