[Home]General Information

Showing revision 31


Transcode is a suite of tools, all of which are command line utilities, for transcoding various video, audio, and container formats, running on a platform that supports shared libraries and threads. Decoding and encoding is done by loaded modules that are responsible for feeding transcode with raw video/audio streams (import modules) and encoding the frames (export modules). It includes a variety of video and audio filters, including (but not limited to) video de-interlacing, audio resampling, framerate conversion, different video resizing algorithms, smoothing, sharpening, denoisifying, and cutting.

A number of modules are included to enable import of DVDs on-the-fly, Video4Linux (including V4L2 video capturing), MPEG elementary streams (ES) or program streams (VOB), MPEG1/2/4 video, Digital Video (DV), YUV4MPEG streams, Nuppel Video (NUV), quicktime (MOV), MPEG audio layer-1/2/3, WAVE, DIVX, MJPEG, and raw or compressed (pass-through) video frames. A number of export modules for enable writing DivX ;-), DivX 4.02/5.xx, XviD, Digital Video, MPEG-1/2 or uncompressed AVI files with MPEG, AC3 (pass-through) or PCM audio. More file formats and codecs for audio/video import are supported by the MPlayer and avifile import modules (exporting with avifile is restricted to video codecs, with MPEG/PCM or AC3 (pass-through) audio provided by transcode). Limited DVD subtitle rendering is also available.

Its modular concept is intended to provide flexibility and easy user extensibility to include other video/audio codecs or file types. A set of tools is available to extract, demultiplex and decode the sources into raw video/audio streams for import, non AVI-file export modules for writing single frames (PPM) or YUV4MPEG streams, auto-probing and scanning your sources and to enable post-processing of AVI files, including header fixing, merging multiple files or splitting large AVI files to fit on a CD.

Transcode runs on UN*X like systems like Linux, BSD, and MacOSX.

How does it work?

transcode loads shared library modules that are responsible for feeding it with raw streams and encoding the frames:

The Import Modules for audio/video decoding are loaded with dlopen system call and are responsible for starting the video and audio streams (directly or via the popen system call) and have a single function interface to the main program. The import is handled by a thread that buffers the video/audio frames.

The main program transcode currently performs a number of simple video/audio frame manipulations (in this order) or allows simple pass-through of raw frame data:



Filter Plugins:

The Export Modules for audio/video encoding are loaded via the dlopen system call and the encoder loop is started for the selected frames. In most cases audio and video are handled by the same module.


Transcode comes with manpages which are available online as well. The transcode(1) manpage is probably the one you want to read since it is the most verbose and most complete one. If you have additions to a manpage or have written a new one, please don't hesitate to send it in.

There is a Transcode FAQ (Frequently Asked Questions) that covers issues not mentioned in the man pages.

There is additional documentation available here in this Wiki and you are welcome to contribute.

CVS access

Transcode has a public CVS archive. If you want to live on the bleeding edge, this is for you. The CVS should always compile but usually contains work-in-progress which may have serious bugs. Please make sure you always enable compression (-z3) when checking out or updating the archive.

   cvs -z3 -d :pserver:cvs@cvs.exit1.org:/cvstc login

Use an empty password to login.

   cvs -z3 -d :pserver:cvs@cvs.exit1.org:/cvstc co transcode

To keep your already checked out repository up-to-date use

   cd transcode && cvs -z3 update -dP

You can also browse the CVS archive online at


Contact / Mailing Lists

searchable mailinglist archives can be found here

Always look in the archives before you ask a question!

and meet us on IRCnet in #transcode

Transcode Wiki | Recent Changes | Preferences
Password required to edit | View other revisions | View current revision
Edited February 13, 2005 5:16 am by Jakemsr (diff)