transcode(filter)

NAME
transcode - filter modules collection

SYNOPSIS
transcode -J filters [other options]

COPYRIGHT
transcode is Copyright (C) 2001-2003 by Thomas Oestreich, 2003-2004 Tilmann Bitterberg, 2004-2008 Transcode Team

MODULE OPTIONS
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 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 `='.

    -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"

FILTER MODULES
To see what filter modules are avalaible for your transcode installation, do a

    ls -1 $( tcmodinfo -p )/filter*.so

A complete transcode installation has the following filter modules:

29to23 - frame rate conversion filter (interpolating 29 to 23)
    29to23 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.

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-processing 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-processing 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-processing 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-processing 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 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.

    • 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 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!

detectclipping - detect clipping parameters (-j or -Y)
    detectclipping 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.

    • 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 generation
    detectsilence 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.

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-processing 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 handle 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-processing 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 handle 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 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.

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-processing 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 hexadecimal numbers are supported too. This is intended to be backward 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. Transparent 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 filter. 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 documented 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
    • buffer = %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 sharpening. 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 detection. Set it to false for maximum speed.

normalize - Volume normalizer
    normalize was written by pl, Tilmann Bitterberg. The version documented 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 coefficients 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-processing 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 filter.

    • 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 coordinates 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 duplicating 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 version 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 filter 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:chromathres=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 operation. Usually smoothing is done by talking the data of previous 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 positive 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 documented 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 version documented here is (1.0b2) (2003-02-12). This is a video filter. 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-processing 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 version documented here is v0.1.0 (2003-01-24). This is a video filter. It can handle YUV mode only. It can be used as a pre-processing 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

AUTHORS
transcode was written by Thomas Oestreich
<ostreich@theorie.physik.uni-goettingen.de> with contributions from many others. See AUTHORS for details.

SEE ALSO
transcode(1), transcode_import(1), transcode_export(1), tcmodinfo(1),