Quicktime for Linux

Author: Adam Williams broadcast@earthling.net
Homepage: heroinewarrior.com/quicktime.html
Requires: libpthread libpng

Quicktime movies are first and foremost a very complicated, tedious, wrapper for 3rd party compression schemes. The advantage is it's well documented and it supports files longer than 4 GB.

Quicktime for Linux hides the structure of 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 or compressed header support. 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

Decoding Video
Changing the colormodel
Reading raw video
Reading keyframes
Reading raw audio

Positioning yourself in a file

Writing a file

Encoding Video
Changing the colormodel
Encoding Audio
Writing raw video
Writing keyframes
Writing raw audio
Information about specific codecs

Integrated firewire and DV support

Using the utilities