This document describes filters, sources, and sinks provided by the libavfilter library.
Filtergraph Syntax
- Filters in the same linear chain
are separated by
commas, - distinct linear chains of filters
are separated by
semicolons. - The points where the linear chains join are labelled by names
enclosed in
square brackets. - Some filters
take in input
a list of parameters:they are specified
after the filter name and an equal sign,they are separated from each other
by a colon.
Filtering Introduction
Filtering in FFmpeg is enabled through the libavfilter library.
In libavfilter, a filter can have multiple inputs and multiple outputs.
To illustrate the sorts of things that are possible, we consider the following filtergraph.
Example of filtergraph:
[main]
input --> split ---------------------> overlay --> output
| ^
|[tmp] [flip]|
+-----> crop --> vflip -------+
This filtergraph splits the input stream in two streams, then,
sends one stream through the crop filter and the vflip filter,
before merging it back with the other stream by overlaying it on top.
You can use the following command to achieve this:
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
The result will be that the top half of the video is mirrored onto the bottom half of the output video.
In our example,
- crop,vflip are in one linear chain,
- split and overlay are separately in another.
- the split filter generates two outputs that are associated to the labels [main] and [tmp].
- the stream sent to the second output of split, labelled as [tmp], is processed through the crop filter.
- the crop filter crops away the lower half part of the video, and then vertically flipped.
- The overlay filter takes in input the first unchanged output of the split filter (which was labelled as [main]), and overlay on its lower half the output generated by the crop, vflip filterchain.
There exist so-called source filters that do not have an audio/video input, and sink filters that will not have audio/video output.