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
207 lines
6.9 KiB
4 years ago
|
<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>
|