4 Video filters allow you to modify the video stream and its properties. The
7 --vf=<filter1[=parameter1:parameter2:...],filter2,...>
8 Setup a chain of video filters.
10 Many parameters are optional and set to default values if omitted. To
11 explicitly use a default value set a parameter to '-1'. Parameters w:h means
12 width x height in pixels, x:y means x;y position counted from the upper left
13 corner of the bigger image.
15 *NOTE*: To get a full list of available video filters, see ``--vf=help``.
17 Video filters are managed in lists. There are a few commands to manage the
20 --vf-add=<filter1[,filter2,...]>
21 Appends the filters given as arguments to the filter list.
23 --vf-pre=<filter1[,filter2,...]>
24 Prepends the filters given as arguments to the filter list.
26 --vf-del=<index1[,index2,...]>
27 Deletes the filters at the given indexes. Index numbers start at 0,
28 negative numbers address the end of the list (-1 is the last).
31 Completely empties the filter list.
33 With filters that support it, you can access parameters by their name.
36 Prints the parameter names and parameter value ranges for a particular
39 --vf=<filter=named_parameter1=value1[:named_parameter2=value2:...]>
40 Sets a named parameter to the given value. Use on and off or yes and no to
43 Available filters are:
46 Crops the given part of the image and discards the rest. Useful to remove
47 black bands from widescreen movies.
50 Cropped width and height, defaults to original width and height.
52 Position of the cropped picture, defaults to center.
54 cropdetect[=limit:round[:reset]]
55 Calculates necessary cropping parameters and prints the recommended
59 Threshold, which can be optionally specified from nothing (0) to
60 everything (255) (default: 24).
62 Value which the width/height should be divisible by (default: 16). The
63 offset is automatically adjusted to center the video. Use 2 to get
64 only even dimensions (needed for 4:2:2 video). 16 is best when
65 encoding to most video codecs.
67 Counter that determines after how many frames cropdetect will reset
68 the previously detected largest video area and start over to detect
69 the current optimal crop area (default: 0). This can be useful when
70 channel logos distort the video area. 0 indicates never reset and
71 return the largest area encountered during playback.
74 Draws a rectangle of the requested width and height at the specified
75 coordinates over the image and prints current rectangle parameters to the
76 console. This can be used to find optimal cropping parameters. If you bind
77 the ``input.conf`` directive 'change_rectangle' to keystrokes, you can
78 move and resize the rectangle on the fly.
81 width and height (default: -1, maximum possible width where boundaries
84 top left corner position (default: -1, uppermost leftmost)
86 expand[=w:h:x:y:osd:aspect:round]
87 Expands (not scales) movie resolution to the given value and places the
88 unscaled original at coordinates x, y. Can be used for placing
89 subtitles/OSD in the resulting black bands.
92 Expanded width,height (default: original width,height). Negative
93 values for w and h are treated as offsets to the original size.
98 Adds a 50 pixel border to the bottom of the picture.
101 position of original image on the expanded image (default: center)
104 OSD/subtitle rendering
106 :0: disable (default)
110 Expands to fit an aspect instead of a resolution (default: 0).
115 Expands to 800x600, unless the source is higher resolution, in
116 which case it expands to fill a 4/3 aspect.
119 Rounds up to make both width and height divisible by <r> (default: 1).
122 Flips the image upside down. See also ``--flip``.
125 Mirrors the image on the Y axis.
128 Rotates the image by 90 degrees and optionally flips it. For values
129 between 4-7 rotation is only done if the movie geometry is portrait and
132 :0: Rotate by 90 degrees clockwise and flip (default).
133 :1: Rotate by 90 degrees clockwise.
134 :2: Rotate by 90 degrees counterclockwise.
135 :3: Rotate by 90 degrees counterclockwise and flip.
137 scale[=w:h[:interlaced[:chr_drop[:par[:par2[:presize[:noup[:arnd]]]]]]]]
138 Scales the image with the software scaler (slow) and performs a YUV<->RGB
139 colorspace conversion (see also ``--sws``).
142 scaled width/height (default: original width/height)
144 *NOTE*: If ``--zoom`` is used, and underlying filters (including
145 libvo) are incapable of scaling, it defaults to d_width/d_height!
147 :0: scaled d_width/d_height
148 :-1: original width/height
149 :-2: Calculate w/h using the other dimension and the prescaled
151 :-3: Calculate w/h using the other dimension and the original
153 :-(n+8): Like -n above, but rounding the dimension to the closest
157 Toggle interlaced scaling.
165 :0: Use all available input lines for chroma.
166 :1: Use only every 2. input line for chroma.
167 :2: Use only every 4. input line for chroma.
168 :3: Use only every 8. input line for chroma.
170 <par>[:<par2>] (see also ``--sws``)
171 Set some scaling parameters depending on the type of scaler selected
174 | --sws=2 (bicubic): B (blurring) and C (ringing)
176 | 0.00:0.75 VirtualDub's "precise bicubic"
177 | 0.00:0.50 Catmull-Rom spline
178 | 0.33:0.33 Mitchell-Netravali spline
179 | 1.00:0.00 cubic B-spline
181 --sws=7 (gaussian): sharpness (0 (soft) - 100 (sharp))
183 --sws=9 (lanczos): filter length (1-10)
186 Scale to preset sizes.
188 :qntsc: 352x240 (NTSC quarter screen)
189 :qpal: 352x288 (PAL quarter screen)
190 :ntsc: 720x480 (standard NTSC)
191 :pal: 720x576 (standard PAL)
192 :sntsc: 640x480 (square pixel NTSC)
193 :spal: 768x576 (square pixel PAL)
196 Disallow upscaling past the original dimensions.
198 :0: Allow upscaling (default).
199 :1: Disallow upscaling if one dimension exceeds its original value.
200 :2: Disallow upscaling if both dimensions exceed their original values.
203 Accurate rounding for the vertical scaler, which may be faster or
204 slower than the default rounding.
206 :0: Disable accurate rounding (default).
207 :1: Enable accurate rounding.
209 dsize[=aspect|w:h:aspect-method:r]
210 Changes the intended display size/aspect at an arbitrary point in the
211 filter chain. Aspect can be given as a fraction (4/3) or floating point
212 number (1.33). Alternatively, you may specify the exact display width and
213 height desired. Note that this filter does *not* do any scaling itself; it
214 just affects what later scalers (software or hardware) will do when
215 auto-scaling to correct aspect.
218 New display width and height.
220 Can also be these special values:
222 :0: original display width and height
223 :-1: original video width and height (default)
224 :-2: Calculate w/h using the other dimension and the original display
226 :-3: Calculate w/h using the other dimension and the original video
232 Specifies a display resolution of 800x600 for a 4/3 aspect video,
233 or 800x450 for a 16/9 aspect video.
236 Modifies width and height according to original aspect ratios.
238 :-1: Ignore original aspect ratio (default).
239 :0: Keep display aspect ratio by using <w> and <h> as maximum
241 :1: Keep display aspect ratio by using <w> and <h> as minimum
243 :2: Keep video aspect ratio by using <w> and <h> as maximum
245 :3: Keep video aspect ratio by using <w> and <h> as minimum
251 Specifies a display resolution of at most 800x600, or smaller, in
252 order to keep aspect.
255 Rounds up to make both width and height divisible by <r> (default: 1).
258 Forces software YVU9 to YV12 colorspace conversion. Deprecated in favor of
262 Clamps YUV color values to the CCIR 601 range without doing real
266 RGB/BGR 8 -> 15/16/24/32bpp colorspace conversion using palette.
268 format[=fourcc[:outfourcc]]
269 Restricts the colorspace for the next filter without doing any conversion.
270 Use together with the scale filter for a real conversion.
272 *NOTE*: For a list of available formats see ``format=fmt=help``.
275 format name like rgb15, bgr24, yv12, etc (default: yuy2)
277 Format name that should be substituted for the output. If this is not
278 100% compatible with the <fourcc> value it will crash.
282 ====================== =====================
283 Valid Invalid (will crash)
284 ====================== =====================
285 ``format=rgb24:bgr24`` ``format=rgb24:yv12``
287 ====================== =====================
290 Restricts the colorspace for the next filter without doing any conversion.
291 Unlike the format filter, this will allow any colorspace except the one
294 *NOTE*: For a list of available formats see ``noformat=fmt=help``.
297 format name like rgb15, bgr24, yv12, etc (default: yv12)
299 pp[=filter1[:option1[:option2...]]/[-]filter2...]
300 Enables the specified chain of postprocessing subfilters. Subfilters must
301 be separated by '/' and can be disabled by prepending a '-'. Each
302 subfilter and some options have a short and a long name that can be used
303 interchangeably, i.e. dr/dering are the same. All subfilters share common
304 options to determine their scope:
307 Automatically switch the subfilter off if the CPU is too slow.
309 Do chrominance filtering, too (default).
311 Do luminance filtering only (no chrominance).
313 Do chrominance filtering only (no luminance).
315 *NOTE*: ``--pphelp`` shows a list of available subfilters.
317 Available subfilters are:
319 hb/hdeblock[:difference[:flatness]]
320 horizontal deblocking filter
322 :<difference>: Difference factor where higher values mean more
323 deblocking (default: 32).
324 :<flatness>: Flatness threshold where lower values mean more
325 deblocking (default: 39).
327 vb/vdeblock[:difference[:flatness]]
328 vertical deblocking filter
330 :<difference>: Difference factor where higher values mean more
331 deblocking (default: 32).
332 :<flatness>: Flatness threshold where lower values mean more
333 deblocking (default: 39).
335 ha/hadeblock[:difference[:flatness]]
336 accurate horizontal deblocking filter
338 :<difference>: Difference factor where higher values mean more
339 deblocking (default: 32).
340 :<flatness>: Flatness threshold where lower values mean more
341 deblocking (default: 39).
343 va/vadeblock[:difference[:flatness]]
344 accurate vertical deblocking filter
346 :<difference>: Difference factor where higher values mean more
347 deblocking (default: 32).
348 :<flatness>: Flatness threshold where lower values mean more
349 deblocking (default: 39).
351 The horizontal and vertical deblocking filters share the difference and
352 flatness values so you cannot set different horizontal and vertical
356 experimental horizontal deblocking filter
359 experimental vertical deblocking filter
364 tn/tmpnoise[:threshold1[:threshold2[:threshold3]]]
365 temporal noise reducer
367 :<threshold1>: larger -> stronger filtering
368 :<threshold2>: larger -> stronger filtering
369 :<threshold3>: larger -> stronger filtering
371 al/autolevels[:f/fullyrange]
372 automatic brightness / contrast correction
374 :f/fullyrange: Stretch luminance to (0-255).
377 Linear blend deinterlacing filter that deinterlaces the given block by
378 filtering all lines with a (1 2 1) filter.
381 Linear interpolating deinterlacing filter that deinterlaces the given
382 block by linearly interpolating every second line.
385 Cubic interpolating deinterlacing filter deinterlaces the given block
386 by cubically interpolating every second line.
389 Median deinterlacing filter that deinterlaces the given block by
390 applying a median filter to every second line.
393 FFmpeg deinterlacing filter that deinterlaces the given block by
394 filtering every second line with a (-1 4 2 4 -1) filter.
397 Vertically applied FIR lowpass deinterlacing filter that deinterlaces
398 the given block by filtering all lines with a (-1 2 6 2 -1) filter.
400 fq/forceQuant[:quantizer]
401 Overrides the quantizer table from the input with the constant
402 quantizer you specify.
404 :<quantizer>: quantizer to use
407 default pp filter combination (hb:a,vb:a,dr:a)
410 fast pp filter combination (h1:a,v1:a,dr:a)
413 high quality pp filter combination (ha:a:128:7,va:a,dr:a)
417 ``--vf=pp=hb/vb/dr/al``
418 horizontal and vertical deblocking, deringing and automatic
422 default filters without brightness/contrast correction
424 ``--vf=pp=default/tmpnoise:1:2:3``
425 Enable default filters & temporal denoiser.
427 ``--vf=pp=hb:y/vb:a``
428 Horizontal deblocking on luminance only, and switch vertical
429 deblocking on or off automatically depending on available CPU time.
432 Ultra simple & slow postprocessing filter that compresses and decompresses
433 the image at several (or - in the case of quality level 8 - all) shifts
434 and averages the results.
440 Force quantization parameter (default: 0, use QP from video).
442 fspp[=quality[:qp[:strength[:bframes]]]]
443 simple postprocessing filter
449 Force quantization parameter (default: 0, use QP from video).
452 Filter strength, lower values mean more details but also more
453 artifacts, while higher values make the image smoother but also
454 blurrier (default: 0 - PSNR optimal).
457 0: do not use QP from B-frames (default)
458 1: use QP from B-frames too (may cause flicker)
461 Another postprocessing filter
464 Force quantization parameter (default: 0, use QP from video).
467 :0: hard thresholding
468 :1: soft thresholding (better deringing, but blurrier)
469 :2: medium thresholding (default, good results)
472 quantization parameter (QP) change filter
475 some equation like ``2+2*sin(PI*qp)``
478 generic equation change filter
481 Some equation, e.g. ``p(W-X\,Y)`` to flip the image horizontally. You
482 can use whitespace to make the equation more readable. There are a
483 couple of constants that can be used in the equation:
487 :X / Y: the coordinates of the current sample
488 :W / H: width and height of the image
489 :SW / SH: width/height scale depending on the currently filtered plane,
490 e.g. 1,1 and 0.5,0.5 for YUV 4:2:0.
491 :p(x,y): returns the value of the pixel at location x/y of the current
495 Generate various test patterns.
497 rgbtest[=width:height]
498 Generate an RGB test pattern useful for detecting RGB vs BGR issues. You
499 should see a red, green and blue stripe from top to bottom.
502 Desired width of generated image (default: 0). 0 means width of input
506 Desired height of generated image (default: 0). 0 means height of
510 Fast software YV12 to MPEG-1 conversion with libavcodec for use with
515 :32-: fixed bitrate in kbits
518 force output fps (float value) (default: 0, autodetect based on height)
521 Set up optimal scaling for DVB cards, scaling the x axis in hardware and
522 calculating the y axis scaling in software to keep aspect. Only useful
523 together with expand and scale.
526 Control aspect ratio, calculate as ``DVB_HEIGHT*ASPECTRATIO`` (default:
527 ``576*4/3=768``), set it to ``576*(16/9)=1024`` for a 16:9 TV.
531 ``--vf=dvbscale,scale=-1:0,expand=-1:576:-1:-1:1,lavc``
532 FIXME: Explain what this does.
534 noise[=luma[u][t|a][h][p]:chroma[u][t|a][h][p]]
538 :<0-100>: chroma noise
539 :u: uniform noise (gaussian otherwise)
540 :t: temporal noise (noise pattern changes between frames)
541 :a: averaged temporal noise (smoother, but a lot slower)
542 :h: high quality (slightly better looking, slightly slower)
543 :p: mix random noise with a (semi)regular pattern
545 denoise3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
546 This filter aims to reduce image noise producing smooth images and making
547 still images really still (This should enhance compressibility.).
550 spatial luma strength (default: 4)
552 spatial chroma strength (default: 3)
554 luma temporal strength (default: 6)
556 chroma temporal strength (default:
557 ``luma_tmp*chroma_spatial/luma_spatial``)
559 hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
560 High precision/quality version of the denoise3d filter. Parameters and
563 ow[=depth[:luma_strength[:chroma_strength]]]
564 Overcomplete Wavelet denoiser.
567 Larger depth values will denoise lower frequency components more, but
568 slow down filtering (default: 8).
570 luma strength (default: 1.0)
572 chroma strength (default: 1.0)
574 eq[=brightness:contrast] (OBSOLETE)
575 Software equalizer with interactive controls just like the hardware
576 equalizer, for cards/drivers that do not support brightness and contrast
577 controls in hardware.
584 eq2[=gamma:contrast:brightness:saturation:rg:gg:bg:weight]
585 Alternative software equalizer that uses lookup tables (very slow),
586 allowing gamma correction in addition to simple brightness and contrast
587 adjustment. Note that it uses the same MMX optimized code as ``--vf=eq``
588 if all gamma values are 1.0. The parameters are given as floating point
592 initial gamma value (default: 1.0)
594 initial contrast, where negative values result in a negative image
597 initial brightness (default: 0.0)
599 initial saturation (default: 1.0)
601 gamma value for the red component (default: 1.0)
603 gamma value for the green component (default: 1.0)
605 gamma value for the blue component (default: 1.0)
607 The weight parameter can be used to reduce the effect of a high gamma
608 value on bright image areas, e.g. keep them from getting overamplified
609 and just plain white. A value of 0.0 turns the gamma correction all
610 the way down while 1.0 leaves it at its full strength (default: 1.0).
613 Software equalizer with interactive controls just like the hardware
614 equalizer, for cards/drivers that do not support hue and saturation
615 controls in hardware.
618 initial hue (default: 0.0)
620 initial saturation, where negative values result in a negative chroma
624 Convert planar YUV 4:2:0 to half-height packed 4:2:2, downsampling luma
625 but keeping all chroma samples. Useful for output to low-resolution
626 display devices when hardware downscaling is poor quality or is not
627 available. Can also be used as a primitive luma-only deinterlacer with
631 By default, halfpack averages pairs of lines when downsampling. Any
632 value different from 0 or 1 gives the default (averaging) behavior.
634 :0: Only use even lines when downsampling.
635 :1: Only use odd lines when downsampling.
638 When interlaced video is stored in YUV 4:2:0 formats, chroma interlacing
639 does not line up properly due to vertical downsampling of the chroma
640 channels. This filter packs the planar 4:2:0 data into YUY2 (4:2:2) format
641 with the chroma lines in their proper locations, so that in any given
642 scanline, the luma and chroma data both come from the same field.
645 Select the sampling mode.
647 :0: nearest-neighbor sampling, fast but incorrect
648 :1: linear interpolation (default)
650 decimate[=max:hi:lo:frac]
651 Drops frames that do not differ greatly from the previous frame in order
652 to reduce framerate. The main use of this filter is for very-low- bitrate
653 encoding (e.g. streaming over dialup modem), but it could in theory be
654 used for fixing movies that were inverse-telecined incorrectly.
657 Sets the maximum number of consecutive frames which can be dropped (if
658 positive), or the minimum interval between dropped frames (if
661 A frame is a candidate for dropping if no 8x8 region differs by more
662 than a threshold of <hi>, and if not more than <frac> portion (1
663 meaning the whole image) differs by more than a threshold of <lo>.
664 Values of <hi> and <lo> are for 8x8 pixel blocks and represent actual
665 pixel value differences, so a threshold of 64 corresponds to 1 unit of
666 difference for each pixel, or the same spread out differently over the
670 The drop-deinterlace (dint) filter detects and drops the first from a set
671 of interlaced video frames.
674 relative difference between neighboring pixels (default: 0.1)
676 What part of the image has to be detected as interlaced to drop the
677 frame (default: 0.15).
680 FFmpeg deinterlacing filter, same as ``--vf=pp=fd``
682 kerndeint[=thresh[:map[:order[:sharp[:twoway]]]]]
683 Donald Graft's adaptive kernel deinterlacer. Deinterlaces parts of a video
684 if a configurable threshold is exceeded.
687 threshold (default: 10)
689 :0: Ignore pixels exceeding the threshold (default).
690 :1: Paint pixels exceeding the threshold white.
693 :0: Leave fields alone (default).
697 :0: Disable additional sharpening (default).
698 :1: Enable additional sharpening.
701 :0: Disable twoway sharpening (default).
702 :1: Enable twoway sharpening.
704 unsharp[=l|cWxH:amount[:l|cWxH:amount]]
705 unsharp mask / gaussian blur
708 Apply effect on luma component.
711 Apply effect on chroma components.
714 width and height of the matrix, odd sized in both directions (min =
715 3x3, max = 13x11 or 11x13, usually something between 3x3 and 7x7)
718 Relative amount of sharpness/blur to add to the image (a sane range
727 il[=d|i][s][:[d|i][s]]
728 (De)interleaves lines. The goal of this filter is to add the ability to
729 process interlaced images pre-field without deinterlacing them. You can
730 filter your interlaced DVD and play it on a TV without breaking the
731 interlacing. While deinterlacing (with the postprocessing filter) removes
732 interlacing permanently (by smoothing, averaging, etc) deinterleaving
733 splits the frame into 2 fields (so called half pictures), so you can
734 process (filter) them independently and then re-interleave them.
736 :d: deinterleave (placing one above the other)
738 :s: swap fields (exchange even & odd lines)
741 (De)interleaves lines. This filter is very similar to the il filter but
742 much faster, the main disadvantage is that it does not always work.
743 Especially if combined with other filters it may produce randomly messed
744 up images, so be happy if it works but do not complain if it does not for
745 your combination of filters.
747 :d: Deinterleave fields, placing them side by side.
748 :i: Interleave fields again (reversing the effect of fil=d).
751 Extracts a single field from an interlaced image using stride arithmetic
752 to avoid wasting CPU time. The optional argument n specifies whether to
753 extract the even or the odd field (depending on whether n is even or odd).
755 detc[=var1=value1:var2=value2:...]
756 Attempts to reverse the 'telecine' process to recover a clean,
757 non-interlaced stream at film framerate. This was the first and most
758 primitive inverse telecine filter to be added to MPlayer. It works by
759 latching onto the telecine 3:2 pattern and following it as long as
760 possible. This makes it suitable for perfectly-telecined material, even in
761 the presence of a fair degree of noise, but it will fail in the presence
762 of complex post-telecine edits. Development on this filter is no longer
763 taking place, as ivtc, pullup, and filmdint are better for most
764 applications. The following arguments (see syntax above) may be used to
765 control detc's behavior:
768 Set the frame dropping mode.
770 :0: Do not drop frames to maintain fixed output framerate (default).
771 :1: Always drop a frame when there have been no drops or telecine
772 merges in the past 5 frames.
773 :2: Always maintain exact 5:4 input to output frame ratio.
778 :0: Fixed pattern with initial frame number specified by <fr>.
779 :1: aggressive search for telecine pattern (default)
782 Set initial frame number in sequence. 0-2 are the three clean
783 progressive frames; 3 and 4 are the two interlaced frames. The
784 default, -1, means 'not in telecine sequence'. The number specified
785 here is the type for the imaginary previous frame before the movie
788 <t0>, <t1>, <t2>, <t3>
789 Threshold values to be used in certain modes.
792 Experimental 'stateless' inverse telecine filter. Rather than trying to
793 lock on to a pattern like the detc filter does, ivtc makes its decisions
794 independently for each frame. This will give much better results for
795 material that has undergone heavy editing after telecine was applied, but
796 as a result it is not as forgiving of noisy input, for example TV capture.
797 The optional parameter (ivtc=1) corresponds to the dr=1 option for the
798 detc filter, and should not be used with MPlayer. Further development on
799 ivtc has stopped, as the pullup and filmdint filters appear to be much
802 pullup[=jl:jr:jt:jb:sb:mp]
803 Third-generation pulldown reversal (inverse telecine) filter, capable of
804 handling mixed hard-telecine, 24000/1001 fps progressive, and 30000/1001
805 fps progressive content. The pullup filter is designed to be much more
806 robust than detc or ivtc, by taking advantage of future context in making
807 its decisions. Like ivtc, pullup is stateless in the sense that it does
808 not lock onto a pattern to follow, but it instead looks forward to the
809 following fields in order to identify matches and rebuild progressive
810 frames. It is still under development, but believed to be quite accurate.
813 These options set the amount of "junk" to ignore at the left, right,
814 top, and bottom of the image, respectively. Left/right are in units of
815 8 pixels, while top/bottom are in units of 2 lines. The default is 8
819 Setting this option to 1 will reduce the chances of pullup generating
820 an occasional mismatched frame, but it may also cause an excessive
821 number of frames to be dropped during high motion sequences.
822 Conversely, setting it to -1 will make pullup match fields more
823 easily. This may help processing of video where there is slight
824 blurring between the fields, but may also cause there to be interlaced
825 frames in the output.
828 This option may be set to 1 or 2 to use a chroma plane instead of the
829 luma plane for doing pullup's computations. This may improve accuracy
830 on very clean source material, but more likely will decrease accuracy,
831 especially if there is chroma noise (rainbow effect) or any grayscale
832 video. The main purpose of setting mp to a chroma plane is to reduce
833 CPU load and make pullup usable in realtime on slow machines.
836 Inverse telecine filter, similar to the pullup filter above. It is
837 designed to handle any pulldown pattern, including mixed soft and hard
838 telecine and limited support for movies that are slowed down or sped up
839 from their original framerate for TV. Only the luma plane is used to find
840 the frame breaks. If a field has no match, it is deinterlaced with simple
841 linear approximation. If the source is MPEG-2, this must be the first
842 filter to allow access to the field-flags set by the MPEG-2 decoder.
843 Depending on the source MPEG, you may be fine ignoring this advice, as
844 long as you do not see lots of "Bottom-first field" warnings. With no
845 options it does normal inverse telecine. When this filter is used with
846 MPlayer, it will result in an uneven framerate during playback, but it is
847 still generally better than using pp=lb or no deinterlacing at all.
848 Multiple options can be specified separated by /.
851 Just like the crop filter, but faster, and works on mixed hard and
852 soft telecined content as well as when y is not a multiple of 4. If x
853 or y would require cropping fractional pixels from the chroma planes,
854 the crop area is extended. This usually means that x and y must be
858 For each ifps input frames the filter will output ofps frames. This
859 could be used to filter movies that are broadcast on TV at a frame
860 rate different from their original framerate.
863 If n is nonzero, the chroma plane is copied unchanged. This is useful
864 for YV12 sampled TV, which discards one of the chroma fields.
867 On x86, if n=1, use MMX2 optimized functions, if n=2, use 3DNow!
868 optimized functions, otherwise, use plain C. If this option is not
869 specified, MMX2 and 3DNow! are auto-detected, use this option to
870 override auto-detection.
873 The larger n will speed up the filter at the expense of accuracy. The
874 default value is n=3. If n is odd, a frame immediately following a
875 frame marked with the REPEAT_FIRST_FIELD MPEG flag is assumed to be
876 progressive, thus filter will not spend any time on soft-telecined
877 MPEG-2 content. This is the only effect of this flag if MMX2 or 3DNow!
878 is available. Without MMX2 and 3DNow, if n=0 or 1, the same
879 calculations will be used as with n=2 or 3. If n=2 or 3, the number of
880 luma levels used to find the frame breaks is reduced from 256 to 128,
881 which results in a faster filter without losing much accuracy. If n=4
882 or 5, a faster, but much less accurate metric will be used to find the
883 frame breaks, which is more likely to misdetect high vertical detail
884 as interlaced content.
887 If n is nonzero, print the detailed metrics for each frame. Useful for
891 Deinterlace threshold. Used during de-interlacing of unmatched frames.
892 Larger value means less deinterlacing, use n=256 to completely turn
893 off deinterlacing. Default is n=8.
896 Threshold for comparing a top and bottom fields. Defaults to 128.
899 Threshold to detect temporal change of a field. Default is 128.
902 Sum of Absolute Difference threshold, default is 64.
905 Inverse telecine for deinterlaced video. If 3:2-pulldown telecined video
906 has lost one of the fields or is deinterlaced using a method that keeps
907 one field and interpolates the other, the result is a juddering video that
908 has every fourth frame duplicated. This filter is intended to find and
909 drop those duplicates and restore the original film framerate. Two
910 different modes are available: One pass mode is the default and is
911 straightforward to use, but has the disadvantage that any changes in the
912 telecine phase (lost frames or bad edits) cause momentary judder until the
913 filter can resync again. Two pass mode avoids this by analyzing the whole
914 video beforehand so it will have forward knowledge about the phase changes
915 and can resync at the exact spot. These passes do *not* correspond to pass
916 one and two of the encoding process. You must run an extra pass using
917 divtc pass one before the actual encoding throwing the resulting video
918 away. Use ``--nosound --ovc=raw -o /dev/null`` to avoid wasting CPU power
919 for this pass. You may add something like ``crop=2:2:0:0`` after divtc to
920 speed things up even more. Then use divtc pass two for the actual
921 encoding. If you use multiple encoder passes, use divtc pass two for all
922 of them. The options are:
928 Set the two pass log filename (default: ``framediff.log``).
931 Set the minimum strength the telecine pattern must have for the filter
932 to believe in it (default: 0.5). This is used to avoid recognizing
933 false pattern from the parts of the video that are very dark or very
937 Set the number of past frames to look at when searching for pattern
938 (default: 30). Longer window improves the reliability of the pattern
939 search, but shorter window improves the reaction time to the changes
940 in the telecine phase. This only affects the one pass mode. The two
941 pass mode currently uses fixed window that extends to both future and
945 Sets the initial telecine phase for one pass mode (default: 0). The
946 two pass mode can see the future, so it is able to use the correct
947 phase from the beginning, but one pass mode can only guess. It catches
948 the correct phase when it finds it, but this option can be used to fix
949 the possible juddering at the beginning. The first pass of the two
950 pass mode also uses this, so if you save the output from the first
951 pass, you get constant phase result.
954 Set the deghosting threshold (0-255 for one pass mode, -255-255 for
955 two pass mode, default 0). If nonzero, deghosting mode is used. This
956 is for video that has been deinterlaced by blending the fields
957 together instead of dropping one of the fields. Deghosting amplifies
958 any compression artifacts in the blended frames, so the parameter
959 value is used as a threshold to exclude those pixels from deghosting
960 that differ from the previous frame less than specified value. If two
961 pass mode is used, then negative value can be used to make the filter
962 analyze the whole video in the beginning of pass-2 to determine
963 whether it needs deghosting or not and then select either zero or the
964 absolute value of the parameter. Specify this option for pass-2, it
965 makes no difference on pass-1.
967 phase[=t|b|p|a|u|T|B|A|U][:v]
968 Delay interlaced video by one field time so that the field order changes.
969 The intended use is to fix PAL movies that have been captured with the
970 opposite field order to the film-to-video transfer. The options are:
973 Capture field order top-first, transfer bottom-first. Filter will
974 delay the bottom field.
977 Capture bottom-first, transfer top-first. Filter will delay the top
981 Capture and transfer with the same field order. This mode only exists
982 for the documentation of the other options to refer to, but if you
983 actually select it, the filter will faithfully do nothing ;-)
986 Capture field order determined automatically by field flags, transfer
987 opposite. Filter selects among t and b modes on a frame by frame basis
988 using field flags. If no field information is available, then this
992 Capture unknown or varying, transfer opposite. Filter selects among t
993 and b on a frame by frame basis by analyzing the images and selecting
994 the alternative that produces best match between the fields.
997 Capture top-first, transfer unknown or varying. Filter selects among t
998 and p using image analysis.
1001 Capture bottom-first, transfer unknown or varying. Filter selects
1002 among b and p using image analysis.
1005 Capture determined by field flags, transfer unknown or varying. Filter
1006 selects among t, b and p using field flags and image analysis. If no
1007 field information is available, then this works just like U. This is
1011 Both capture and transfer unknown or varying. Filter selects among t,
1012 b and p using image analysis only.
1015 Verbose operation. Prints the selected mode for each frame and the
1016 average squared difference between fields for t, b, and p
1020 Apply 3:2 'telecine' process to increase framerate by 20%. This most
1021 likely will not work correctly with MPlayer. The optional start parameter
1022 tells the filter where in the telecine pattern to start (0-3).
1025 Temporal field interlacing - merge pairs of frames into an interlaced
1026 frame, halving the framerate. Even frames are moved into the upper field,
1027 odd frames to the lower field. This can be used to fully reverse the
1028 effect of the tfields filter (in mode 0). Available modes are:
1030 :0: Move odd frames into the upper field, even into the lower field,
1031 generating a full-height frame at half framerate.
1032 :1: Only output odd frames, even frames are dropped; height unchanged.
1033 :2: Only output even frames, odd frames are dropped; height unchanged.
1034 :3: Expand each frame to full height, but pad alternate lines with black;
1035 framerate unchanged.
1036 :4: Interleave even lines from even frames with odd lines from odd frames.
1037 Height unchanged at half framerate.
1039 tfields[=mode[:field_dominance]]
1040 Temporal field separation - split fields into frames, doubling the output
1044 :0: Leave fields unchanged (will jump/flicker).
1045 :1: Interpolate missing lines. (The algorithm used might not be so
1047 :2: Translate fields by 1/4 pixel with linear interpolation (no jump).
1048 :4: Translate fields by 1/4 pixel with 4tap filter (higher quality)
1051 <field_dominance> (DEPRECATED)
1052 :-1: auto (default) Only works if the decoder exports the appropriate
1053 information and no other filters which discard that information
1054 come before tfields in the filter chain, otherwise it falls back
1055 to 0 (top field first).
1057 :1: bottom field first
1059 *NOTE*: This option will possibly be removed in a future version. Use
1060 ``--field-dominance`` instead.
1062 yadif=[mode[:field_dominance]]
1063 Yet another deinterlacing filter
1066 :0: Output 1 frame for each frame.
1067 :1: Output 1 frame for each field.
1068 :2: Like 0 but skips spatial interlacing check.
1069 :3: Like 1 but skips spatial interlacing check.
1071 <field_dominance> (DEPRECATED)
1072 Operates like tfields.
1074 *NOTE*: This option will possibly be removed in a future version. Use
1075 ``--field-dominance`` instead.
1077 boxblur=radius:power[:radius:power]
1081 blur filter strength
1083 number of filter applications
1085 sab=radius:pf:colorDiff[:radius:pf:colorDiff]
1089 blur filter strength (~0.1-4.0) (slower if larger)
1091 prefilter strength (~0.1-2.0)
1093 maximum difference between pixels to still be considered (~0.1-100.0)
1095 smartblur=radius:strength:threshold[:radius:strength:threshold]
1099 blur filter strength (~0.1-5.0) (slower if larger)
1101 blur (0.0-1.0) or sharpen (-1.0-0.0)
1103 filter all (0), filter flat areas (0-30) or filter edges (-30-0)
1105 perspective=x0:y0:x1:y1:x2:y2:x3:y3:t
1106 Correct the perspective of movies not filmed perpendicular to the screen.
1109 coordinates of the top left, top right, bottom left, bottom right
1112 linear (0) or cubic resampling (1)
1115 Scale and smooth the image with the 2x scale and interpolate algorithm.
1118 1bpp bitmap to YUV/BGR 8/15/16/32 conversion
1121 Reposition and resize stereoscopic images. Extracts both stereo fields and
1122 places them side by side, resizing them to maintain the original movie
1126 number of lines to select from the middle of the image (default: 12)
1128 bmovl=hidden:opaque:fifo
1129 The bitmap overlay filter reads bitmaps from a FIFO and displays them on
1130 top of the movie, allowing some transformations on the image. See also
1131 ``TOOLS/bmovl-test.c`` for a small bmovl test program.
1134 Set the default value of the 'hidden' flag (0=visible, 1=hidden).
1136 Set the default value of the 'opaque' flag (0=transparent, 1=opaque).
1138 path/filename for the FIFO (named pipe connecting ``mplayer
1139 --vf=bmovl`` to the controlling application)
1143 RGBA32 width height xpos ypos alpha clear
1144 followed by width*height*4 Bytes of raw RGBA32 data.
1145 ABGR32 width height xpos ypos alpha clear
1146 followed by width*height*4 Bytes of raw ABGR32 data.
1147 RGB24 width height xpos ypos alpha clear
1148 followed by width*height*3 Bytes of raw RGB24 data.
1149 BGR24 width height xpos ypos alpha clear
1150 followed by width*height*3 Bytes of raw BGR24 data.
1151 ALPHA width height xpos ypos alpha
1152 Change alpha transparency of the specified area.
1153 CLEAR width height xpos ypos
1156 Disable all alpha transparency. Send "ALPHA 0 0 0 0 0" to enable it
1168 Start blitting at position x/y.
1170 Set alpha difference. If you set this to -255 you can then send a
1171 sequence of ALPHA-commands to set the area to -225, -200, -175 etc for
1172 a nice fade-in-effect! ;)
1174 :0: same as original
1175 :255: Make everything opaque.
1176 :-255: Make everything transparent.
1179 Clear the framebuffer before blitting.
1181 :0: The image will just be blitted on top of the old one, so you do
1182 not need to send 1.8MB of RGBA32 data every time a small part of
1183 the screen is updated.
1187 Renders only every nth frame or every intra frame (keyframe).
1189 If you call the filter with I (uppercase) as the parameter, then *only*
1190 keyframes are rendered. For DVDs it generally means one in every 15/12
1191 frames (IBBPBBPBBPBBPBB), for AVI it means every scene change or every
1194 When a keyframe is found, an 'I!' string followed by a newline character
1195 is printed, leaving the current line of MPlayer output on the screen,
1196 because it contains the time (in seconds) and frame number of the keyframe
1197 (You can use this information to split the AVI.).
1199 If you call the filter with a numeric parameter 'step' then only one in
1200 every 'step' frames is rendered.
1202 If you put an 'i' (lowercase) before the number then an 'I!' is printed
1203 (like the I parameter).
1205 If you give only the i then nothing is done to the frames, only I! is
1208 tile=xtiles:ytiles:output:start:delta
1209 Tile a series of images into a single, bigger image. If you omit a
1210 parameter or use a value less than 0, then the default value is used. You
1211 can also stop when you are satisfied (``... --vf=tile=10:5 ...``). It is
1212 probably a good idea to put the scale filter before the tile :-)
1217 number of tiles on the x axis (default: 5)
1219 number of tiles on the y axis (default: 5)
1221 Render the tile when 'output' number of frames are reached, where
1222 'output' should be a number less than xtile * ytile. Missing tiles are
1223 left blank. You could, for example, write an 8 * 7 tile every 50
1224 frames to have one image every 2 seconds @ 25 fps.
1226 outer border thickness in pixels (default: 2)
1228 inner border thickness in pixels (default: 4)
1231 Suppresses a TV station logo by a simple interpolation of the surrounding
1232 pixels. Just set a rectangle covering the logo and watch it disappear (and
1233 sometimes something even uglier appear - your mileage may vary).
1236 top left corner of the logo
1238 width and height of the cleared rectangle
1240 Thickness of the fuzzy edge of the rectangle (added to w and h). When
1241 set to -1, a green rectangle is drawn on the screen to simplify
1242 finding the right x,y,w,h parameters.
1244 You can specify a text file to load the coordinates from. Each line
1245 must have a timestamp (in seconds, and in ascending order) and the
1246 "x:y:w:h:t" coordinates (*t* can be omitted).
1248 remove-logo=/path/to/logo_bitmap_file_name.pgm
1249 Suppresses a TV station logo, using a PGM or PPM image file to determine
1250 which pixels comprise the logo. The width and height of the image file
1251 must match those of the video stream being processed. Uses the filter
1252 image and a circular blur algorithm to remove the logo.
1254 ``/path/to/logo_bitmap_file_name.pgm``
1255 [path] + filename of the filter image.
1258 Allows acquiring screenshots of the movie using slave mode commands that
1259 can be bound to keypresses. See the slave mode documentation and the
1260 ``INTERACTIVE CONTROL`` section for details. Files named ``shotNNNN.png``
1261 will be saved in the working directory, using the first available number -
1262 no files will be overwritten. The filter has no overhead when not used. It
1263 does however break playback in some cases, especially VDPAU hardware
1264 decoding is incompatible with the filter. Thus it is not completely safe to
1265 add the filter to default configuration "just in case you might want to
1266 take screenshots". Make sure that the screenshot filter is added after all
1267 other filters whose effect you want to record on the saved image. E.g. it
1268 should be the last filter if you want to have an exact screenshot of what
1269 you see on the monitor.
1272 Moves SSA/ASS subtitle rendering to an arbitrary point in the filter
1273 chain. See the ``--ass`` option.
1277 ``--vf=ass,screenshot``
1278 Moves SSA/ASS rendering before the screenshot filter. Screenshots
1279 taken this way will contain subtitles.
1281 blackframe[=amount:threshold]
1282 Detect frames that are (almost) completely black. Can be useful to detect
1283 chapter transitions or commercials. Output lines consist of the frame
1284 number of the detected frame, the percentage of blackness, the frame type
1285 and the frame number of the last encountered keyframe.
1288 Percentage of the pixels that have to be below the threshold (default:
1292 Threshold below which a pixel value is considered black (default: 32).
1295 Stereo3d converts between different stereoscopic image formats.
1298 Stereoscopic image format of input. Possible values:
1300 sbsl or side_by_side_left_first
1301 side by side parallel (left eye left, right eye right)
1302 sbsr or side_by_side_right_first
1303 side by side crosseye (right eye left, left eye right)
1304 sbs2l or side_by_side_half_width_left_first
1305 side by side parallel with half width resolution (left eye left,
1307 sbs2r or side_by_side_half_width_right_first
1308 side by side crosseye with half width resolution (right eye left,
1310 abl or above_below_left_first
1311 above-below (left eye above, right eye below)
1312 abl or above_below_right_first
1313 above-below (right eye above, left eye below)
1314 ab2l or above_below_half_height_left_first
1315 above-below with half height resolution (left eye above, right eye
1317 ab2r or above_below_half_height_right_first
1318 above-below with half height resolution (right eye above, left eye
1322 Stereoscopic image format of output. Possible values are all the input
1325 arcg or anaglyph_red_cyan_gray
1326 anaglyph red/cyan gray (red filter on left eye, cyan filter on
1328 arch or anaglyph_red_cyan_half_color
1329 anaglyph red/cyan half colored (red filter on left eye, cyan filter
1331 arcc or anaglyph_red_cyan_color
1332 anaglyph red/cyan color (red filter on left eye, cyan filter on
1334 arcd or anaglyph_red_cyan_dubois
1335 anaglyph red/cyan color optimized with the least squares
1336 projection of dubois (red filter on left eye, cyan filter on right
1338 agmg or anaglyph_green_magenta_gray
1339 anaglyph green/magenta gray (green filter on left eye, magenta
1340 filter on right eye)
1341 agmh or anaglyph_green_magenta_half_color
1342 anaglyph green/magenta half colored (green filter on left eye,
1343 magenta filter on right eye)
1344 agmc or anaglyph_green_magenta_color
1345 anaglyph green/magenta colored (green filter on left eye, magenta
1346 filter on right eye)
1347 agmd or anaglyph_green_magenta_dubois
1348 anaglyph green/magenta colored optimized with the least squares
1349 projection of dubois (green filter on left eye, magenta filter on
1351 aybg or anaglyph_yellow_blue_gray
1352 anaglyph yellow/blue gray (yellow filter on left eye, blue filter
1354 aybh or anaglyph_yellow_blue_half_color
1355 anaglyph yellow/blue half colored (yellow filter on left eye, blue
1356 filter on right eye)
1357 aybc or anaglyph_yellow_blue_color
1358 anaglyph yellow/blue colored (yellow filter on left eye, blue
1359 filter on right eye)
1360 aybd or anaglyph_yellow_blue_dubois
1361 anaglyph yellow/blue colored optimized with the least squares
1362 projection of dubois (yellow filter on left eye, blue filter on
1364 irl or interleave_rows_left_first
1365 Interleaved rows (left eye has top row, right eye starts on next
1367 irr or interleave_rows_right_first
1368 Interleaved rows (right eye has top row, left eye starts on next
1371 mono output (left eye only)
1373 mono output (right eye only)
1375 gradfun[=strength[:radius]]
1376 Fix the banding artifacts that are sometimes introduced into nearly flat
1377 regions by truncation to 8bit colordepth. Interpolates the gradients that
1378 should go where the bands are, and dithers them.
1380 This filter is designed for playback only. Do not use it prior to lossy
1381 compression, because compression tends to lose the dither and bring back
1385 Maximum amount by which the filter will change any one pixel. Also the
1386 threshold for detecting nearly flat regions (default: 1.2).
1389 Neighborhood to fit the gradient to. Larger radius makes for smoother
1390 gradients, but also prevents the filter from modifying pixels near
1391 detailed regions (default: 16).
1394 Fixes the presentation timestamps (PTS) of the frames. By default, the PTS
1395 passed to the next filter is dropped, but the following options can change
1399 Print the incoming PTS.
1402 Specify a frame per second value.
1405 Specify an initial value for the PTS.
1408 Uses the *n*\th incoming PTS as the initial PTS. All previous PTS are
1409 kept, so setting a huge value or -1 keeps the PTS intact.
1412 Uses the *n*\th incoming PTS after the end of autostart to determine
1417 ``--vf=fixpts=fps=24000/1001,ass,fixpts``
1418 Generates a new sequence of PTS, uses it for ASS subtitles, then drops
1419 it. Generating a new sequence is useful when the timestamps are reset
1420 during the program; this is frequent on DVDs. Dropping it may be
1421 necessary to avoid confusing encoders.
1423 *NOTE*: Using this filter together with any sort of seeking (including
1424 ``--ss``) may make demons fly out of your nose.