SciTech-AV-Video-DVP(Digital Video Processing)-CV/CG-ffmpeg-libavfilter:數字過濾器-

abaelhe發表於2024-10-17

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.

相關文章