Audio Filters
*************

When you configure your FFmpeg build, you can disable any of the existing filters using --disable-filters. The configure output will show the audio filters included in your build.

Below is a description of the currently available audio filters.

anull
=====

Pass the audio source unchanged to the output.

Video Filters
*************

When you configure your FFmpeg build, you can disable any of the existing filters using --disable-filters. The configure output will show the video filters included in your build.

Below is a description of the currently available video filters.

crop
====

Crop the input video to X:Y:WIDTH:HEIGHT.

     ./ffmpeg -i in.avi -vf "crop=0:0:0:240" out.avi

X and Y specify the position of the top-left corner of the output (non-cropped) area.

The default value of X and Y is 0.

The WIDTH and HEIGHT parameters specify the width and height of the output (non-cropped) area.

A value of 0 is interpreted as the maximum possible size contained in the area delimited by the top-left corner at position x:y.

For example the parameters:

     "crop=100:100:0:0"

will delimit the rectangle with the top-left corner placed at position 100:100 and the right-bottom corner corresponding to the right-bottom corner of the input image.

The default value of WIDTH and HEIGHT is 0.

format
======

Convert the input video to one of the specified pixel formats. Libavfilter will try to pick one that is supported for the input to the next filter.

The filter accepts a list of pixel format names, separated by ``:'', for example ``yuv420p:monow:rgb24''.

The following command:

     ./ffmpeg -i in.avi -vf "format=yuv420p" out.avi

will convert the input video to the format ``yuv420p''.

hflip
=====

Flip the input video horizontally.

For example to horizontally flip the video in input with ffmpeg:

     ffmpeg -i in.avi -vf "hflip" out.avi

noformat
========

Force libavfilter not to use any of the specified pixel formats for the input to the next filter.

The filter accepts a list of pixel format names, separated by ``:'', for example ``yuv420p:monow:rgb24''.

The following command:

     ./ffmpeg -i in.avi -vf "noformat=yuv420p, vflip" out.avi

will make libavfilter use a format different from ``yuv420p'' for the input to the vflip filter.

null
====

Pass the video source unchanged to the output.

pad
===

Add paddings to the input image, and places the original input at the given coordinates X, Y.

It accepts the following parameters: WIDTH:HEIGHT:X:Y:COLOR.

Follows the description of the accepted parameters.

width, height

     Specify the size of the output image with the paddings added. If the value for WIDTH or HEIGHT is 0, the corresponding input size is used for the output.

     The default value of WIDTH and HEIGHT is 0.

x, y

     Specify the offsets where to place the input image in the padded area with respect to the top/left border of the output image.

     The default value of X and Y is 0.

color

     Specify the color of the padded area, it can be the name of a color (case insensitive match) or a 0xRRGGBB[AA] sequence.

     The default value of COLOR is ``black''.

pixdesctest
===========

Pixel format descriptor test filter, mainly useful for internal testing. The output video should be equal to the input video.

For example:

     format=monow, pixdesctest

can be used to test the monowhite pixel format descriptor definition.

scale
=====

Scale the input video to WIDTH:HEIGHT and/or convert the image format.

For example the command:

     ./ffmpeg -i in.avi -vf "scale=200:100" out.avi

will scale the input video to a size of 200x100.

If the input image format is different from the format requested by the next filter, the scale filter will convert the input to the requested format.

If the value for WIDTH or HEIGHT is 0, the respective input size is used for the output.

If the value for WIDTH or HEIGHT is -1, the scale filter will use, for the respective output size, a value that maintains the aspect ratio of the input image.

The default value of WIDTH and HEIGHT is 0.

slicify
=======

Pass the images of input video on to next video filter as multiple slices.

     ./ffmpeg -i in.avi -vf "slicify=32" out.avi

The filter accepts the slice height as parameter. If the parameter is not specified it will use the default value of 16.

Adding this in the beginning of filter chains should make filtering faster due to better use of the memory cache.

unsharp
=======

Sharpen or blur the input video.

It accepts the following parameters: LUMA_MSIZE_X:LUMA_MSIZE_Y:LUMA_AMOUNT:CHROMA_MSIZE_X:CHROMA_MSIZE_Y:CHROMA_AMOUNT

Negative values for the amount will blur the input video, while positive values will sharpen. All parameters are optional and default to the equivalent of the string '5:5:1.0:0:0:0.0'.

luma_msize_x
     Set the luma matrix horizontal size. It can be an integer between 3 and 13, default value is 5.

luma_msize_y
     Set the luma matrix vertical size. It can be an integer between 3 and 13, default value is 5.

luma_amount
     Set the luma effect strength. It can be a float number between -2.0 and 5.0, default value is 1.0.

chroma_msize_x
     Set the chroma matrix horizontal size. It can be an integer between 3 and 13, default value is 0.

chroma_msize_y
     Set the chroma matrix vertical size. It can be an integer between 3 and 13, default value is 0.

luma_amount
     Set the chroma effect strength. It can be a float number between -2.0 and 5.0, default value is 0.0.

     # Strong luma sharpen effect parameters
     unsharp=7:7:2.5

     # Strong blur of both luma and chroma parameters
     unsharp=7:7:-2:7:7:-2

     # Use the default values with ffmpeg
     ./ffmpeg -i in.avi -vf "unsharp" out.mp4

vflip
=====

Flip the input video vertically.

     ./ffmpeg -i in.avi -vf "vflip" out.avi

Video Sources
*************

Below is a description of the currently available video sources.

buffer
======

Buffer video frames, and make them available to the filter chain.

This source is mainly intended for a programmatic use, in particular through the interface defined in libavfilter/vsrc_buffer.h.

It accepts the following parameters: WIDTH:HEIGHT:PIX_FMT_STRING

All the parameters need to be explicitely defined.

Follows the list of the accepted parameters.

width, height
     Specify the width and height of the buffered video frames.

pix_fmt_string

     A string representing the pixel format of the buffered video frames. It may be a number corresponding to a pixel format, or a pixel format name.

For example:

     buffer=320:240:yuv410p

will instruct the source to accept video frames with size 320x240 and with format "yuv410p". Since the pixel format with name "yuv410p" corresponds to the number 6 (check the enum PixelFormat definition in libavutil/pixfmt.h), this example corresponds to:

     buffer=320:240:6

color
=====

Provide an uniformly colored input.

It accepts the following parameters: COLOR:FRAME_SIZE:FRAME_RATE

Follows the description of the accepted parameters.

color
     Specify the color of the source. It can be the name of a color (case insensitive match) or a 0xRRGGBB[AA] sequence, possibly followed by an alpha specifier. The default value is "black".

frame_size
     Specify the size of the sourced video, it may be a string of the form WIDTHxHEIGTH, or the name of a size abbreviation. The default value is "320x240".

frame_rate
     Specify the frame rate of the sourced video, as the number of frames generated per second. It has to be a string in the format FRAME_RATE_NUM/FRAME_RATE_DEN, an integer number, a float number or a valid video frame rate abbreviation. The default value is "25".

For example the following graph description will generate a red source with an opacity of 0.2, with size "qcif" and a frame rate of 10 frames per second, which will be overlayed over the source connected to the pad with identifier "in".

     "color=red@0.2:qcif:10 [color]; [in][color] overlay [out]"

nullsrc
=======

Null video source, never return images. It is mainly useful as a template and to be employed in analysis / debugging tools.

It accepts as optional parameter a string of the form WIDTH:HEIGHT, where WIDTH and HEIGHT specify the size of the configured source.

The default values of WIDTH and HEIGHT are respectively 352 and 288 (corresponding to the CIF size format).

Video Sinks
***********

Below is a description of the currently available video sinks.

nullsink
========

Null video sink, do absolutely nothing with the input video. It is mainly useful as a template and to be employed in analysis / debugging tools.