transcode(1)transcode(1)NAMEtranscode - LINUX video stream processing tool
SYNOPSIStranscode-i name [-o name] [-y vmod,amod] [-w vbi‐
trate[,vkeyframes[,vcrispness]]] [-a atrack[,vtrack]] [-b abi‐
trate[,is_vbr[,quality[,mode]]]] [-M demuxer_mode] [-F codec_string] [
other options ]
COPYRIGHTtranscode is Copyright (C) 2001-2003 by Thomas Oestreich, 2003-2004
Tilmann Bitterberg, 2004-2007 Transcode Team
QUICK SUMMARYtranscode supports a huge range of options, as described in detail in
further section. Only one option is mandatory: -i name, for supplying
the input main (video) source. All other options are discretionary and
they can be skipped. Most commonly needed options are -o, -y, -w, -a,
-b, -M, -F and a fair number of transcode session needs a little more
than those. See section below for full description of all transcode
options.
DESCRIPTIONtranscode 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, AVI based codecs
and raw or compressed (pass-through) video frames and export modules
for writing DivX;-), XviD, DivX 4.xx/5.xx or uncompressed AVI and raw
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
avifile library.
It's modular concept is intended to provide flexibility and easy user
extensibility to include other video/audio codecs or filetypes. A set
of tools is included to demux (tcdemux), extract (tcextract) and decode
(tcdecode) the sources into raw video/audio streams for import, probing
(tcprobe) and scanning (tcscan) your sources and to enable post-pro‐
cessing of AVI files, fixing AVI file header information (avifix),
merging multiple files (avimerge), splitting large AVI files (avisplit)
to fit on a CD and avisync to correct AV-offsyncs.
OPTIONS-A use AC3 as internal audio codec [off].
Only pass-through supported.
-B n[,m[,M]]
resize to height-n*M rows [,width-m*M] columns [off,32]. M must
be one of 8, 16 or 32. It makes no difference which M you use.
You might look at the fast flag of the -Z option if you don not
want to calculate n and m yourself.
-C mode
enable anti-aliasing mode (1-3) [off].
1 de-interlace effects only
2 resize effects only
3 process full frame (slow)
-D num sync video start with audio frame num [0].
-E r[,b[,c]]
audio output samplerate [Hz], bits per sample and channels [as
input]. The option "-J resample" must be provided for export
modules not capable of re-sampling. Samplerate and bits per sam‐
ple can be specified as 0 to mean "same as input"; this allows
converting from stereo to mono while leaving the other parame‐
ters alone (-E 0,0,1).
-F codec_string
encoder parameter strings [module dependent].
The -F parameter has different meanings for different export
modules.
-y ffmpeg:
The codec String for the codec you want to encode. Example
values are -F mpeg4 or -F mpeg1video or -F huffyuv. To get a
list of valid codecs, use -F list
-y im:
The name of the image format you want to export. Example val‐
ues are '-F jpg' (default) or '-F png' or -F 'gif'. With -F jpg,
-w gives quality in percent. With -F png, the first digit of -w
gives compression level, the second one gives quality, so -w 95
selects best compression level (9) and 5 means PNG adaptive fil‐
tering.
-y jpg:
The quality of the JPEG encode in percent. Example values are
'-F 75' (default) or '-F 100'
-y mov:
Syntax: -F "<vcodec>,<acodec>[,<parameters>]"
<vcodec> = Videocodec to encode with. Default: "mjpa"
<acodec> = Audiocodec to encode with. Default: "ima4"
<parameters> = A comma seperated list of parameters
to be passed to the codec.
Note: You can use "list" instead of a video/audiocodec or param‐
eter to get a list of supported options.
-y mpeg:
Syntax: -F "<base-profile>[,<resizer-mode>[,user-profile]]"
<base-profile> can be one of
'1' = MPEG 1 (default)
'b' = big MPEG 1 (experimental)
'v' = VCD
's' = SVCD
'2' = MPEG2
'd' = DVD compliant
<resizer-mode> can be one of
0 = disable resizer (default)
1 = 352x288
2 = 480x480
3 = 480x576
4 = 352x240
<user-profile> is a filename of the profile file. You can
either specify the absolute path to the file or if you transcode
will look for it in the directory where you started transcode.
-y mpeg2enc:
Syntax: -F "<base-profile>[,<options_string>]"
<base-profile> can be one of
'0' = Generic MPEG1 (default)
'1' = Standard VCD
'2' = User VCD
'3' = Generic MPEG2
'4' = Standard SVCD
'5' = User SVCD
'6' = Manual parameter mode
'8' = DVD
<options_string> will be passed down to mpeg2enc untouched
by transcode. Have a look at the manpage for mpeg2enc.
-y raw:
The name of the image format to use for uncompressed video.
Examples are I420 (YUV 4:2:0 planar), YV12 (the same thing with
U and V reversed), or UYVY (YUV 4:2:2 packed). Use "-F help" to
get a list of formats.
-G val Gamma correction (0.0-10.0) [off].
A value of 1.0 does not change anything. A value lower than 1.0
will make the picture "brighter", a value above 1.0 will make it
"darker".
-H n auto-probe n MB of source (0=disable) default [1]
Use a higher value than the default to detect all subtitles in
the VOB.
-I mode
enable de-interlacing mode (1-5) [off].
1 "interpolate scanlines"
linear interpolation (takes the average of the surronding
even rows to determine the odd rows), and copies the even
rows as is.
2 "handled by encoder"
tells the encoding code to handle the fact that the frames
are interlaced. Most codecs do not handle this.
3 "zoom to full frame"
drops to to half size, then zooms out. This can cause exces‐
sive blurring which is not always unwanted. On the other
hand results are quite good.
4 "drop field / half height"
drop every other field and keep half height.
5 "interpolate scanlines / blend frames"
linear blend (similar to -vop pp=lb in mplayer) this, like
linear blend calculates the odd rows as the average of the
surrounding even rows, and also calculates the even rows as
an average of the original even rows and also calculates the
even rows as an average of the original odd rows and aver‐
ages the calculated and original rows. Something like avg
(avg(row1,row3), avg(row2, row4))
-J filter1[,filter2[,...]]
apply external filter plugins [off]. A full-blown transcode
installation has the following filter modules:
See the section FILTERS for details.
To see what filters are available at your installation of
transcode, execute
ls -1 `tcmodinfo -p`/filter*.so
Example:
transcode [...]
-J 32detect=force_mode=3,normalize,cut="0-100 300-400"
Will load the 32detect filter plugin with parameter
force_mode=3, the volume normalizer and the cut filter.
Note:
You can specify more than one -J argument. The order of filter
arguments specify in which order the filters are applied. Note
also, for transcode internally it makes no difference whether
you do "-J filter1 -J filter2" or "-J filter1,filter2"
Use 'tcmodinfo -i NAME' to get more information about the fil‐
ter_NAME. Not all filters support this but most of them do. Some
of the filter plugins have additional documentation in the docs/
directory. The FILTERS section documents nearly every filter
which might be of use.
-L n seek to VOB stream offset nx2kB default [0]
This option is usually calculated automatically when giving
--nav_seek and -c.
-K enable black/white by removing colors mode (grayscale) [off].
Please note this does not necessarily lead to a smaller image /
better compression.
For YUV mode, this is done by emptying the chroma planes, for
RGB mode a weightend grayscale value is computed.
-M mode
demuxer PES AV sync modes (0-4) [1].
Overview
The demuxer takes care that the right video frames go together
with the right audio frame. This can sometimes be a complex task
and transcode tries to aid you as much as possible.
WARNING: It does make a difference if you (the user) specifies a
demuxer to use or if transcode resp. tcprobe(1) chooses the one
which it thinks is right for your material.
This is done on purpose to avoid mystic side-effects. So think
twice, wether you specify a demuxer or let transcode choose one
or you might end up with an off-sync result.
0 Pass-through. Do not mess with the stream, switch off any
synchronization/demuxing process.
1 PTS only (default) Synchronize video and audio by inspecting
PTS/DTS time stamps of audio and video. Preferred mode for
PAL VOB streams and DVDs.
2 NTSC VOB stream synchronization feature. This mode gener‐
ates synchronization information for transcode by analyzing
the frame display time.
3 (like -M 1): sync AV at initial PTS, but invokes
"-D/--av_fine_ms" options internally based on "tcprobe" PTS
analysis. PTS stands for Presentation Time Stamp.
4 (like -M 2): initial PTS / enforce frame rate, with addi‐
tional frame rate enforcement (for NTSC).
-N format
select export format. Default is mp3 for audio, and module-
dependant format for video. This option has two different be‐
haviours and accepts two different set of options, as side-
effect of ongoing export module transition. For old-style mod‐
ules (current default, as found in 1.0.x series), argument is
audio format ID has hexadecimal value: see below for a list of
recognized IDs. Default id, so default format for audio exported
track, is MP3 (0x55).
If you are using, the transcode's the new-style encode/multiplex
modules (still under development, see the encode and multiplex
directories), argument is a comma-separated pair of export for‐
mat names. Use tcmodinfo tool to check out what new-style
export module support what formats.
Available format for old-style behaviour are:
0x1 PCM uncompressed audio
0x50 MPEG layer-2 aka MP2
0x55 MPEG layer-3 aka MP3. Also have a look at --lame_preset
if you intend to do VBR audio.
0x2000 AC3 audio
0xfffe OGG/Vorbis audio
-O skip flushing of buffers at encoder stop [off, do flushing at
each stop].
-P flag
pass-through flag (0=off|1=V|2=A|3=A+V) [0].
Pass-through for flag != 1 is broken and not a trivial thing to
fix.
You can pass-through DV video, AVI files and MPEG2 video. When
doing MPEG2 pass-through (together with the -y raw module), you
can give a requantization factor by using -w -- for example -w
1.5 -- this will make the MPEG2 stream smaller.
The pass-through mode is useful for reconstruction of a broken
index of an AVI file. The -x ffmpeg import-module analyzes the
compressed bitstream and can detect a keyframe for DIV3, MPEG4
(DivX, XviD, ..) and other formats. It then sets an internal
flag which the export module will respect when writing the frame
out.
-Q n[,m]
encoding[,decoding] quality (0=fastest-5=best) [5,5].
-R n[,f1[,f2]]
enable multi-pass encoding (0-3) [0,divx4.log,pcm.log].
0 Constant bitrate (CBR) encoding. [default]
The codec tries to achieve constant bitrate output. This
means, each encoded frame is mostly the same size. This type
of encoding can help in maintaining constant filling of
hardware buffer on set top players or smooth streaming over
networks. By the way, Constant bitrate is often obtained
sacrifying quality during high motion scenes.
1 Variable bitrate encoding: First pass.
In this mode, the codec analyses the complete sequence in
order to collect data that can improve the distribution of
bits in a second VBR pass. The collected data is written to
second sub argument (default: divx4.log). This data is codec
dependant and cannot be used across codecs. It is strongly
advised to use the same codec settings for the VBR analysis
pass and the VBR encoding pass if you want predictable
results.
The video output of the first pass is not of much use and
can grow very large. It's a good idea to not save the video
output to a file but directly to /dev/null. Usually the
bitrate is ignored during first pass.
Disabling audio export makes sense too, so use -y
codec,null. It is not recommended to disable the audio
import because transcode might drop video frames to keep
audio and video in sync. This is not possible when the audio
import is disabled. It may lead to the fact that the codec
will see a different sequence of frames which effectively
renders the log file invalid.
2 Variable bitrate encoding: Second pass.
The first pass allowed the codec collecting data about the
complete sequence. During the second pass, the codec will
use that data in order to find an efficient bit distribution
that respects both the desired bitrate and the natural
bitrate curve shape. This ensures a good compromise between
quality and desired bitrate.
Make sure you activate both sound and video encoding during
this pass.
3 Constant quantizer encoding.
The quantizer is the "compression level" of the picture. The
lower the quantizer is, the higher is the quality of the
picture. This mode can help in making sure the sequence is
encoded at constant quality, but no prediction can be made
on the final bitrate. When using this mode, the -w option
changes its meaning, it now takes the quantizer ranging from
1 to 31. Note that constant quantizer encoding is not sup‐
ported with some codecs (notably mpeg1/2/4 with -y ffmpeg).
-S unit[,s1-s2]
process program stream unit[,s1-s2] sequences [0,all].
This option is a bit redundant to --psu*. This option lets you
specify which units you want to have decoded or skipped. At a
program stream unit boundary, all (internal) mpeg timers are
reset to 0. tcprobe will tell you how many units are in one
file.
-T t[,c[,a]]
select DVD title[,chapter[,angle]] [1,1,1]. Only a single chap‐
ter is transcoded. Use -T 1,-1 to trancode all chapters in a
row. You can even specify chapter ranges.
-U base
process DVD in chapter mode to base-ch%02d.avi [off].
-V format
select video layout / colour space for internal processing.
Possible values for this options are: yuv420p (default),
yuv422p, rgb24
yuv420p is default because it is most codecs' internal format so
there is no need for conversions. Some modules may not support
it though: use rgb in that case.
rgb24 is the old (pre-0.6.13) transcode internal format. Most
codecs do not support this format natively and have to convert
it to/from YUV first, so only use this option if you're really
sure or you want to use a module that doesn't support YUV.
yuv422p is an experimental feature and a developers playground.
Not many import, export and filter modules support this col‐
orspace. A 4:2:2 colorspace offers much more quality than the
consumer oriented 4:2:0 colorspaces like I420/YV12. Most equip‐
ment in film and video post-production uses YUV422. YUV422 dou‐
bles the precision for chroma (color difference) information in
the image.
All internal transformations are supported in YUV422 mode (clip‐
ping, flipping, zooming, etc).
-W n,m[,nav_file]
autosplit and process part n of m (VOB only) [off]
-X n[,m,[M]]
resize to height+n*M rows [,width+m*M] columns [off,32]. M must
be one of 8, 16 or 32. It makes no difference which M you use.
You might look at the fast flag of the -Z option if you do not
want to calculate n and m yourself.
-Y top[,left[,bottom[,right]]]
select (encoder) frame region by clipping border. Negative val‐
ues add a border [off].
-Z widthxheight[,fast|interlaced]
resize to width columns, height rows with filtering [off,not‐
fast,notinterlaced].
If fast is given, transcode will calculate the parameters for -X
and/or -B. The option fast can only be used when the import and
export geometry of an image is a multiple of 8.
In fast mode, a faster but less precise resizing algorithm will
be used resulting in a slightly less good quality. Beside this
(small) drawback, it is worth a try.
If interlaced is given, transcode will assume the frame is
interlaced when resizing, and resize each field independently.
This will give better results on interlaced video, but is incom‐
patible with fast mode. Also, the height (both old and new) must
be a multiple of 4.
It is also possible to omit width OR height. In this case,
transcode will calculate the missing value using the import
aspect ratio. The new value will be aligned to be a multiple of
8. Using an additional fast or interlaced is also possible.
Examples (assume input is a 16:9 coded file at 720x576):
-Z 576x328 uses filtered zoom.
-Z 576x328,fast uses fast zoom.
-Z 576x,fast guess 328 and do fast zoom.
-Z x328,interlaced guess 576 and do interlaced zoom.
If you also set --export_prof, you can use just "fast" to indi‐
cate that fast resizing is wanted (likewise with "interlaced").
-a ach[,vch]
extract audio[,video] track for encoding.
-b b[,v,[q,[m]]]
audio encoder bitrate kBits/s[,vbr[,quality[,mode]]] [128,0,5,0]
The mode parameter specifies which modus lame should use for
encoding. Available modes are:
0 Joint Stereo (default)
1 Full stereo
2 Mono
-c f1-f2[,f3-f4[, ... ] ]
encode only frames f1-f2 [and f3-f4]. Default is to encode all
available frames. Use this and you'll get statistics about
remaining encoding time. The f[N] parameters may also be time‐
codes in the HH:MM:SS.FRAME format. Example:
-c 500-0:5:01,:10:20-1:18:02.1
Will encode only from frame 500 to 5 minutes and 1 second
and from 10 min, 20 sec to 1 hour, 18 min, 2 sec and one
frame.
Note that transcode starts counting frames at 0 and excludes the
last frame specified. That means that "-c 0-100" will encoded
100 frames starting at frame 0 up to frame 99
-d swap bytes in audio stream [off].
In most cases, DVD PCM audio tracks require swapping of audio
bytes
-e r[,b[,c]]
PCM audio stream parameter. Sample rate [Hz], bits per sample
and number of channels [48000,16,2]. Normally this is autode‐
tected.
-f rate[,frc]
import video frame rate[,frc] [25.000,0]. If frc (frame rate
code) is specified, transcode will calculate the precise frames
per second internally. Valid values for frc are:
1 23.976 (24000/1001.0)
2 24
3 25
4 29.970 (30000/1001.0)
5 30
6 50
7 59.940 (2 * 29.970)
8 60
9 1
10 5
11 10
12 12
13 15
-g WidthxHeight
video stream frame size [720x576].
-h print out usage information.
-i name
input file/directory/device/mountpoint/host name, default is
[/dev/zero].
-j top[,left[,bottom[,right]]]
select frame region by clipping border. Negative values add a
border [off].
-k swap red/blue (Cb/Cr) in video frame [off]. Use if people have
blue faces.
-l mirror video frame [off].
-m file
write audio stream to separate file [off].
-n 0xnn
import audio format id [0x2000]. Normally, this is autodetected.
-o file
output file name, default is [/dev/null].
-p file
read audio stream from separate file [off].
-q debuglevel
possible values for debuglevel:
0 QUIET
1 INFO
2 DEBUG
4 STATS
8 WATCH
16 FLIST
32 VIDCORE
64 SYNC
128 COUNTER
256 PRIVATE
-r n[,m]
reduce video height/width by n[,m] [off]. Example: -r 2 will
rescale the framesize of a 720x576 file to 360x288.
-s gain,[center,[front,[rear]]]
increase volume of audio stream by gain,[center,front,rear]
default [off,1,1,1].
-t n,base
split output to base%03d.avi with n frames [off].
-u m[,n]
use m framebuffer[,n threads] for AV processing [10,1].
-v print version.
-w b[,k[,c]]
encoder bitrate[,keyframes[,crispness]] [(6000 for MPEG 1/2,
1800 for others),250,100].
--video_max_bitrate b
Use b as maximal bitrate (kbps) when encoding variable bitrate
streams.
-x vmod[,amod]
video[,audio] import modules [auto,auto]. If omitted, transcode
will probe for appropriate import modules. A full-blown
transcode installation has the following import modules:
ac3 - (audio) AC3
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
decodes AC3 audio from MPEG program streams or raw
streams.
Supported processing formats: audio - PCM AC3, video -
none
avi - (video) * | (audio) *
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
RGB/PCM from RIFF AVI files.
Supported processing formats: audio - RAW (pass-through)
PCM, video - RAW (pass-through) RGB YUV YUV420
bktr - (video) bktr
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
grabs video frames from bktr(4) devices on BSD systems
Supported processing formats: audio - none, video - RGB
YUV YUV420
dv - (video) DV | (audio) PCM
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
Digital Video and PCM audio from RIFF AVI-files or raw
streams.
Supported processing formats: audio - PCM, video - RAW
(pass-through) RGB YUV DV YUV420
dvd - (video) DVD | (audio) MPEG/AC3/PCM
At compile-time libdvdread must be available. This module
has no run-time dependencies. Support for this module is
good.
on-the-fly DVD transcoding.
Supported processing formats: audio - PCM AC3, video -
RGB YUV
ffmpeg - (video) FFmpeg: MSMPEG/MPEG/MJPEG
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
interface to ffmpeg library supported video codecs and
file formats
Supported processing formats: audio - none, video - RAW
(pass-through) RGB YUV
im - (video) RGB
At compile-time ImageMagick must be available. At run-time
ImageMagick must be present. Support for this module is
fair.
interface to ImageMagick library supported picture
codecs and file formats for making animations. Reads
images with a counter pattern.
Supported processing formats: audio - none, video - RAW
(pass-through) RGB
imlist - (video) RGB
At compile-time ImageMagick must be available. At run-time
ImageMagick must be present. Support for this module is
fair.
interface to ImageMagick library supported picture
codecs and file formats for making animations. Reads
images from a list.
Supported processing formats: audio - RAW (pass-
through), video - RAW (pass-through) RGB
lve - (video/audio) MPEG/VOB/LVE
At compile-time liblve must be available. This module has
no run-time dependencies. Support for this module is fair.
imports video from an LVE edit list
Supported processing formats: audio - PCM, video - YUV
lzo - (video) LZO
At compile-time lzo must be available. This module has no
run-time dependencies. Support for this module is good.
imports AVI-files with LZO loss-less compression for
video.
Supported processing formats: audio - RAW (pass-through)
PCM, video - RAW (pass-through) RGB YUV
mov - (video) * | (audio) *
At compile-time libquicktime must be available. This module
has no run-time dependencies. Support for this module is
good.
Quicktime file format, audio/video codecs supported by
quicktime4linux.
Supported processing formats: audio - PCM, video - RAW
(pass-through) RGB YUV
mp3 - (audio) MPEG
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
MPEG audio from program streams or raw streams.
Supported processing formats: audio - PCM, video - none
mpeg2 - (video) MPEG2
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
video track from MPEG program streams or raw streams,
extracted and decoded by mpeg2dec.
Supported processing formats: audio - none, video - RAW
(pass-through) RGB YUV
mplayer - (video) rendered by mplayer | (audio) rendered by
mplayer
This module has no compile-time dependencies. At run-time
mplayer must be present. Support for this module is fair.
interface to Mplayer for decoding unsupported codecs,
exotic file formats or more ore less broken sources.
Supported processing formats: audio - PCM, video - RAW
(pass-through) RGB YUV
null - (video) null | (audio) null
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
fair.
dummy module, reads from /dev/zero.
Supported processing formats: audio - none, video - none
nuv - (video) YUV | (audio) PCM
At compile-time liblzo must be available. This module has
no run-time dependencies. Support for this module is fair.
interface to NuppelVideo file format.
Supported processing formats: audio - PCM, video - YUV
ogg - (video) all | (audio) Ogg Vorbis
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
decodes Ogg Vorbis audio streams.
Supported processing formats: audio - RAW (pass-through)
PCM, video - RAW (pass-through) RGB YUV
raw - (video) RGB/YUV | (audio) PCM
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
fair.
RGB/PCM from RIFF AVI/WAVE files or raw streams.
Supported processing formats: audio - PCM, video - RGB
YUV YUV420
sunau - (audio) pcm
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
grabs raw PCM audio from audio(4) devices on some BSD
systems
Supported processing formats: audio - PCM, video - none
v4l - (video) v4l | (audio) PCM
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
fair.
interface for grabbing sound/video from v4l devices on
linux systems.
Supported processing formats: audio - PCM, video - RGB
YUV
v4l2 - (video) v4l2 | (audio) pcm
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
interface for grabbing sound/video from v4l2 devices on
linux systems. prefered over import_v4l.
Supported processing formats: audio - PCM, video - RGB
YUV YUV420
vnc - (video) VNC
This module has no compile-time dependencies. At run-time
vncrec must be present. Support for this module is fair.
imports video from the vncrec program.
Supported processing formats: audio - none, video - RAW
(pass-through) RGB YUV
vob - (video) MPEG-2 | (audio) MPEG/AC3/PCM | (subtitle)
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
MPEG/AC3 program streams in VOB files (found on unen‐
crypted/ripped DVDs).
Supported processing formats: audio - PCM AC3, video -
RAW (pass-through) RGB YUV
xml - (video) * | (audio) *
At compile-time libxml2 must be available. At run-time
libxml2 must be present. Support for this module is fair.
interface to XML files with file listing and frame range
produced by kino.
Supported processing formats: audio - RAW (pass-through)
PCM, video - RAW (pass-through) RGB YUV DV
yuv4mpeg - (video) YUV4MPEGx | (audio) WAVE
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
YUV from video streams produced by mjpegtools (YUV4MPEG)
and RIFF WAVE pcm audio.
Supported processing formats: audio - PCM, video - RGB
YUV
To see what your transcode has, do a
ls -1 `tcmodinfo -p`/import*.so
It is possible to pass option strings to import modules like to
filter modules. The average user does not this feature and not
many modules support it. The syntax is -x
vmod=options,amod=options
Example
-x rawlist=uyvy,null
To tell the rawlist import module (which reads images from a
list of files) the colour space of the images.
-y vmod[,amod[,mmod]]
video[,audio[,multiplex]] export modules [null]. If omitted,
transcode will encode to the null module. If a multiplex module
is given, transcode will use the new-style encode/multiplex mod‐
ules (still under development, see the encode and multiplex
directories); if no multiplex module is given, the traditional
export modules will be used.
A full-blown transcode installation has the following export
modules:
ac3 - (video) null | (audio) ac3
This module has no compile-time dependencies. At run-time
ffmpeg must be present. Support for this module is good.
Encodes audio (raw PCM) to AC3 via the ffmpeg binary.
Supported processing formats: audio - PCM, video - none
af6 - (video) Win32 dll | (audio) MPEG/AC3/PCM
At compile-time libavifile must be available. At run-time
libavifile and win32codecs must be present. Support for
this module is good.
Interface to the avifile library which allows the use of
win32codec on the linux-x86 platform.
Supported processing formats: audio - RAW (pass-through)
PCM AC3, video - RGB YUV
divx5 - (video) DivX 5.xx | (audio) MPEG/AC3/PCM
At compile-time libmp3lame (only for MPEG audio layer III)
must be available. At run-time divx4linux (new) and libdi‐
vxencore.so must be present. Support for this module is
good.
Encodes MPEG4 video using the closed-source binaries
from divx.com to an AVI container.
Supported processing formats: audio - RAW (pass-through)
PCM AC3, video - RGB YUV
dv - (video) Digital Video | (audio) MPEG/AC3/PCM
At compile-time libdv and libmp3lame (only for MPEG audio
layer III) must be available. At run-time libdv must be
present. Support for this module is good.
Encodes DV into an AVI container. DV is a codec devel‐
oped by Sony and is often used in digital camcorders.
Supported processing formats: audio - PCM AC3, video -
RGB YUV
dvraw - (video) Digital Video | (audio) PCM
At compile-time libdv must be available. At run-time libdv
must be present. Support for this module is good.
Encodes DV into a DV file. DV is a codec developed by
Sony and is often used in digital camcorders. A raw DV
file can be played back into the camcorder.
Supported processing formats: audio - PCM, video - RAW
(pass-through) RGB YUV YUV422
ffmpeg - (video) * | (audio) MPEG/AC3/PCM
At compile-time libmp3lame (only for MPEG audio layer III)
must be available. This module has no run-time dependen‐
cies. Support for this module is good.
Encodes many different formats to both AVI and raw. Sup‐
ported are mpeg1video, mpeg2video, mpeg4, mjpeg, h263,
h263p, wmv1, wmv2, rv10, msmpeg4, msmpeg4v2, huffyuv and
dvvideo.
Supported processing formats: audio RAW (pass-through)
PCM AC3, video - RGB YUV YUV422
im - (video) * | (audio) MPEG/AC3/PCM
At compile-time libImageMagick must be available. This mod‐
ule has no run-time dependencies. Support for this module
is good.
Encodes image sequences by using the ImageMagick
library. ImageMagick is able to handle a lot of differ‐
ent image formats such as png, jpg, miff, tiff, etc. Use
-F to select the desired format.
Supported processing formats: audio - RAW (pass-through)
PCM, video - RGB YUV
jpg - (video) * | (audio) MPEG/AC3/PCM
At compile-time libjpeg must be available. This module has
no run-time dependencies. Support for this module is good.
Encodes jpg image sequences using libjpeg. Faster than
ImageMagick. Use -F to select the compression quality.
Supported processing formats: audio - RAW (pass-through)
PCM, video - RGB YUV
lame - (audio) MPEG 1/2
At compile-time libmp3lame (only for MPEG audio layer III)
must be available. At run-time lame and sox must be
present. Support for this module is good.
An audio-only encoder which drives the lame binary. The
tool sox is used to do resampling if required. Encodes
to a MP3 file.
Supported processing formats: audio - PCM, video - none
lzo - (video) LZO real-time compression | (audio) MPEG/AC3/PCM
At compile-time liblzo and libmp3lame (only for MPEG audio
layer III) must be available. This module has no run-time
dependencies. Support for this module is good.
Encodes video using a loss-less real-time LZO codec.
This codec is a homegrown invention of transcode and is
intended as an intermediate storage format. MPlayer can
playback LZO-based AVI files as well.
Supported processing formats: audio - RAW (pass-through)
PCM AC3, video - RAW (pass-through) RGB YUV DV
mov - (video) * | (audio) *
At compile-time libquicktime must be available. At run-time
libquicktime must be present. Support for this module is
fair.
Interface to the quicktime library.
Supported processing formats: audio - PCM, video - RAW
(pass-through) RGB YUV YUV422 YUY2
mp2 - (video) null | (audio) MPEG 1/2
This module has no compile-time dependencies. At run-time
ffmpeg and sox must be present. Support for this module is
good.
Encodes audio (raw PCM) to MPEG 1 Layer 2 audio aka mp2.
Additionaly it can change the speed of the audio stream
by a factor you can specify. See docs/export_mp2.txt.
Supported processing formats: audio - PCM, video - none
mp2enc - (audio) MPEG 1/2
At compile-time mjpegtools must be available. At run-time
mp2enc must be present. Support for this module is good.
Drives the mp2enc binary and writes an MP2
(MPEG1-Layer2) file. Useful for when encoding to SVCD to
be multiplexed with mplex after encoding.
Supported processing formats: audio - PCM, video - none
mpeg2enc - (video) MPEG 1/2
At compile-time mjpegtools must be available. At run-time
mpeg2enc must be present. Support for this module is good.
Drives the mpeg2enc binary. mpeg2enc is a very feature
rich MPEG encoder, have a look at its manpage. Encodes
generic mpeg1, VCD, SVCD, MPEG2 and DVD type video.
Supported processing formats: audio - none, video - RGB
YUV
null - (video) null | (audio) null
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
Data sink. Does nothing else than discarding data.
Supported processing formats: audio - none, video - none
ogg - (video) null | (audio) ogg
This module has no compile-time dependencies. At run-time
oggenc must be present. Support for this module is good.
Drives the oggenc binary. Encodes an Ogg/Vorbis file.
Resamples.
Supported processing formats: audio - PCM, video - none
ppm - (video) PPM/PGM | (audio) MPEG/AC3/PCM
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
Writes an image sequence of PGM or PPM files. PPM is an
old format and there are several tools around to manipu‐
late such files.
Supported processing formats: audio - RAW (pass-through)
PCM AC3, video - RGB YUV
pvm - (video) * | (audio) *
At compile-time libpvm3 must be available. At run-time pvm
must be present. Support for this module is good.
Meta module. It allows transcode to be used in a PVM
cluster. See docs/export_pvm.txt
Supported processing formats: audio - RAW (pass-through)
PCM AC3, video - RAW (pass-through) RGB YUV DV YUV422
YUY2
raw - (video) * | (audio) MPEG/AC3/PCM
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
Can write uncompressed streams to an AVI file as well as
raw mpeg2 files in pass-through mode. The image format
for uncompressed streams can be selected with -F (use -F
help to see available formats).
Supported processing formats: audio - RAW (pass-through)
PCM AC3, video - RAW (pass-through) RGB YUV DV YUV422
toolame - (audio) MPEG 1/2
This module has no compile-time dependencies. At run-time
toolame and sox must be present. Support for this module is
good.
Drives the toolame binary to create MP2 audio tracks.
Sox is used for resampling if requested.
Supported processing formats: audio - PCM, video - none
wav - (audio) WAVE PCM
This module has no compile-time dependencies. This module
has no run-time dependencies. Support for this module is
good.
Creates WAVE PCM files with interleaved audio for
stereo.
Supported processing formats: audio - PCM, video - RAW
(pass-through) RGB YUV
xvid4 - (video) XviD 1.0.x series (aka API 4.0) | (audio)
MPEG/AC3/PCM
At compile-time libmp3lame (only for MPEG audio layer III)
must be available. At run-time libxvidcore.so.4 must be
present. Support for this module is good.
Encodes MPEG4 video using the library available from
xvid.org. Check out the library from xvidcvs using cvs
-d :pserver:anonymous@cvs.xvid.org:/xvid co -rdev-api-4
xvidcore. There is also a tool available to create con‐
figuration files for this xvid version at
http://zebra.fh-weingarten.de/transcode/xvid4conf. The
output can either be an AVI file or a MPEG4 elementary
stream (with -F raw).
Supported processing formats: audio - RAW (pass-through)
PCM AC3, video - RGB YUV YUV422
yuv4mpeg - (video) YUV4MPEG2 | (audio) MPEG/AC3/PCM
At compile-time mjpegtools must be available. This module
has no run-time dependencies. Support for this module is
good.
Writes the uncompressed raw YUV data in a YUV4MPEG for‐
mat as used by the lav* and mjpeg* tools.
Supported processing formats: audio - RAW (pass-through)
PCM AC3, video - RGB YUV
To see what your transcode has, do a
ls -1 `tcmodinfo -p`/export*.so
It is possible to pass option strings to export modules like to
filter modules. The syntax is
-y vmod=options,amod=options
-z flip video frame upside down [off].
--accel type
enforce experimental IA32 acceleration for type [autodetect].
type may be one of
C No acceleration
ia32asm plain x86 assembly
mmx
3dnow
sse
sse2
--avi_limit N
split/rotate output AVI file after N MB [2048].
--avi_comments F
Read AVI header comments from file F [off].
The AVI file format supports so-called tomb-stone data. It can
be used to write annotations into the AVI file.
See the file docs/avi_comments.txt for a sample input file with
all tags. When the file is read, empty lines and lines starting
with '#' are ignored. The syntax is: "TAG<space>STRING". The
order of the tags does not matter. If a tag has no string fol‐
lowing it, it is ignored. That means, you can use the file
docs/avi_comments.txt as input and only fill out the fields you
want.
A very simple example is:
----------------snip----------------
INAM My 1st Birthday
ISBJ My first steps!
IART My proud family
----------------snip----------------
Keep in mind that there is no endless space in the AVI header,
most likely its around 1000 bytes.
--zoom_filter string
use filter string for video resampling -Z [Lanczos3]
The following filters are available:
Bell
Box
Lanczos3 (default)
Mitchell
Hermite
B_spline
Triangle
--cluster_percentage
use percentage mode for cluster encoding -W [off]
--cluster_chunks a-b
process chunk range instead of selected chunk [off]
--export_asr C
set export aspect ratio code C [as input] Valid codes for C are:
1 1:1
2 4:3
3 16:9
4 2.21:1
--export_prof S
WARNING: this option will be renamed as '--export_profile' in
future releases.
Select an export profile {vcd, svcd, xvcd, dvd}
[-pal|-ntsc|-secam]
Default is no profile.
If you set this meta option to one of the values below,
transcode will adjust some internal paramaters as well as geome‐
try and clipping. If no export modules are specified, mpeg2enc
for video and mp2enc for audio are used when compiled with
mjpegtools support.
Valid values for S are e.g. vcd, vcd-pal, vcd-ntsc, svcd, svcd-
pal, ...
xvcd profile is equal to svcd except that it allows for up to
9000 Kbps video bitrate (default is 5000) and arbitrary audio
samplerate.
When one of the above is used, transcode will calculate the
needed clipping and resizing values for you based on the import
and export aspect ratio. This is especially handy if you want to
encode a 16:9 DVD into a 4:3 SVCD for example. Transcode inter‐
nally then sets --pre_clip to add the black bars ("letterbox‐
ing").
If you use "vcd" instead of "vcd-pal" or "vcd-ntsc", transcode
will make an educated guess if PAL or NTSC vcd is wanted. The
same is true for the other profiles. When the input file has no
aspect ratio information at all, transcode guesses it based on
the import frame sizes. You can set the import aspect ratio by
giving --import_asr CODE.
Examples (assume input is a 16:9 coded file at 720x576 (PAL)):
--export_prof svcd clip top/bot -96; resizes to 480x576
--export_prof vcd-ntsc clip top/bot -96; resizes to 352x240
This enables simpilified commandlines where transcode tries to
set sensible values for mpeg export. When you don't specify an
export module with -y, mpeg2enc will be used.
transcode-i vob/ --export_prof svcd -Z fast -o test
The ffmpeg export module `-y ffmpeg' does support profiles as
well. The module tries to be smart and sets internal ffmpeg
parameters which are otherwise quite tricky to find out. Usage
is similar to the above
transcode-i vob/ --export_prof dvd -y ffmpeg -o test -m test.ac3
tcmplex -m d -i test.m2v -p test.ac3 -o test.mpg
--export_par C[,N]
set export pixel aspect ratio to C[,N]
To encode anamorphic material, transcode can encode the target
pixel aspect ratio into the file. This is NOT the actual aspect
ratio of the image, but only the amount by which every single
pixel is stretched when played with an aspect ratio aware appli‐
cation, like mplayer.
To encode at non standard aspect ratios, set both C and N E.g.
to make every pixel twice as high as it's wide (e.g. to scale
back to normal size after deinterlacing by dropping every second
line).
If C and N are specified, the value set for C does give the
pixel aspect ratio of the width and N the one for the height If
only C is specified, the table below applies.
Valid codes for C are
1 1:1 No stretching
2 12:11 5:4 image to 4:3 (ex: 720x576 -> 768x576)
3 10:11 3:2 image to 4:3 (ex: 720x480 -> 640x480)
4 16:11 5:4 image to 16:9 (ex: 720x576 -> 1024x576)
5 40:33 3:2 image to 16:9 (ex: 720x480 -> 872x480)
--import_asr C
set import aspect ratio code C [autoprobed]
Valid codes for C are
1 1:1
2 4:3
3 16:9
4 2.21:1
--keep_asr
try to keep aspect ratio (only with -Z) [off]
The --keep_asr options changes the meaning of -Z. It tries to
fit the video into a framesize specified by -Z by keeping the
original aspect ratio.
+----------------+ +---480-----+
| | | black |
|720x306 = 2.35:1| -> -Z 480x480 --keep_asr ->|-----------4
| | | 480x204 8
+----------------+ |-----------0
| black |
+-----------+
Consider --keep_asr a wrapper for calculating -Y options and -Z
options
--mplayer_probe
use external mplayer binary to probe stream, reset default
import modules as mplayer ones [off]
Default is to use internal probing code. Using this option
without mplayer import modules (-x mplayer) can lead to unpre‐
dictable and possibly wrong results.
--quantizers min,max
set encoder min/max quantizer. This is meaningfull only for
video codecs of MPEG family. For other kind of codecs, this
options is harmless. [2,31]
--divx_rc p,rp,rr
divx encoder rate control parameter [2000,10,20]
--divx_vbv_prof N
divx5 encoder VBV profile (0=free-5=hiqhq) [3]
Sets a predefined profile for the Video Bitrate Verifier. If N
is set to zero, no profile is applied and the user specified
values from --divx_vbv are used.
Valid profiles
0 Free/No profile ( Use supplied values )
1 Handheld ( 320, 16, 3072 )
2 Portable ( 1920, 64, 12288 )
3 Home Theatre ( 10000, 192, 36864 )
4 High Definition ( 20000, 384, 73728 )
--divx_vbv br,sz,oc
divx5 encoder VBV params (bitrate,size,occup.) [10000,192,36864]
These parameters are normally set through the profile parameter
--divx_vbv_prof. Do not mess with theses value unless you are
absolutely sure of what you are doing. Transcode internally mul‐
tiplicates vbv_bitrate with 400, vbv_size with 16384 and
vbv_occupancy with 64 to ensure the supplied values are multi‐
ples of what the encoder library wants.
--export_fps rate[,frc]
set export frame rate (and code) [as input].Valid values for frc
are
frc rate
1 23.976 (24000/1001.0)
2 24
3 25
4 29.970 (30000/1001.0)
5 30
6 50
7 59.940 (2 * 29.970)
8 60
9 1
10 5
11 10
12 12
13 15
--export_frc F
set export frame rate code F [as input]
obsolete, use --export_fps 0,F
--hard_fps
disable smooth dropping (for variable fps clips) [off]
see /docs/framerate.txt for more information.
--pulldown
set MPEG 3:2 pulldown flags on export [off]
--antialias_para w,b
center pixel weight, xy-bias [0.333,0.500]
--no_audio_adjust
disable internal audio frame sample adjustment [off]
--no_bitreservoir
disable lame bitreservoir for MP3 encoding [off]
--config_dir dir
Assume config files are in this dir
This only affects the -y ffmpeg and -y xvid4 modules. It gives
the path where the modules search for their configuration.
--lame_preset name[,fast]
use lame preset with name. [off]
Lame features some built-in presets. Those presets are designed
to provide the highest possible quality. They have for the most
part been subject to and tuned via rigorous listening tests to
verify and achieve this objective. These are continually updated
to coincide with the latest developments that occur and as a
result should provide you with nearly the best quality currently
possible from LAME.
Any of those VBR presets can also be used in fast mode, using
the new vbr algorithm. This mode is faster, but its quality
could be a little lower. To enable the fast mode, append ",fast"
<N kbps> Using this preset will usually give you good qual‐
ity at a specified bitrate. Depending on the
bitrate entered, this preset will determine the
optimal settings for that particular situation.
While this approach works, it is not nearly as
flexible as VBR, and usually will not reach the
same quality level as VBR at higher bitrates. ABR.
medium This preset should provide near transparency to
most people on most music. The resulting bitrate
should be in the 150-180kbps range, according to
music complexity. VBR.
standard This preset should generally be transparent to most
people on most music and is already quite high in
quality. The resulting bitrate should be in the
170-210kbps range, according to music complexity.
VBR.
extreme If you have extremely good hearing and similar
equipment, this preset will provide slightly higher
quality than the "standard" mode. The resulting
bitrate should be in the 200-240kbps range, accord‐
ing to music complexity. VBR.
insane This preset will usually be overkill for most peo‐
ple and most situations, but if you must have the
absolute highest quality with no regard to file‐
size, this is the way to go. This preset is the
highest preset quality available. 320kbps CBR.
(taken from http://www.mp3dev.org/mp3/doc/html/presets.html)
--av_fine_ms t
AV fine-tuning shift t in millisecs [autodetect]
also see -D.
--nav_seek file
use VOB or AVI navigation file [off].
Generate a nav file with tcdemux -W >nav_log for VOB files or
with aviindex(1) for AVI files.
--psu_mode
process VOB in PSU, -o is a filemask incl. %d [off]. PSU means
Program Stream Unit and this mode is useful for (mostly) NTSC
DVDs which have several program stream units.
--psu_chunks a-b
process only selected units a-b for PSU mode [all]
--no_split
encode to single file in chapter/psu/directory mode [off]
If you don't give this option, you'll end up with several files
in one of the above mentioned modes. It is still possible to
merge them with avimerge(1).
--pre_clip t[,l[,b[,r]]]
select initial frame region by clipping border [off]
--post_clip t[,l[,b[,r]]]
select final frame region by clipping border [off]
--a52_drc_off
disable liba52 dynamic range compression [enabled]
If you dont specify this option, liba52 will provide the default
behaviour, which is to apply the full dynamic range compression
as specified in the A/52 stream. This basically makes the loud
sounds softer, and the soft sounds louder, so you can more eas‐
ily listen to the stream in a noisy environment without disturb‐
ing anyone.
If you let it enabled this this will totally disable the dynamic
range compression and provide a playback more adapted to a movie
theater or a listening room.
--a52_demux
demux AC3/A52 to separate channels [off]
--a52_dolby_off
disable liba52 dolby surround [enabled]
selects whether the output is plain stereo (if the option is
set) or if it is Dolby Pro Logic - also called Dolby surround or
3:1 - downmix (if the option is not used).
--no_log_color
disable colored log messages.
By default transcode use colors in log messages in order to eas‐
ily distinguish message classes. That behaviour can be problem‐
atic if output of transcode is a file or a pipe, so this option
came handful.
--dir_mode base
process directory contents to base-%03d.avi [off]
--frame_interval N
select only every Nth frame to be exported [1]
--encode_fields C
enable field based encoding (if supported) [off]
This option takes an argument if given to denote the order of
fields. If the option is not given, it defaults to progressive
(do not assume the picture is interlaced)
Valid codes for C are:
p progressive
t top-field first
b bottom-field first
--dv_yuy2_mode, --dv_yv12_mode
Indicates that libdv decodes Digital Video frames in YUY2
(packed) or YV12 (planar) mode, respectively. Normally transcode
figures out the correct mode automatically, but if you try to
transcode PAL DV files and the results look strange, try one of
these options.
--write_pid file
write pid of signal thread to file [off] Enables you to termi‐
nate transcode cleanly by sending a SIGINT (2) to the pid in
file. Please note file will be overwritten. Usage example
$ transcode ... --write_pid /tmp/transcode.pid &
$ kill -2 `cat /tmp/transcode.pid`
--nice N
set niceness to N [off]
The option --nice which renices transcode to the given positive
or negative value. -10 sets a high priority; +10 a low priority.
This might be useful for cluster mode.
--progress_meter N
select type of progress meter [1]
Selects the type of progress message printed by transcode:
0: no progress meter
1: standard progress meter
2: raw progress data (written to standard output)
Scripts that need progress data should use type 2, since the
format of type 1 is subject to change without notice.
--progress_rate N
print progress every N frames [1]
Controls how frequently the status message is printed (every N
frames).
--socket FILE
Open a socket to accept commands while running. See tcmodinfo(1)
and /docs/filter-socket.txt for more information about the pro‐
tocol.
FILTERS
The syntax for filter options is simple. A filter is specified with
-J filter=optionstring
The optionstring can contain multiple options which are separated by
colons `:´
-J filter=option1:option2:option3
An option can have an argument or non (bool). For options with an argu‐
ment, the format in which the argument has to be given to the option is
specified in a printf(1) like string. The most common case is `%d'
which simply means a number. The argument has to be seperated from the
option by a `=´.
-J filter=bool1:option1=15:option2=20x30
Most filters try to do the right thing with the default options. You
should play with various parameters if you are not satisfied with the
default behaviour. If you have no idea what a filter does, its very
likely that you don't need it.
If a filter takes (for eg.) a filename as an argument, make sure that
the filename does not contain a `:' or a `='. Its a limitation of the
parser. A comma `,' is possible but must be extra quoted. For the text
filter that is
-J text=string="Hello\, World"
29to23 - frame rate conversion filter (interpolating 29 to 23)
29to23 was written by Max Alekseyev, Tilmann Bitterberg. The ver‐
sion documented here is v0.3 (2003-07-18). This is a video filter.
It can handle RGB and YUV mode. It is a pre-processing only filter.
32detect - 3:2 pulldown / interlace detection plugin
32detect was written by Thomas. The version documented here is
v0.2.4 (2003-07-22). This is a video filter. It can handle RGB and
YUV mode. It supports multiple instances and can run as a pre-pro‐
cessing and/or as a post-processing filter.
· threshold = %d [default 9]
Interlace detection threshold
· chromathres = %d [default 4]
Interlace detection chroma threshold
· equal = %d [default 10]
threshold for equal colors
· chromaeq = %d [default 5]
threshold for equal chroma
· diff = %d [default 30]
threshold for different colors
· chromadi = %d [default 15]
threshold for different chroma
· force_mode = %d [default 0]
set internal force de-interlace flag with mode -I N
· pre = %d [default 1]
run as pre filter
· verbose (bool)
show results
This filter checks for interlaced video frames. Subsequent
de-interlacing with transcode can be enforced with
'force_mode' option
32drop - 3:2 inverse telecine removal plugin
32drop was written by Thomas Oestreich. The version documented here
is v0.4 (2003-02-01). This is a video filter. It can handle RGB and
YUV mode. It is a pre-processing only filter.
aclip - generate audio clips from source
aclip was written by Thomas Oestreich. The version documented here
is v0.1.1 (2003-09-04). This is a audio filter. It is a pre-pro‐
cessing only filter.
· level = %d [default 10]
The audio must be under this level to be skipped
· range = %d [default 25]
Number of samples over level will be keyframes
astat - audio statistics filter plugin
astat was written by Thomas Oestreich. The version documented here
is v0.1.3 (2003-09-04). This is a audio filter. It is a pre-pro‐
cessing only filter.
· file = %s
File to save the calculated volume rescale number to
compare - compare with other image to find a pattern
compare was written by Antonio Beamud. The version documented here
is v0.1.2 (2003-08-29). This is a video filter. It can handle RGB
and YUV mode. It supports multiple instances. It is a post-process‐
ing only filter.
· pattern = %s
Pattern image file path
· results = %s
Results file path
· delta = %f [default 45.000000]
Delta error
Generate a file in with information about the times, frame,
etc the pattern defined in the image parameter is observed.
The format of the command file is framenumber followed by at least
one whitespace followed by the command followed by at least one
whitespace followed by arguments for the command. Empty lines and
lines starting with a `#' are ignored. The frame numbers must be
sorted ascending.
# Example file
# At frame 10 load the smooth filter
10 load smooth
# reconfigure at 20
20 configure smooth=strength=0.9
99 disable smooth
cpaudio - copy one audio channel to the other channel filter plugin
cpaudio was written by William H Wittig. The version documented
here is v0.1 (2003-04-30). This is a audio filter. It is a post-
processing only filter.
· source = %c [default l]
Source channel (l=left, r=right)
Copies audio from one channel to another
decimate - NTSC decimation plugin
decimate was written by Thanassis Tsiodras. The version documented
here is v0.4 (2003-04-22). This is a video filter. It can handle
YUV mode only. It is a post-processing only filter.
· verbose (bool)
print verbose information
see /docs/README.Inverse.Telecine.txt
denoise3d - High speed 3D Denoiser
denoise3d was written by Daniel Moreno & A'rpi. The version docu‐
mented here is v1.0.6 (2003-12-20). This is a video filter. It can
handle YUV mode only. It supports multiple instances. It can be
used as a pre-processing or as a post-processing filter.
· luma = %f [default 4.000000]
spatial luma strength
· chroma = %f [default 3.000000]
spatial chroma strength
· luma_strength = %f [default 6.000000]
temporal luma strength
· chroma_strength = %f [default 4.000000]
temporal chroma strength
· pre = %d [default 0]
run as a pre filter
What: The denoise3d filter from mplayer (sibling of hqdn3d).
Works very crude and simple but also very fast. In fact it
is even faster than the original from mplayer as I managed
to tweak some things (a.o. zero frame copying).
Who: Everyone who wants to have their captured frames thor‐
oughly denoised (i.e. who want to encode to mpeg or mjpeg)
but do not have enough processing power to real-time encode
AND use hqdn3d (better quality but a lot slower) or dnr (yet
slower), not to mention the other denoisers that are even
slower. Quality is really good for static scenes (if fed
with the right parameters), moving objects may show a little
ghost-image (also depends on parameters) though. Your milage
may vary.
How: Parameters are the same as the hqdn3d module, although
in practice you'll not end up with exactly the same values.
Just experiment. Particular for this version of the filter
is that if you supply -1 to either component's parameters
(luma/chroma), that component will not have the filter
applied to. If you're still short on CPU cycles, try dis‐
abling the luma filter, this will not make much difference
in the effectiveness of the filter!
detectclipping - detect clipping parameters (-j or -Y)
detectclipping was written by Tilmann Bitterberg, A'rpi. The ver‐
sion documented here is v0.1.0 (2003-11-01). This is a video fil‐
ter. It can handle RGB and YUV mode. It supports multiple instances
and can run as a pre-processing and/or as a post-processing filter.
· range = %u-%u/%d [default 0-4294967295/1]
apply filter to [start-end]/step frames
· limit = %d [default 24]
the sum of a line must be below this limit to be considered as
black
· post (bool)
run as a POST filter (calc -Y instead of the default -j)
Detect black regions on top, bottom, left and right of an
image. It is suggested that the filter is run for around
100 frames. It will print its detected parameters every
frame. If you don't notice any change in the printout for a
while, the filter probably won't find any other values. The
filter converges, meaning it will learn.
detectsilence - audio silence detection with tcmp3cut commandline gen‐
eration
detectsilence was written by Tilmann Bitterberg. The version docu‐
mented here is v0.0.1 (2003-07-26). This is a audio filter. It is a
pre-processing only filter.
divxkey - check for DivX 4.xx / OpenDivX / DivX;-) keyframe
divxkey was written by Thomas Oestreich. The version documented
here is v0.1 (2002-01-15). This is a video filter. It is a pre-pro‐
cessing only filter.
dnr - dynamic noise reduction
dnr was written by Gerhard Monzel. The version documented here is
v0.2 (2003-01-21). This is a video filter. It can handle RGB and
YUV mode. It is a post-processing only filter.
· lt = %d [default 10]
Threshold to blend luma/red
· ll = %d [default 4]
Threshold to lock luma/red
· ct = %d [default 16]
Threshold to blend croma/green+blue
· cl = %d [default 8]
Threshold to lock croma/green+blue
· sc = %d [default 30]
Percentage of picture difference (scene change)
see /docs/filter_dnr.txt (german only)
doublefps - double frame rate by deinterlacing fields into frames
doublefps was written by Andrew Church. The version documented here
is v1.1 (2006-05-14). This is a video and audio filter. It can han‐
dle YUV and YUV422 modes. It is a pre-processing only filter.
· topfirst = %d [default 0 when height=480, else 1]
Assume top field is displayed first
· fullheight = %d [default 0]
Output full-height frames
Doubles the frame rate of interlaced video by separating each field
into a separate frame. The fields can either be left as is (giving
a progessive video with half the height of the original) or re-
interlaced into their original height (at the doubled frame rate)
for the application of a separate deinterlacing filter.
Note that due to transcode limitations, it is currently necessary
to use the -Z option to specify the output frame size when using
half-height mode (this does not slow the program down if no actual
zooming is done).
extsub - DVD subtitle overlay plugin
extsub was written by Thomas Oestreich. The version documented here
is 0.3.5 (2003-10-15). This is a video filter. It can handle RGB
and YUV mode. It can be used as a pre-processing or as a post-pro‐
cessing filter.
· track = %d [default 0]
Subtitle track to render
· vertshift = %d [default 0]
offset of subtitle with respect to bottom of frame in rows
· timeshift = %d [default 0]
global display start time correction in msec
· antialias = %d [default 1]
anti-aliasing the rendered text (0=off,1=on)
· pre = %d [default 1]
Run as a pre filter
· color1 = %d [default 0]
Make a subtitle color visible with given intensity
· color2 = %d [default 0]
Make a subtitle color visible with given intensity
· ca = %d [default 0]
Shuffle the color assignment by choosing another subtitle color
· cb = %d [default 0]
Shuffle the color assignment by choosing another subtitle color
fieldanalysis - Field analysis for detecting interlace and telecine
fieldanalysis was written by Matthias Hopf. The version documented
here is v1.0 pl1 (2004-08-13). This is a video filter. It can han‐
dle RGB,YUV and YUV422 mode. It is a pre-processing only filter.
· interlacediff = %f [default 1.1]
Minimum temporal inter-field difference for detecting interlaced
video
· unknowndiff = %f [default 1.5]
Maximum inter-frame change vs. detail differences for neglecting
interlaced video
· progressivediff = %f [default 8]
Minimum inter-frame change vs. detail differences for detecting
progressive video
· progressivechange = %f [default 0.2]
Minimum temporal change needed for detecting progressive video
· changedifmore = %f [default 10]
Minimum temporal change for detecting truly changed frames
· forcetelecinedetect = %d [default 0]
Detect telecine even on non-NTSC (29.97fps) video
· verbose = %d [default 0]
Output analysis for every frame
· outdiff = %d [default 0]
Output internal debug frames as luminance of YUV video (see
source)
fields - Field adjustment plugin
fields was written by Alex Stewart. The version documented here is
v0.1.1 (2003-01-21). This is a video filter. It can handle RGB and
YUV mode. It is a pre-processing only filter.
· flip (bool)
Exchange the top field and bottom field of each frame
· shift (bool)
Shift the video by one field
· flip_first (bool)
Normally shifting is performed before flipping, this option
reverses that
The 'fields' filter is designed to shift, reorder, and gen‐
erally rearrange independent fields of an interlaced video
input. Input retrieved from broadcast (PAL, NTSC, etc)
video sources generally comes in an interlaced form where
each pass from top to bottom of the screen displays every
other scanline, and then the next pass displays the lines
between the lines from the first pass. Each pass is known
as a "field" (there are generally two fields per frame).
When this form of video is captured and manipulated digi‐
tally, the two fields of each frame are usually merged
together into one flat (planar) image per frame. This usu‐
ally produces reasonable results, however there are condi‐
tions which can cause this merging to be performed incor‐
rectly or less-than-optimally, which is where this filter
can help.
The following options are supported for this filter (they
can be separated by colons):
shift - Shift the video by one field (half a frame),
changing frame boundaries appropriately. This is
useful if a video capture started grabbing video
half a frame (one field) off from where frame
boundaries were actually intended to be.
flip - Exchange the top field and bottom field of each
frame. This can be useful if the video signal was
sent "bottom field first" (which can happen
sometimes with PAL video sources) or other
oddities occurred which caused the frame
boundaries to be at the right place, but the
scanlines to be swapped.
flip_first
- Normally shifting is performed before flipping if
both are specified. This option reverses that
behavior. You should not normally need to use
this unless you have some extremely odd input
material, it is here mainly for completeness.
help - Print this text.
Note: the 'shift' function may produce slight color discrep‐
ancies if YV12 is used as the internal transcode video for‐
mat (default). This is because YV12 does not contain enough
information to do field shifting cleanly. For best (but
slower) results, use RGB mode for field shifting.
fps - convert video frame rate, gets defaults from -f and --export_fps
fps was written by Christopher Cramer. The version documented here
is v1.1 (2004-05-01). This is a video filter. It can handle RGB and
YUV mode. It can be used as a pre-processing or as a post-process‐
ing filter.
options: <input fps>:<output fps> example: -J fps=25:29.97
will convert from PAL to NTSC If no options are given,
defaults or -f/--export_fps/--export_frc will be used. Some
examples:
-J fps=10:5:pre convert from 10 fps to 5 fps,
preprocess -J fps=10:post:12 convert from 10 to 12,
postprocess -J fps=pre=1:7:5 convert from 7 to 5,
postprocess -J fps=9:3.1:post=-0x7 convert from 9 to
3.1, postprocess
If that last one is confusing you, remember that 0 is false
and everything else is true. Of course, octal and hexadeci‐
mal numbers are supported too. This is intended to be back‐
ward compatible with the old format.
hqdn3d - High Quality 3D Denoiser
hqdn3d was written by Daniel Moreno & A'rpi. The version documented
here is v1.0.2 (2003-08-15). This is a video filter. It can handle
YUV mode only. It supports multiple instances. It can be used as a
pre-processing or as a post-processing filter.
· luma = %f [default 4.000000]
spatial luma strength
· chroma = %f [default 3.000000]
spatial chroma strength
· luma_strength = %f [default 6.000000]
temporal luma strength
· chroma_strength = %f [default 4.500000]
temporal chroma strength
· pre = %d [default 0]
run as a pre filter
This filter aims to reduce image noise producing smooth
images and making still images really still (This should
enhance compressibility).
invert - invert the image
invert was written by Tilmann Bitterberg. The version documented
here is v0.1.4 (2003-10-12). This is a video filter. It can handle
RGB,YUV and YUV422 mode. It is a post-processing only filter.
· range = %u-%u/%d [default 0-4294967295/1]
apply filter to [start-end]/step frames
ivtc - NTSC inverse telecine plugin
ivtc was written by Thanassis Tsiodras. The version documented here
is v0.4.1 (2004-06-01). This is a video filter. It can handle YUV
mode only. It is a pre-processing only filter.
· verbose (bool)
print verbose information
· field = %d [default 0]
which field to replace (0=top 1=bottom)
· magic = %d [default 0]
perform magic? (0=no 1=yes)
see /docs/README.Inverse.Telecine.txt
levels - Luminosity level scaler
levels was written by Bryan Mayland. The version documented here is
v1.0.0 (2004-06-09). This is a video filter. It can handle YUV mode
only. It supports multiple instances. It is a post-processing only
filter.
· input = %d-%d [default 0-255]
input luma range (black-white)
· gamma = %f [default 1.000000]
input luma gamma
· output = %d-%d [default 0-255]
output luma range (black-white)
logo - render image in videostream
logo was written by Tilmann Bitterberg. The version documented here
is v0.10 (2003-10-16). This is a video filter. It can handle RGB
and YUV mode. It is a post-processing only filter.
· file = %s
Image filename
· posdef = %d [default 0]
Position (0=None, 1=TopL, 2=TopR, 3=BotL, 4=BotR, 5=Center)
· pos = %dx%d [default 0x0]
Position (0-width x 0-height)
· range = %u-%u [default 0-0]
Restrict rendering to framerange
· ignoredelay (bool)
Ignore delay specified in animations
· rgbswap (bool)
Swap red/blue colors
· grayout (bool)
YUV only: don't write Cb and Cr, makes a nice effect
· flip (bool)
Mirror image
This filter renders an user specified image into the video.
Any image format ImageMagick can read is accepted. Trans‐
parent images are also supported. Image origin is at the
very top left.
see /docs/filter_logo.txt
logoaway - remove an image from the video
logoaway was written by Thomas Wehrspann <thomas@wehrspann.de>. The
version documented here is v0.5 (2004-03-07). This is a video fil‐
ter. It can handle RGB and YUV mode. It is a post-processing only
filter. It supports multiple instances.
· range = %d-%d [default 0-4294967295]
Frame Range
· pos = %dx%d [default -1x-1]
Position of logo
· size = %dx%d [default -2x-2]
Size of logo
· mode = %d [default 0]
Filter Mode (0=none,1=solid,2=xy,3=shape)
· border (bool)
Visible Border
· dump (bool)
Dump filterarea to file
· xweight = %d [default 50]
X-Y Weight(0%-100%)
· fill = %2x%2x%2x [default 000]
Solid Fill Color(RGB)
· file = %s
Image with alpha/shape information
This filter removes an image in a user specified area from
the video. You can choose from different methods.
see /docs/filter_logoaway.txt
lowpass - High and low pass filter
lowpass was written by Tilmann Bitterberg. The version documented
here is v0.1.0 (2002-02-26). This is a audio filter. It is a pre-
processing only filter.
· taps = %d [default 30]
strength (may be negative)
mask - Filter through a rectangular Mask
mask was written by Thomas Oestreich, Chad Page. The version docu‐
mented here is v0.2.3 (2003-10-12). This is a video filter. It can
handle RGB,YUV and YUV422 mode. It is a pre-processing only filter.
· lefttop = %dx%d [default 0x0]
Upper left corner of the box
· rightbot = %dx%d [default 32x32]
Lower right corner of the box
This filter applies an rectangular mask to the video.
Everything outside the mask is set to black.
modfps - plugin to modify framerate
modfps was written by Marrq. The version documented here is v0.10
(2003-08-18). This is a video filter. It can handle RGB and YUV
mode. It is a pre-processing only filter.
· mode = %d [default 1]
mode of operation
· infps = %f [default 25.000000]
Original fps
· infrc = %d [default 0]
Original frc
· examine = %d [default 5]
How many frames to buffer
· subsample = %d [default 32]
How many pixels to subsample
· clonetype = %d [default 0]
How to clone frames
· verbose = %d [default 1]
run in verbose mode
This filter aims to allow transcode to alter the fps of
video. While one can reduce the fps to any amount, one can
only increase the fps to at most twice the original fps.
There are two modes of operation, buffered and unbuffered,
unbuffered is quick, but buffered, especially when dropping
frames should look better.
For most users, modfps will need either no options, or just
mode=1
see /docs/README.filter.modfps
msharpen - VirtualDub's MSharpen Filter
msharpen was written by Donald Graft, William Hawkins. The version
documented here is (1.0) (2003-07-17). This is a video filter. It
can handle RGB and YUV mode. It is a post-processing only filter.
· strength = %d [default 100]
How much of the effect
· threshold = %d [default 10]
How close a pixel must be to the brightest or dimmest pixel to
be mapped
· highq = %d [default 1]
Tradeoff speed for quality of detail detection
· mask = %d [default 0]
Areas to be sharpened are shown in white
This plugin implements an unusual concept in spatial sharp‐
ening. Although designed specifically for anime, it also
works well with normal video. The filter is very effective
at sharpening important edges without amplifying noise.
* Strength 'strength' (0-255) [100]
This is the strength of the sharpening to be applied to
the edge detail areas. It is applied only to the edge detail
areas as determined by the 'threshold' parameter. Strength
255 is the strongest sharpening.
* Threshold 'threshold' (0-255) [10]
This parameter determines what is detected as edge
detail and thus sharpened. To see what edge detail areas
will be sharpened, use the 'mask' parameter.
* Mask 'mask' (0-1) [0]
When set to true, the areas to be sharpened are shown in
white against a black background. Use this to set the level
of detail to be sharpened. This function also makes a basic
edge detection filter.
* HighQ 'highq' (0-1) [1]
This parameter lets you tradeoff speed for quality of
detail detection. Set it to true for the best detail detec‐
tion. Set it to false for maximum speed.
normalize - Volume normalizer
normalize was written by pl, Tilmann Bitterberg. The version docu‐
mented here is v0.1.1 (2002-06-18). This is a audio filter. It is a
pre-processing only filter.
· smooth = %f [default 0.06]
Value for smoothing ]0.0 1.0[
· smoothlast = %f [default 0.06]
Value for smoothing last sample ]0.0, 1.0[
· algo = %d [default 1]
Algorithm to use (1 or 2). 1=uses a 1 value memory and coeffi‐
cients new=a*old+b*cur (with a+b=1). 2=uses several samples to
smooth the variations (standard weighted mean on past samples)
null - demo filter plugin; does nothing
null was written by Thomas Oestreich. The version documented here
is v0.2 (2003-09-04). This is a video and audio filter. It can be
used as a pre-processing or as a post-processing filter.
pp - Mplayers postprocess filters
pp was written by Michael Niedermayer et al, Gerhard Monzel. The
version documented here is v1.2.4 (2003-01-24). This is a video
filter. It can handle YUV mode only. It supports multiple
instances. It can be used as a pre-processing or as a post-process‐
ing filter.
· hb = %d:%d [default 64:40]
Horizontal deblocking filter
· vb = %d:%d [default 64:40]
Vertical deblocking filter
· h1 (bool)
Experimental h deblock filter 1
· v1 (bool)
Experimental v deblock filter 1
· dr (bool)
Deringing filter
· al (bool)
Automatic brightness / contrast
· f (bool)
Stretch luminance to (0..255)
· lb (bool)
Linear blend deinterlacer
· li (bool)
Linear interpolating deinterlace
· ci (bool)
Cubic interpolating deinterlacer
· md (bool)
Median deinterlacer
· de (bool)
Default preset (hb:a/vb:a/dr:a/al)
· fa (bool)
Fast preset (h1:a/v1:a/dr:a/al)
· tn = %d:%d:%d [default 64:128:256]
Temporal Noise Reducer (1<=2<=3)
· fq = %d [default 15]
Force quantizer
· pre (bool)
Run as a PRE filter
preview - xv/sdl/gtk preview plugin
preview was written by Thomas Oestreich. The version documented
here is v0.1.4 (2002-10-08). This is a video filter. It can handle
RGB and YUV mode. It is a post-processing only filter.
XXX: Write me
pv - xv only preview plugin
pv was written by Thomas Oestreich, Tilmann Bitterberg. The version
documented here is v0.2.3 (2004-06-01). This is a video filter. It
can handle YUV and YUV422 mode. It is a post-processing only fil‐
ter.
· cache = %d [default 15]
Number of raw frames to cache for seeking
· skip = %d [default 0]
display only every Nth frame
· fullscreen (bool)
Display in fullscreen mode
The filter listens to mouse and key strokes. If you click
into the preview window, the first time say near the upper
left corner and the second time near the lower right corner,
transcode will draw a rectangle and will print out the coor‐
dinates of this rectangle on stdout and the socket. See the
table below for available keys.
When you start transcode with the --socket option and the pv
filter with (for example) cache=20 you can talk to transcode
and the pv filter at runtime using the socket.
transcode-i file.avi -J pv=cache=30 --socket /tmp/sock
Available Commands
Key Socket* Effect
RET draw redraws the image, applying filters.
u undo goes to image before draw
SPACE pause pause the preview (and transcode)
UP fastfw in pause mode, step forward 5 frames
RIGHT slowfw in pause mode, step forward 1 frame
DOWN fastbw in pause mode, step back 5 frames
LEFT slowbw in pause mode, step back 1 frame
q display toggle display of frames
s slower slow down
f faster speed up
y toggle toggle displaying only every 5 frames
j grab save a JPEG
r rotate rotate AVI file after next keyframe
(*) all commands must be prefixed with "preview
".
resample - audio resampling filter plugin
resample was written by Thomas Oestreich. The version documented
here is v0.1.4 (2003-08-22). This is a audio filter. It is a pre-
processing only filter.
skip - skip all listed frames
skip was written by Thomas Oestreich. The version documented here
is v0.0.1 (2001-11-27). This is a video and audio filter. It is a
pre-processing only filter.
· fstart1-fend1 [ fstart2-fend2 [ .. ] ] = %s
apply filter [start-end] frames
slowmo - very cheap slow-motion effect
slowmo was written by Tilmann Bitterberg. The version documented
here is v0.3 (2003-29-11). This is a video filter. It can handle
RGB and YUV mode. It is a pre-processing only filter.
This filter produces a simple slow-motion effect by dupli‐
cating certain frames. I have seen this effect on TV and
despite its the simple algorithm it works quite well. The
filter has no options.
smartbob - Motion-adaptive deinterlacing for double-frame-rate output.
smartbob was written by Donald Graft, Tilmann Bitterberg. The ver‐
sion documented here is v1.1beta2 (2003-06-23). This is a video
filter. It can handle RGB and YUV mode. It is a post-processing
only filter.
· motionOnly = %d [default 0]
Show motion areas only
· shiftEven = %d [default 0]
Blend instead of interpolate in motion areas
· threshold = %d [default 12]
Motion Threshold
· denoise = %d [default 1]
Phase shift
This filter only makes sense when fed by -J doublefps. It
will take the field-frames which filter_doublefps produces
and generates full-sized motion adaptive deinterlaced output
at the double import framerate.
smartdeinter - VirtualDub's smart deinterlacer
smartdeinter was written by Donald Graft. The version documented
here is v2.7b (2003-02-01). This is a video filter. It can handle
RGB and YUV mode. It is a pre-processing only filter.
· motionOnly = %d [default 0]
Show motion areas only
· Blend = %d [default 0]
Blend instead of interpolate in motion areas
· threshold = %d [default 15]
Motion Threshold
· scenethreshold = %d [default 100]
Scene Change Threshold
· fieldShift = %d [default 0]
Phase shift
· inswap = %d [default 0]
Field swap before phase shift
· outswap = %d [default 0]
Field swap after phase shift
· noMotion = %d [default 0]
Disable motion processing
· highq = %d [default 0]
Motion map denoising for field-only
· diffmode = %d [default 0]
Motion Detection (0=frame, 1=field, 2=both)
· colordiff = %d [default 1]
Compare color channels instead of luma
· cubic = %d [default 0]
Use cubic for interpolation
This filter provides a smart, motion-based deinterlacing
capability. In static picture areas, interlacing artifacts
do not appear, so data from both fields is used to provide
full detail. In moving areas, deinterlacing is performed
smartyuv - Motion-adaptive deinterlacing
smartyuv was written by Tilmann Bitterberg. The version documented
here is 0.1.4 (2003-10-13). This is a video filter. It can handle
YUV mode only. It is a pre-processing only filter.
· motionOnly = %d [default 0]
Show motion areas only, blacking out static areas
· diffmode = %d [default 0]
Motion Detection (0=frame, 1=field, 2=both)
· threshold = %d [default 14]
Motion Threshold (luma)
· chromathres = %d [default 7]
Motion Threshold (chroma)
· scenethres = %d [default 31]
Threshold for detecting scenechanges
· highq = %d [default 1]
High-Quality processing (motion Map denoising)
· cubic = %d [default 1]
Do cubic interpolation
· Blend = %d [default 1]
Blend the frames for deinterlacing
· doChroma = %d [default 1]
Enable chroma processing (slower but more accurate)
· verbose = %d [default 0]
Verbose mode
This filter is basically a rewrite of the smartdeinter fil‐
ter by Donald Graft (without advanced processing options)
for YUV mode only. Its faster than using the smartdeinter in
YUV mode and is also tuned with its threshold settings for
YUV mode. The filter detects motion and static areas in an
image and only deinterlaces (either by blending or by cubic
interpolation) the moving areas. The result is an image with
high detail in static areas, no information is lost there.
The threshold settings should be sufficent for most users.
As a rule of thumb, I recommend setting the chroma threshold
to about the half of the luma threshold. If you want more
deinterlacing, lower the thresholds. The scene threshold can
be easily found by turning on verbose mode and the preview
filter. In verbose mode, the filter will print out, when it
detects a scene change. If scenechanges go by unnoticed,
lower the scene threshold. You can completly disable chroma
processing with the doChroma=0 option. Here is a sample
commandline
-J smartyuv=highq=1:diffmode=2:cubic=1:Blend=1:chromath‐
res=4:threshold=8:doChroma=1
smooth - (single-frame) smoothing plugin
smooth was written by Chad Page. The version documented here is
v0.2.3 (2003-03-27). This is a video filter. It can handle YUV mode
only. It is a pre-processing only filter. It supports multiple
instances.
· strength = %f [default 0.25]
Blending factor
· cdiff = %d [default 6]
Max difference in chroma values
· ldiff = %d [default 8]
Max difference in luma value
· range = %d [default 4]
Search Range
"single-frame" means it only works with the current frame,
it does not need the next or the previous frame for opera‐
tion. Usually smoothing is done by talking the data of pre‐
vious frames into account to see which parts of the picture
can be "safely" smoothed, this filter only needs one frame.
Usage -J subtitler="[no_objects] [subtitle_file=s] [color_depth=n]
[font_dir=s] [font=n] [font_factor=f [frame_offset=n] [debug]
[help]" f is float, h is hex, n is integer, s is string.
no_objects disables subtitles and other objects (off).
color_depth= 32 or 24 (overrides X auto) (32).
font= 0 or 1, 1 gives strange symbols... (0).
font_dir= place where font.desc is (~/.subtitles/font).
font_factor= .1 to 100 outline characters (10.75).
frame_offset= positive (text later) or negative (earlier)
integer (0).
subtitle_file= pathfilename.ppml location of ppml file
(~/.subtitles/demo.ppml).
debug prints debug messages (off).
help prints this list and exit.
testframe - generate stream of testframes
testframe was written by Thomas Oestreich. The version documented
here is v0.1.3 (2003-09-04). This is a video filter. It can handle
RGB and YUV mode. It is a pre-processing only filter.
· mode = %d [default 0]
Choose the test pattern (0-4 interlaced, 5 colorfull)
text - write text in the image
text was written by Tilmann Bitterberg. The version documented here
is v0.1.4 (2004-02-14). This is a video filter. It can handle RGB
and YUV mode. It is a post-processing only filter.
· range = %u-%u/%d [default 0-4294967295/1]
apply filter to [start-end]/step frames
· string = %s
text to display (no ':') [defaults to `date`]
· font = %s
full path to font file [defaults to arial.ttf]
· points = %d [default 25]
size of font (in points)
· dpi = %d [default 96]
resolution of font (in dpi)
· fade = %d [default 0]
fade in/out (0=off, 1=slow, 10=fast)
· antialias = %d [default 1]
Anti-Alias text (0=off 1=on)
· pos = %dx%d [default 0x0]
Position (0-width x 0-height)
· posdef = %d [default 0]
Position (0=None 1=TopL 2=TopR 3=BotL 4=BotR 5=Cent 6=BotCent)
· notransparent (bool)
disable transparency (enables block box)
see /docs/filter_text.txt
tomsmocomp - Tom's MoComp deinterlacing filter
tomsmocomp was written by Tom Barry et al.. The version documented
here is v0.1 (2004-07-31). This is a video filter. It can handle
YUV and YUV422 mode. It is a pre-processing only filter.
· TopFirst = %d [default 1]
Assume the top field should be displayed first
· SearchEffort = %d [default 15]
CPU time used to find moved pixels
· UseStrangeBob = %d [default 0]
?Unknown?
· CpuFlags = %x [default 5f]
Manual specification of CPU capabilities
unsharp - unsharp mask & gaussian blur
unsharp was written by Remi Guyomarch. The version documented here
is v1.0.1 (2003-10-27). This is a video filter. It can handle YUV
mode only. It is a post-processing only filter.
· amount = %f [default 0.0]
Luma and chroma (un)sharpness amount
· matrix = %dx%d [default 0x0]
Luma and chroma search matrix size
· luma = %f [default 0.0]
Luma (un)sharpness amount
· chroma = %f [default 0.0]
Chroma (un)sharpness amount
· luma_matrix = %dx%d [default 0x0]
Luma search matrix size
· chroma_matrix = %dx%d [default 0x0]
Chroma search matrix size
· pre = %d [default 0]
run as a pre filter
This filter blurs or sharpens an image depending on the sign
of "amount". You can either set amount for both luma and
chroma or you can set it individually (recommended). A posi‐
tive value for amount will sharpen the image, a negative
value will blur it. A sane range for amount is -1.5 to 1.5.
The matrix sizes must be odd and define the range/strength
of the effect. Sensible ranges are 3x3 to 7x7.
It sometimes makes sense to sharpen the sharpen the luma and
to blur the chroma. Sample string is:
luma=0.8:luma_matrix=7x5:chroma=-0.2:chroma_matrix=3x3
whitebalance - White Balance Filter - correct images with a broken
white balance
whitebalance was written by Guillaume Cottenceau. The version docu‐
mented here is v0.1 (2003-10-01). This is a video filter. It can
handle RGB and YUV mode. It is a pre-processing only filter.
· level = %d [default 40]
Level of blue-to-yellow white balance shifting (can be negative)
· limit = %s
Limit to specified ranges (+fnumber toggles on, -fnumber toggles
off)
This filter allows correcting movies with a broken white
balance, e.g. bluish movies.
xharpen - VirtualDub's XSharpen Filter
xharpen was written by Donald Graft, Tilmann Bitterberg. The ver‐
sion documented here is (1.0b2) (2003-02-12). This is a video fil‐
ter. It can handle RGB and YUV mode. It is a post-processing only
filter.
· strength = %d [default 200]
How much of the effect
· threshold = %d [default 255]
How close a pixel must be to the brightest or dimmest pixel to
be mapped
This filter performs a subtle but useful sharpening effect.
The result is a sharpening effect that not only avoids
amplifying noise, but also tends to reduce it. A welcome
side effect is that files processed with this filter tend to
compress to smaller files.
Strength 'strength' (0-255) [200]
When this value is 255, mapped pixels are not blended
with the original pixel values, so a full-strength effect is
obtained. As the value is reduced, each mapped pixel is
blended with more of the original pixel. At a value of 0,
the original pixels are passed through and there is no
sharpening effect.
Threshold 'threshold' (0-255) [255]
This value determines how close a pixel must be to the
brightest or dimmest pixel to be mapped. If a pixel is more
than threshold away from the brightest or dimmest pixel, it
is not mapped. Thus, as the threshold is reduced, pixels in
the mid range start to be spared.
yuvdenoise - mjpegs YUV denoiser
yuvdenoise was written by Stefan Fendt, Tilmann Bitterberg. The
version documented here is v0.2.1 (2003-11-26). This is a video
filter. It can handle YUV mode only. It can be used as a pre-pro‐
cessing or as a post-processing filter.
· radius = %d [default 8]
Search radius
· threshold = %d [default 5]
Denoiser threshold
· pp_threshold = %d [default 4]
Pass II threshold
· delay = %d [default 3]
Average 'n' frames for a time-lowpassed pixel
· postprocess = %d [default 1]
Filter internal postprocessing
· luma_contrast = %d [default 100]
Luminance contrast in percent
· chroma_contrast = %d [default 100]
Chrominance contrast in percent.
· sharpen = %d [default 125]
Sharpness in percent
· deinterlace = %d [default 0]
Force deinterlacing
· mode = %d [default 0]
[0]: Progressive [1]: Interlaced [2]: Fast
· scene_thres = %d%% [default 50]
Blocks where motion estimation should fail before scenechange
· block_thres = %d [default 1024]
Every SAD value greater than this will be considered bad
· do_reset = %d [default 2]
Reset the filter for `n' frames after a scene
· increment_cr = %d [default 2]
Increment Cr with constant
· increment_cb = %d [default 2]
Increment Cb with constant
· border = %dx%d-%dx%d [default 0x0-32x32]
Active image area
· pre = %d [default 0]
run this filter as a pre-processing filter
see /docs/filter_yuvdenoise.txt
yuvmedian - mjpegs YUV median filter
yuvmedian was written by Mike Bernson, Tilmann Bitterberg. The ver‐
sion documented here is v0.1.0 (2003-01-24). This is a video fil‐
ter. It can handle YUV mode only. It can be used as a pre-process‐
ing or as a post-processing filter.
· radius_luma = %d [default 2]
Radius for median (luma)
· radius_chroma = %d [default 2]
Radius for median (chroma)
· threshold_luma = %d [default 2]
Trigger threshold (luma)
· threshold_chroma = %d [default 2]
Trigger threshold (chroma)
· interlace = %d [default 0]
Treat input as interlaced
· pre = %d [default 1]
Run as a PRE filter
ENVIRONMENT
TRANSCODE_NO_LOG_COLOR
if set, forces the colored logging off for all the tools of
transcode suite.
NOTES
* Most source material parameter are auto-detected.
* Clipping region options are expanded symmetrically. Examples:
-j 80 will be expanded to -j 80,0,80,0
-j 80,8 will be expanded to -j 80,8,80,8
-j 80,8,10 will be expanded to -j 80,8,10,8
* maximum image size is 1920x1088.
* The video frame operations ordering is fixed: "-j -I -X -B -Z -Y
-r -z -l -k -K -G -C" (executed from left to right).
* Shrinking the image with '-B' is not possible if the image
width/height is not a multiple of 8, 16 or 32.
* Expanding the image with '-X' is not possible if the image
width/height is not a multiple of 8, 16 or 32.
* The final frame width/height should be a multiple of 8. (to
avoid encoding problems with some codecs)
1. Reducing the video height/width by 2,4,8 Option '-r fac‐
tor' can be used to shrink the video image by a constant
factor, this factor can be 2,4 or 8.
2. Clipping and changing the aspect ratio transcode uses 3
steps to produce the input image for the export modules
1. Clipping of the input image.
2. Changing the aspect ratio of the 1) output.
3. Clipping of the 2) output.
* Bits per pixel (bits/pixel) is a value transcode calculates and
prints when starting up. It is mainly useful when encoding to
MPEG4 (xvid, divx, etc). You'll see line like
[transcode] V: bits/pixel | 0.237
Simplified said, bits/pixel quantifies how good an encode will
be. Although this value depends heavily on the used input mate‐
rial, as a general rule of thump it can be said that values
greater or close to 0.2 will result in good encodes, encodes
with values less than 0.15 will have noticeable artifacts.
Bits per pixel depends on the resolution, bitrate and frames per
second. If you have a low value ( < 0.15), you might want to
raise the bitrate or encode at a lower resolution. The exact
formula is
bitrate*1000
bpp = ----------------
width*height*fps
* AC3 / Multiple channels
When you do import an audio stream which has more then two audio
channels - this is usually the case for AC3 audio - transcode
will automagically downmix to two channels (stereo). You'll see
line like
[transcode] A: downmix | 5 channels -> 2 channels
This is done, because most encoders and audio filters can not
handle more than 2 channels correctly. The PCM internal repre‐
sentation does not support more than two channels, audio will be
downmixed to stereo No downmix will happen, if you use AC3 as
the internal audio codec or use audio pass-through.
EXAMPLES
The following command will read it's input from the DVD drive (I assume
/dev/dvd is a symbolic link to the actual DVD device) and produce a
splitted divx4 movie according to the chapter information on the DVD
medium. The output files will be named my_movie-ch00.avi, my_movie-
ch01.avi ...
transcode-i /dev/dvd/ -x dvd -j 16,0 -B 5,0 \
-Y 40,8 -s 4.47 -U my_movie -y xvid -w 1618
Option -j 16,0 will be expanded to -j 16,0,16,0 and results in 16 rows
from the top and the bottom of the image to be cut off. This may be
usefull if the source consists of black top and bottom bars.
Option -B 5,0 tells transcode to shrink the resulting image by 5*32=160
rows in height.
Option -Y 40,8 will be expanded to -Y 40,8,40,8 and tells transcode to
...
Option -s 4.47 tells transcode to increase audio volume by a factor
4.47.
Option -U my_movie tells transcode to operate in chapter mode and pro‐
duce output to files named my_movie-ch00.avi, my_movie-ch01.avi...
You can either merge the files afterwards with avimerge or add the
option --no_split to the command line.
Option -y xvid tells transcode to use the export module export_xvid.so
which in turn uses the XviD encoder to encode the video.
Option -w 1618 tells transcode to set the encoder bitrate to 1618 which
is lower than the default of 1800 and results in smaller files with the
loss of visual quality.
Lets assume that you have an NTSC DVD (720x480) and you want to make an
NTSC-SVCD
The frame size of the DVD movie is 720x480 @ 16:9. For the pur‐
pose of frame resizing, the width 720 is not relavant (that is,
it will not be used in the following reasoning). It is not
needed because the original frame size is really defined by the
frame height and aspect ratio. The _final result_ should be
640x480, encoded as 480x480 @ 4:3 (the height 480 multiplied by
the aspect ratio 4:3 gives the width 640). This same frame size
(640x480) can also be encoded as 640x360 @ 16:9 (the height 360
multiplied by the aspect ratio 16:9 gives the width 640).
As the _original video_ has aspect ratio 16:9, first we resize
to 640x360, keeping that aspect ratio. But the aspect ratio has
to be changed to 4:3. To find the frame size in the new aspect
ratio the height 360 is multiplied by the new aspect ratio, giv‐
ing the width 480. This is accomplished with the transcode
options "--export_asr 2 -Z 480x360,fast".
To avoid stretching the video height in this change (because the
new aspect ratio is less than the original), black borders
should be added at the top and bottom of the video, bringing the
frame to the desired 480x480 @ 4:3 size. The transcode option
for this is "-Y -60,0,-60,0".
If for some reason (maybe a subtitle filter) the black borders
(of height 60 each) should be added before resizing the frame
and changing the aspect ratio to 4:3. One reason for that would
be the need of running a _pre_ filter after adding the black
borders. Then the options "-j" or "--pre_clip" can be used
instead of "-Y". In this case the black border height has to be
recalculated by applying the aspect ratio 4:3 to the value
already found: 60 * (4/3) = 80. The transcode options "-j
-80,0,-80,0" or "--pre_clip -80,0,-80,0" are then used instead
of "-Y -60,0,-60,0", and "-Z 480x360,fast" is replaced by "-Z
480x480,fast".
AUTHORStranscode was written by Thomas Oestreich <ostreich@theorie.physik.uni-
goettingen.de> and Tilmann Bitterberg with contributions from many oth‐
ers. See the AUTHORS file for details.
SEE ALSOavifix(1), avisync(1), avimerge(1), avisplit(1), tcprobe(1), tcscan(1),
tccat(1), tcdemux(1), tcextract(1), tcdecode(1), tcmodinfo(1),
tcxmlcheck(1), transcode(1)WWW
Frequently asked questions (FAQ) at
http://www.transcoding.org/cgi-bin/transcode?Transcode_FAQ ⟨⟩
Example transcode sessions
http://www.transcoding.org/cgi-bin/transcode?Command_Examples ⟨⟩
BUGS
Yes, there are bugs in transcode! Do your part and report them immedi‐
ately. For details, see
http://www.transcoding.org/cgi-bin/transcode?Reporting_Problems ⟨⟩
transcode(1) 14th July 2007 transcode(1)