【问题标题】:What does "copy" do in a ffmpeg command line?“复制”在 ffmpeg 命令行中做了什么?
【发布时间】:2016-11-17 16:16:49
【问题描述】:

我知道它复制了一些东西,但除此之外它做了什么(它在多大程度上影响了输出文件)?是开关还是选项?为什么单词本身前面没有连字符?

我从其他问题中看到它可以copy streams without transcode 但我可以操纵它的其他可能性是什么?

我已经完成了ffmpeg --help,但我没有看到任何关于它的文档。有没有一个网站可以让我了解更多信息?

【问题讨论】:

    标签: ffmpeg video-encoding libavcodec


    【解决方案1】:

    copy 既不是开关也不是选项。这是可以为编解码器选项设置的值,表示它的建议,即复制帧而不是通过解码->过滤->编码过程。

    在您链接的问题中,字符串为-c copy,这意味着将所有编解码器操作设置为复制,即视频、音频、字幕、数据和附件(如果有)。 -c-codec 的缩写。

    如果设置-c:v copy,则表示复制任何正在处理的视频流。 -c:a-c:s-c:d 也是如此。当然,FFmpeg 必须支持将目标流复用到输出容器中。如果没有,该命令将失败。

    当要求复制流时,您不能使用音频/视频/多媒体过滤器,因为过滤器需要解码音频/视频帧并对其进行操作。所以他们的结果需要重新编码。但是,您可以将比特流过滤器与副本一起使用,因为它们不会改变主要有效负载,而只会改变存储在流中的相关元数据。

    【讨论】:

    • 如果您在使用copy 后仍丢失了音频流,请尝试添加-map 0:a -map 0:v
    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 2016-08-07
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多