FFmpeg 过滤器图描述清晰

Ven*_*cat 2 ffmpeg libav

我正在使用 libavfilter C API 来缩放我的视频。

我开始阅读与 libavfilter 相关的文档并陷入Filtergraph-description

我不明白“过滤垫”这个术语。在整个文档中,我遇到了过滤器输入板和输出板等术语。

如果有人以简单的方式解释过滤垫,那将非常感激。另请分享与 libavfilter C API 示例相关的任何文档或链接。

llo*_*gan 5

pad (p\xc3\xa6d)
\n猫、狗等足部的肉质垫状下部

\n\n
\n\n

我从来不喜欢在过滤上下文中使用“pad”这个术语,而且我不知道为什么使用这个术语。将其替换为“节点”一词可能会更容易理解。

\n\n

这可以用工具直观地表示graph2dot

\n\n

在此输入图像描述

\n\n

在此示例中,分割过滤器制作视频的两个相同副本。翻转一份副本,然后 hstack 过滤器将它们并排堆叠以创建输出。

\n\n

每个过滤器都是链接的,并且每个链接都连接到输入“节点”(pad)和输出“节点”(pad)。

\n\n

如果您曾经使用过使用节点图架构的软件,这可能更有意义软件(例如 Nuke 或不幸停产的 Apple Shake),这可能更有意义。

\n\n

没有输入焊盘的滤波器称为“源”,没有输出焊盘的滤波器称为“接收器”。源过滤器示例包括testsrc2colorsine。这些滤波器可以自行生成视频或音频,无需输入,因此没有输入板。输出视频测试模式的示例,3 秒,1280x720:

\n\n
ffmpeg -f lavfi -i testsrc2=d=3:s=1280x720 output.mp4\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于大多数用户来说,水槽的用处不大。一种用途是测试复杂的过滤图。如果您想暂时忽略一个过滤器链,那么您可以将其终止到接收器中,例如anullsink。接收器没有输出。/dev/null如果您熟悉的话,这有点像使用。

\n