1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
<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>
|