Quicktime for Linux

Author: Adam Williams broadcast@earthling.net
Homepage: freeyellow.com/members4/heroine
Requires: libjpeg libpthread libpng

Quicktime movies are first and foremost a very complicated, tedious, wrapper for 3rd party compression schemes.

Quicktime for Linux hides the nightmare of accessing a Quicktime movie and gives the programmer a set of audio and video streams with some compression ability. The audio tracks are sequential streams of PCM audio data and video tracks are a sequential streams of frames.

Before you drop your classes and write up your dream program on this be aware of some limitations. This library doesn't give you the official Quicktime API even remotely. It uses it's own threadable, scalable ANSI C API. This library doesn't include any commercial codecs nor does it include support for keyframes, which most of the expensive codecs require but the free codecs don't. Also you may encounter Quicktime files containing compressed headers. This library only reads uncompressed headers.

What you can do is create and read any Quicktime movie that uses JPEG, MJPA, RGB, PNG, or YUV2 compression and many sound formats. MJPA, JPEG, RGB, PNG, YUV 4:2:2, and YUV 4:2:0 encoding and decoding is currently built into the library. For audio, IMA4, ulaw, 16, 8, and 24 bit linear encoding and decoding is in the library. You can still get raw data if you want to write your own compression routines.

Contents

Step 1: Building the library

Opening a file

Reading a file

Positioning yourself in a file

Writing a file

Information about specific codecs

Using the utilities