【问题标题】:Clarity on FFmpeg Filter graph description清晰的 FFmpeg 过滤器图形描述
【发布时间】:2019-03-12 01:40:43
【问题描述】:

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

我开始阅读与 libavfilter 相关的文档,结果卡在Filtergraph-description

我不懂术语“过滤垫”。在整个文档中,我遇到了这些术语,例如过滤器输入板和输出板。

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

【问题讨论】:

    标签: ffmpeg libav


    【解决方案1】:

    pad (pæd)
    猫、狗等的脚垫状肉质垫底


    在过滤上下文中使用“pad”这个词时,我从不喜欢这个词,我不知道为什么要使用这个词。把它换成“节点”这个词可能会更容易理解。

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

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

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

    如果您曾经使用过使用 node graph architecture 的软件,例如 Nuke 或不幸停产的 Apple Shake,这可能更有意义。

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

    ffmpeg -f lavfi -i testsrc2=d=3:s=1280x720 output.mp4
    

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

    【讨论】:

    • 如果我错了,请纠正我。如果我把 ffmpeg 过滤器想象成一个物理电子设备,它有多个连接到它的输入和输出端口来接收和发送信号。这些端口被视为过滤器的输入/输出焊盘,并假设 ffmpeg 过滤器链接为物理线,两端带有连接器以连接过滤器。这些连接器被视为过滤器链路的输入/输出焊盘。
    • 没有输入焊盘的过滤器称为“源”,没有输出焊盘的过滤器称为“接收器”。 @llogan 你能帮我理解这条线吗?没有输入垫的源过滤器怎么可能?如果没有输入焊盘,那么它接收过滤器链的输入并且接收器过滤器应该有一个输出焊盘来取出过滤后的数据。
    • @Vencat 更新了答案。
    • 我认为这个名字来自PCB接触垫。 en.wikipedia.org/wiki/Contact_pad
    猜你喜欢
    • 2012-08-12
    • 2010-12-04
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多