You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
6.9 KiB

<html>
<head>
<title> Linux Video Stream Processing Tool - Examples</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="DVD, digital video, DV, encoder, divx,
DivX;-), lame, source, posix, avifile, opendivx, codec, linux, AC3,
program stream, video, audio, transcode, decoder, stream, YV12">
</head>
<body bgcolor=#CDB5CD>
<a name=top></a>
<table cellspacing="10" cellpadding="0" border="0" width="100%">
<tr>
<td align=left valign="top" width=30% bgcolor="#a0a0a0">
<table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%>
<td align="left" bgcolor="#e9e9e9"> <FONT
FACE="Lucida,Helvetica">Introduction:</font>
</tr>
<tr>
<td>
<ul>
<li> <a href="#about"> <FONT FACE="Lucida,Helvetica">
Overview</i></font></a> <p>
<li> <a href="options.html"> <FONT FACE="Lucida,Helvetica">
Command-line options</font></a> <p>
<li> <a href="modules.html"> <FONT FACE="Lucida,Helvetica">
Import/export/filter plug-ins</font></a> <p>
</ul>
</td>
</tr>
</table>
</table>
<a name=about></a>
<table cellspacing="10" cellpadding="0" border="0" width="100%">
<tr>
<td align=left valign="top" width=30% bgcolor="#a0a0a0">
<table border="0" cellpadding="10" cellspacing="3" font size=+2 bgcolor="#ffffff" width=100%>
<td align="left" bgcolor="#e9e9e9"> <FONT
FACE="Lucida,Helvetica">Overview:
</tr>
<tr>
<td>
<FONT color=red><i> transcode </i> </font>
is a linux text-console utility for video stream processing,
running on a platform that supports shared libraries and threads.
Decoding and encoding is done by loading modules that are responsible
for feeding transcode with raw video/audio streams (import modules)
and encoding the frames (export modules). It supports elementary video
and audio frame transformations, including de-interlacing
or fast resizing of video frames and loading of external filters.
A number of modules are included to enable import of DVDs on-the-fly,
MPEG elementary (ES) or program streams (VOB), MPEG video,
Digital Video (DV),
YUV4MPEG streams, NuppelVideo file format and raw or compressed (pass-through) video frames
and export modules for writing DivX;-), OpenDivX, DivX 4.xx or
uncompressed AVI files with MPEG, AC3 (pass-through) or PCM audio.
Additional export modules to write single frames (PPM) or
YUV4MPEG streams are available, as well as an interface import module
to the <i>avifile</i> library.
It's 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 included to demux (<FONT color=red><i>tcdemux</i></font>), extract (<FONT color=red><i>tcextract</i></font>) and decode
(<FONT color=red><i>tcdecode</i></font>) the sources
into raw video/audio streams for import, probing (<FONT
color=red><i>tcprobe</i></font>) and scanning (<FONT
color=red><i>tcscan</i></font>) your sources and to enable post-processing
of AVI files, fixing AVI file header information (<FONT
color=red><i>avifix</i></font>), merging multiple files (<FONT color=red><i>avimerge</i></font>) or splitting
large AVI files (<FONT color=red><i>avisplit</i></font>) to fit on a CD.
<p><p>
<b><i>transcode</i></b> plug-in architecture overview:<p>
<i>transcode</i> loads shared library modules that are responsible for feeding it with raw streams and encoding the frames.
<ul>
<li> The <b>import modules</b> for audio/video decoding are loaded with
<i>dlopen</i> system call and are
responsible for starting the video and audio streams (directly or via the
<i>popen</i> 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.<p>
<li> The main program <b><i>transcode</i></b> currently performs
a number of video/audio frame manipulations (in
this order) or allows simple pass-through of raw frame data:
<p>
<font size=+2 color=blue>Video:</font>
<ul>
<li> cut out arbitrary frame region before processing
<li> de-interlace video frame
<li> fast enlarging of video width/height by a
multiple of 8/16/32 rows/columns up to 1024x768
<li> fast reduction of video width/height by a multiple of 8/16/32 rows/columns
<li> high-quality resizing with different filtering
<li> cut out arbitrary frame region for encoding
<li> fast rescale (down-sample) video width/height by a power of 2
<li> flip video frame upside down
<li> mirror image of video frame
<li> swap <i>red</i> and <i>blue</i> bytes or chroma
components in video frame
<li> transform to b/w video frame
<li> apply gamma correction
<li> anti-alias video frame
<li> DVD subtitle overlay (plug-in)
</ul>
<p>
<font size=+2 color=blue>Audio:</font>
<ul>
<li> swap byte order in audio stream
<li> change the volume of the audio stream
<li> re-sample audio stream (plug-in)
<li> down-sample to mono
<li> down-sample to 8-bit unsigned byte stream
<li> sync video with audio frames (V=0|A=N, V=1|A=N+1,...)
</ul>
<p>
<font size=+2 color=blue>Filter Plug-Ins:</font>
<ul> <li>Additional effects are available via <a href=filter.html>external filter plug-ins</a> loaded with option "-J".
</ul><p>
<li> The <b>export modules</b> for audio/video encoding
are loaded via the <i>dlopen</i> system call and the
encoder loop is started for the selected frames. In
most cases audio and video are handled by the same
module.
</ul>
<p>
<b><i>transcode</i></b> supported formats and codecs overview:<p>
<table cellspacing="10" cellpadding="0" border="0" width="100%">
<tr>
<td align=center>
<img src="tc.png">
</td>
</tr>
<tr><td align=center>
(ES=elementary stream, including
concatenated frames, PES=packetized elementary stream,
including program streams)</tr>
</table>
<p>
Colored boxes are supported without additional packages. However, most
capabilities are only available in the <i>0.6.0</i> pre-releases.
Unconnected boxes not yet implemented, but <i>0.6.0</i> (final) will
have a symmetrical butterfly structure.
OpenDivX
(obsolete) support included, but much newer and faster DIVX
encoding/decoding requires additional codecs available for linux.
Picture import supported by newer versions of <i>ImageMagick</i>
(0.5.x). Additional optional audio/video import codecs supported by using the
<i>avifile</i> library. Quicktime movie with limited codec
support is available via
the <i>quicktime4linux</i> library. You need <i>libdv</i>
installed to enable Digital Video decoding/encoding. <p>
</tr>
</tr>
</table>
</table>
<!-- hhmts start -->
Last modified: Fri Nov 29 15:45:16 Europe/Berlin 2002
<!-- hhmts end -->
</body> </html>