FFmpeg 过滤器图描述的清晰度
Clarity on FFmpeg Filter graph description
我正在使用 libavfilter C API 来缩放我的视频。
开始阅读libavfilter相关的文档,卡在了Filtergraph-description。
我不明白术语 "filter pads"。在整个文档中,我遇到了这些术语,例如滤波器输入板和输出板。
如果有人用简单的方式解释过滤垫,那将是非常感激的。另请分享与 libavfilter C API 示例相关的任何文档或链接。
pad (pæd)
猫、狗等足底肉质垫状
我从来不喜欢用在过滤上下文中的术语 "pad",而且我不知道为什么要使用该术语。将其替换为 "node" 可能会使其更易于理解。
这可以用 graph2dot
工具直观地表示:
在此示例中,拆分过滤器制作了两个相同的视频副本。翻转一个副本,然后 hstack 过滤器将它们并排堆叠以创建输出。
每个过滤器都是 linked,并且每个 link 都连接到一个输入 "node" (pad) 和一个输出 "node" (pad)。
如果您曾经使用过使用 node graph architecture 的软件,例如 Nuke 或不幸停产的 Apple Shake,这可能更有意义。
没有输入垫的滤波器称为 "source",没有输出垫的滤波器称为 "sink"。源过滤器示例包括 testsrc2, color, and sine。这些过滤器可以自行生成视频或音频,无需输入,因此没有输入板。输出视频测试模式的示例,3 秒,1280x720:
ffmpeg -f lavfi -i testsrc2=d=3:s=1280x720 output.mp4
水槽对大多数用户来说用处不大。一种用途是测试复杂的过滤图。如果你有一个你想暂时忽略的过滤器链,那么你可以将它终止到一个接收器中,比如 anullsink。接收器没有输出。如果您熟悉 /dev/null
,这有点像使用它。
我正在使用 libavfilter C API 来缩放我的视频。
开始阅读libavfilter相关的文档,卡在了Filtergraph-description。
我不明白术语 "filter pads"。在整个文档中,我遇到了这些术语,例如滤波器输入板和输出板。
如果有人用简单的方式解释过滤垫,那将是非常感激的。另请分享与 libavfilter C API 示例相关的任何文档或链接。
pad (pæd)
猫、狗等足底肉质垫状
我从来不喜欢用在过滤上下文中的术语 "pad",而且我不知道为什么要使用该术语。将其替换为 "node" 可能会使其更易于理解。
这可以用 graph2dot
工具直观地表示:
在此示例中,拆分过滤器制作了两个相同的视频副本。翻转一个副本,然后 hstack 过滤器将它们并排堆叠以创建输出。
每个过滤器都是 linked,并且每个 link 都连接到一个输入 "node" (pad) 和一个输出 "node" (pad)。
如果您曾经使用过使用 node graph architecture 的软件,例如 Nuke 或不幸停产的 Apple Shake,这可能更有意义。
没有输入垫的滤波器称为 "source",没有输出垫的滤波器称为 "sink"。源过滤器示例包括 testsrc2, color, and sine。这些过滤器可以自行生成视频或音频,无需输入,因此没有输入板。输出视频测试模式的示例,3 秒,1280x720:
ffmpeg -f lavfi -i testsrc2=d=3:s=1280x720 output.mp4
水槽对大多数用户来说用处不大。一种用途是测试复杂的过滤图。如果你有一个你想暂时忽略的过滤器链,那么你可以将它终止到一个接收器中,比如 anullsink。接收器没有输出。如果您熟悉 /dev/null
,这有点像使用它。