我正在使用libavfilter C API缩放视频。
我开始阅读与libavfilter相关的文档,并被困在Filtergraph-description。
我不理解“滤垫”的术语。在整个文档中,我遇到了诸如滤波器输入板和输出板之类的术语。
如果有人以简单的方式解释滤板,那将是非常有意义的。另外,请分享与libavfilter C API示例相关的任何文档或链接。
答案 0 :(得分:2)
垫(pæd)
猫,狗等脚的肉质软垫状底部
在过滤的上下文中使用“填充”一词时,我从不喜欢它,我也不知道为什么使用该术语。将其替换为“节点”一词可能会使它更容易理解。
这可以用graph2dot
工具直观地表示:
在此示例中,分割过滤器会制作两个相同的视频副本。翻转一个副本,然后hstack过滤器将它们并排堆叠以创建输出。
每个过滤器都是链接的,每个链接都连接到输入“节点”(填充)和输出“节点”(填充)。
如果您曾经使用过使用node graph architecture的软件(例如Nuke或不幸的已停产的Apple Shake),则可能更有意义。
没有输入焊盘的滤波器称为“源”,没有输出焊盘的滤波器称为“漏”。源过滤器示例包括testsrc2,color和sine。这些滤波器可以自己生成视频或音频,而无需任何输入,因此没有输入板。输出视频测试图案(3秒,1280x720)的示例:
ffmpeg -f lavfi -i testsrc2=d=3:s=1280x720 output.mp4
接收器对于大多数用户而言不太有用。一种用途是测试复杂的滤镜。如果您有一个要暂时忽略的过滤器链,则可以将其终止到接收器中,例如anullsink。接收器没有输出。如果您熟悉/dev/null
,就好像在使用它。