# 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.