.TH transcode filter modules 1 "3th February 2008" "transcode_filter(1)"
.SH NAME
transcode \- filter modules collection
.SH SYNOPSIS
.B transcode -J filters [other options]
.SH COPYRIGHT
\fBtranscode\fP is Copyright (C) 2001-2003 by Thomas Oestreich, 2003-2004 Tilmann
Bitterberg, 2004-2008 Transcode Team
.SH MODULE OPTIONS
The syntax for filter options is simple. A filter is specified with
.RS 4
.nf
\-J filter=\fIoptionstring\fP
.fi
.RE
The optionstring can contain multiple options which are separated by colons \`:\'
.RS 4
.nf
\-J filter=\fIoption1\fP:\fIoption2\fP:\fIoption3\fP
.fi
.RE
An option can have an argument or non (bool). For options with an argument, 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 \`=\'.
.RS 4
.nf
\-J filter=\fIbool1\fP:\fIoption1\fP=\fI15\fP:\fIoption2\fP=\fI20x30\fP
.fi
.RE
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
.RS 4
.nf
\-J text=string="Hello\\, World"
.fi
.RE
.SH FILTER MODULES
To see what filter modules are avalaible for your transcode installation, do a
.RS 4
.B ls -1 $( tcmodinfo -p )/filter*.so
.RE
A complete transcode installation has the following filter modules:
.br
.\" Here starts the generated filter part, produced by make-filter-man.sh
.TP 4
\fB29to23\fP - \fBframe rate conversion filter (interpolating 29 to 23)\fP
\fB29to23\fP was written by Max Alekseyev, Tilmann Bitterberg. The version 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.
.TP 4
\fB32detect\fP - \fB3:2 pulldown / interlace detection plugin\fP
\fB32detect\fP 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-processing and/or as a post-processing filter.
.IP
.RS
\(bu
.I threshold
= \fI%d\fP [default \fI9\fP]
.RS 3
Interlace detection threshold
.RE
\(bu
.I chromathres
= \fI%d\fP [default \fI4\fP]
.RS 3
Interlace detection chroma threshold
.RE
\(bu
.I equal
= \fI%d\fP [default \fI10\fP]
.RS 3
threshold for equal colors
.RE
\(bu
.I chromaeq
= \fI%d\fP [default \fI5\fP]
.RS 3
threshold for equal chroma
.RE
\(bu
.I diff
= \fI%d\fP [default \fI30\fP]
.RS 3
threshold for different colors
.RE
\(bu
.I chromadi
= \fI%d\fP [default \fI15\fP]
.RS 3
threshold for different chroma
.RE
\(bu
.I force_mode
= \fI%d\fP [default \fI0\fP]
.RS 3
set internal force de-interlace flag with mode -I N
.RE
\(bu
.I pre
= \fI%d\fP [default \fI1\fP]
.RS 3
run as pre filter
.RE
\(bu
.I verbose
(bool)
.RS 3
show results
.RE
.IP
This filter checks for interlaced video frames.
Subsequent de-interlacing with transcode can be enforced with 'force_mode' option
.RE
.TP 4
\fB32drop\fP - \fB3:2 inverse telecine removal plugin\fP
\fB32drop\fP 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.
.TP 4
\fBaclip\fP - \fBgenerate audio clips from source\fP
\fBaclip\fP 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-processing only filter.
.IP
.RS
\(bu
.I level
= \fI%d\fP [default \fI10\fP]
.RS 3
The audio must be under this level to be skipped
.RE
\(bu
.I range
= \fI%d\fP [default \fI25\fP]
.RS 3
Number of samples over level will be keyframes
.RE
.RE
.TP 4
\fBastat\fP - \fBaudio statistics filter plugin\fP
\fBastat\fP 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-processing only filter.
.IP
.RS
\(bu
.I file
= \fI%s\fP
.RS 3
File to save the calculated volume rescale number to
.RE
.RE
.RE
.TP 4
\fBcompare\fP - \fBcompare with other image to find a pattern\fP
\fBcompare\fP 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-processing only filter.
.IP
.RS
\(bu
.I pattern
= \fI%s\fP
.RS 3
Pattern image file path
.RE
\(bu
.I results
= \fI%s\fP
.RS 3
Results file path
.RE
\(bu
.I delta
= \fI%f\fP [default \fI45.000000\fP]
.RS 3
Delta error
.RE
.IP
Generate a file in with information about the times, frame, etc the pattern
defined in the image parameter is observed.
.RE
.IP
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
.RE
.TP 4
\fBcpaudio\fP - \fBcopy one audio channel to the other channel filter plugin\fP
\fBcpaudio\fP 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.
.IP
.RS
\(bu
.I source
= \fI%c\fP [default \fIl\fP]
.RS 3
Source channel (l=left, r=right)
.RE
.IP
Copies audio from one channel to another
.RE
.TP 4
\fBdecimate\fP - \fBNTSC decimation plugin\fP
\fBdecimate\fP 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.
.IP
.RS
\(bu
.I verbose
(bool)
.RS 3
print verbose information
.RE
.IP
see /docs/README.Inverse.Telecine.txt
.RE
.TP 4
\fBdenoise3d\fP - \fBHigh speed 3D Denoiser\fP
\fBdenoise3d\fP was written by Daniel Moreno & A'rpi. The version documented 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.
.IP
.RS
\(bu
.I luma
= \fI%f\fP [default \fI4.000000\fP]
.RS 3
spatial luma strength
.RE
\(bu
.I chroma
= \fI%f\fP [default \fI3.000000\fP]
.RS 3
spatial chroma strength
.RE
\(bu
.I luma_strength
= \fI%f\fP [default \fI6.000000\fP]
.RS 3
temporal luma strength
.RE
\(bu
.I chroma_strength
= \fI%f\fP [default \fI4.000000\fP]
.RS 3
temporal chroma strength
.RE
\(bu
.I pre
= \fI%d\fP [default \fI0\fP]
.RS 3
run as a pre filter
.RE
.IP
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 thoroughly 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 disabling the luma filter, this will not make
much difference in the effectiveness of the filter!
.RE
.TP 4
\fBdetectclipping\fP - \fBdetect clipping parameters (-j or -Y)\fP
\fBdetectclipping\fP was written by Tilmann Bitterberg, A'rpi. The version documented here is v0.1.0 (2003-11-01). This is a video filter. 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.
.IP
.RS
\(bu
.I range
= \fI%u-%u/%d\fP [default \fI0-4294967295/1\fP]
.RS 3
apply filter to [start-end]/step frames
.RE
\(bu
.I limit
= \fI%d\fP [default \fI24\fP]
.RS 3
the sum of a line must be below this limit to be considered as black
.RE
\(bu
.I post
(bool)
.RS 3
run as a POST filter (calc -Y instead of the default -j)
.RE
.IP
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.
.RE
.TP 4
\fBdetectsilence\fP - \fBaudio silence detection with tcmp3cut commandline generation\fP
\fBdetectsilence\fP was written by Tilmann Bitterberg. The version documented here is v0.0.1 (2003-07-26). This is a audio filter. It is a pre-processing only filter.
.TP 4
\fBdivxkey\fP - \fBcheck for DivX 4.xx / OpenDivX / DivX;-) keyframe\fP
\fBdivxkey\fP was written by Thomas Oestreich. The version documented here is v0.1 (2002-01-15). This is a video filter. It is a pre-processing only filter.
.TP 4
\fBdnr\fP - \fBdynamic noise reduction\fP
\fBdnr\fP 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.
.IP
.RS
\(bu
.I lt
= \fI%d\fP [default \fI10\fP]
.RS 3
Threshold to blend luma/red
.RE
\(bu
.I ll
= \fI%d\fP [default \fI4\fP]
.RS 3
Threshold to lock luma/red
.RE
\(bu
.I ct
= \fI%d\fP [default \fI16\fP]
.RS 3
Threshold to blend croma/green+blue
.RE
\(bu
.I cl
= \fI%d\fP [default \fI8\fP]
.RS 3
Threshold to lock croma/green+blue
.RE
\(bu
.I sc
= \fI%d\fP [default \fI30\fP]
.RS 3
Percentage of picture difference (scene change)
.RE
.IP
see /docs/filter_dnr.txt (german only)
.RE
.TP 4
\fBdoublefps\fP - \fBdouble frame rate by deinterlacing fields into frames\fP
\fBdoublefps\fP was written by Andrew Church. The version documented here is v1.1 (2006-05-14). This is a video and audio filter. It can handle YUV and YUV422 modes. It is a pre-processing only filter.
.IP
.RS
\(bu
.I topfirst
= \fI%d\fP [default \fI0\fP when height=480, else \fI1\fP]
.RS 3
Assume top field is displayed first
.RE
\(bu
.I fullheight
= \fI%d\fP [default \fI0\fP]
.RS 3
Output full-height frames
.RE
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).
.RE
.TP 4
\fBextsub\fP - \fBDVD subtitle overlay plugin\fP
\fBextsub\fP 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-processing filter.
.IP
.RS
\(bu
.I track
= \fI%d\fP [default \fI0\fP]
.RS 3
Subtitle track to render
.RE
\(bu
.I vertshift
= \fI%d\fP [default \fI0\fP]
.RS 3
offset of subtitle with respect to bottom of frame in rows
.RE
\(bu
.I timeshift
= \fI%d\fP [default \fI0\fP]
.RS 3
global display start time correction in msec
.RE
\(bu
.I antialias
= \fI%d\fP [default \fI1\fP]
.RS 3
anti-aliasing the rendered text (0=off,1=on)
.RE
\(bu
.I pre
= \fI%d\fP [default \fI1\fP]
.RS 3
Run as a pre filter
.RE
\(bu
.I color1
= \fI%d\fP [default \fI0\fP]
.RS 3
Make a subtitle color visible with given intensity
.RE
\(bu
.I color2
= \fI%d\fP [default \fI0\fP]
.RS 3
Make a subtitle color visible with given intensity
.RE
\(bu
.I ca
= \fI%d\fP [default \fI0\fP]
.RS 3
Shuffle the color assignment by choosing another subtitle color
.RE
\(bu
.I cb
= \fI%d\fP [default \fI0\fP]
.RS 3
Shuffle the color assignment by choosing another subtitle color
.RE
.RE
.TP 4
\fBfieldanalysis\fP - \fBField analysis for detecting interlace and telecine\fP
\fBfieldanalysis\fP was written by Matthias Hopf. The version documented here is v1.0 pl1 (2004-08-13). This is a video filter. It can handle RGB,YUV and YUV422 mode. It is a pre-processing only filter.
.IP
.RS
\(bu
.I interlacediff
= \fI%f\fP [default \fI1.1\fP]
.RS 3
Minimum temporal inter-field difference for detecting interlaced video
.RE
\(bu
.I unknowndiff
= \fI%f\fP [default \fI1.5\fP]
.RS 3
Maximum inter-frame change vs. detail differences for neglecting interlaced video
.RE
\(bu
.I progressivediff
= \fI%f\fP [default \fI8\fP]
.RS 3
Minimum inter-frame change vs. detail differences for detecting progressive video
.RE
\(bu
.I progressivechange
= \fI%f\fP [default \fI0.2\fP]
.RS 3
Minimum temporal change needed for detecting progressive video
.RE
\(bu
.I changedifmore
= \fI%f\fP [default \fI10\fP]
.RS 3
Minimum temporal change for detecting truly changed frames
.RE
\(bu
.I forcetelecinedetect
= \fI%d\fP [default \fI0\fP]
.RS 3
Detect telecine even on non-NTSC (29.97fps) video
.RE
\(bu
.I verbose
= \fI%d\fP [default \fI0\fP]
.RS 3
Output analysis for every frame
.RE
\(bu
.I outdiff
= \fI%d\fP [default \fI0\fP]
.RS 3
Output internal debug frames as luminance of YUV video (see source)
.RE
.RE
.TP 4
\fBfields\fP - \fBField adjustment plugin\fP
\fBfields\fP 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.
.IP
.RS
\(bu
.I flip
(bool)
.RS 3
Exchange the top field and bottom field of each frame
.RE
\(bu
.I shift
(bool)
.RS 3
Shift the video by one field
.RE
\(bu
.I flip_first
(bool)
.RS 3
Normally shifting is performed before flipping, this option reverses that
.RE
.IP
The 'fields' filter is designed to shift, reorder, and
generally 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
digitally, the two fields of each frame are usually merged
together into one flat (planar) image per frame. This
usually produces reasonable results, however there are
conditions which can cause this merging to be performed
incorrectly 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
discrepancies if YV12 is used as the internal transcode
video format (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.
.RE
.TP 4
\fBfps\fP - \fBconvert video frame rate, gets defaults from -f and --export_fps\fP
\fBfps\fP 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-processing filter.
.IP
.RS
.IP
options: :