|
|
libVideoFile
Overview
- Handling of video and audio data files.
All input and output to the files is done by libVideoFile. Data can be
read on a frame basis, where each frame contains a video image or a bunch of audio
data with a given time span.
Seeking is done on a frame accurate level when reading raw data. When reading uncompressed
data, seeking in audio streams is sample accurate.
- Decode and encode video and audio data.
All data can be accessed either in its raw form thru a codec object. When opening a
file, the needed codec is created automatically. Uncompressed video frames and audio samples
can be read directly. For writing the desired codec needs to be specified when creating new
tracks.
- All functionality is provided by modules which are loaded at runtime. This includes the
input/output backends for the various file types and the codecs. This way it is possible
to add new codecs and fileformats without altering any of libVideoFile's code.
All plugins are C++ objects which are derived form their respective general classes.
File formats
- Avi
The Avi IO-Module can read and write files >2GB using the OpenDML extensions
to the avi-file format. The extensions are used automatically when necessary.
- Quicktime
There are two io-Modules Quicktime included. Both rely on 3rd party libraries.
- Quicktime: This IO-module use the quicktime4linux library for file handling
(quicktime4linux).
To install this plugin, when running configure the parameter
-enable-quicktime have to be used. This module is outdated and probably
will not work with recent versions of quicktime4linux.
- QT: This IO-module uses
OpenQuicktime for file handling. For now this works with Version 2.0.0.a1.
To install this plugin, when running configure the parameter
-enable-openquicktime should be used.
- Wav (8-bit and 16-bit pcm only)
- mp3
Read and write mp3 and mp2 files.
- yuv4mpeg
This is the video format of the
mjpeg-tools package. Streaming to stdin/stdout is possible.
- MpegVideo
This reads and writes Mpeg1/2 Video-Streams. Streaming to stdin/stdout is possible.
- Mpeg
This reads and writes Mpeg1/2 System-Streams. Streaming to stdin/stdout is possible.
However when reading from stdin the Seek()-functions provide not full functionality.
- Dvd
This IO-module uses
libdvdread. The library is included and build automatically. The DVDs are handled as
Mpeg system-streams, so menus are not possible. Navigation is supported by selecting
Title and Chapter numbers.
Audio-Codecs
- pcm 16-bit, mono and stereo
- mp2/mp3
- ac3 (reading is limited to stereo so far)
- for Quicktime: everything provided by OpenQuicktime
Video-Codecs
|