Codec information
The following concerns all the codecs built into the library.
DIVX
This encodes video in MPEG-4 using the OpenDivx codec. This is the
preferred compressed format although it probably won't be supported by
Microsoft or Apple any time soon. It takes the following
parameters:
divx_bitrate (int)
divx_rc_period (int)
divx_rc_reaction_ratio (int)
divx_rc_reaction_period (int)
divx_max_key_interval (int)
divx_max_quantizer (int)
divx_min_quantizer (int)
divx_quantizer (int)
divx_quality (int)
divx_fix_bitrate (int)
DV
DV is supported for full decoding but only for black and white encoding
on IA-32 platforms/architectures. Secondly, only NTSC 25 Mbit/sec
4:1:1 DV data has ever been tested. There are two derivatives of DV:
DVC and DVCP. Only DVC is currently supported.
IMA4
The IMA4 compressor reduces 16 bit audio data to 1/4 size, with very
good quality. For many years IMA4 was the best compressed audio format
in Quicktime. The first Starwars trailer in 1998 was encoded using
IMA4 audio.
JPEG
JPEG is preferred for compressed video. This format writes a seperate
JPEG photo for every frame in YUV 4:2:0.
JPEG supports the following parameters, which can be set after
quicktime_set_video.
jpeg_quality (int)
jpeg_usefloat (int)
These take 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 and in YUV 4:2:2. The
real advantage is that it can split compression and decompression
across 2 processors and it supports higher color sampling than JPEG
Photo. 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.
PNG
This consists of one PNG image for every frame. Like RAW this
codec supports 32 bit depths.
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.
TWOS
Twos is the preferred encoding for uncompressed audio. It stores 8,
16, and 24 bit audio, interleaved for multiple channels. The 8 bit
mode is signed. The 16 and 24 bit modes are big endian signed.
Vorbis
This is the preferred encoding for compressed audio although it
probably won't be supported by Microsoft or Apple any time soon. It
takes the following parameters:
vorbis_bitrate (int)
vorbis_max_bitrate (int)
vorbis_min_bitrate (int)
Units are bits per second.