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:1:1 DV data has ever been tested. There are two derivatives of DV: DVC and DVCP. The dvcp format is used by professional equipment and can't be supported because of cost restrictions.

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.

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 planar YUV, identical to MPEG. It downsamples the color components by 75% for a total 50% compression. This is the preferred intermediate format for working with MPEG.

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.

TWOS

Twos is the preferred encoding for 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. There is no codec for these formats because they're simple enough to access raw.