在ffmpeg命令行中,“copy”是什么意思?

14

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

我从其他问题中看到它可以复制流而不需要转码,但我还能用它来进行哪些其他操作?

我已经运行了ffmpeg --help,但我没有找到任何关于它的文档。有没有网站可以阅读更多相关资料?


我投票关闭这个问题,因为正如ffmpeg标签所述:只有关于FFmpeg库、API或工具的编程使用的问题才是相关的。关于命令行工具的交互使用的问题应该在https://superuser.com/或https://video.stackexchange.com/上提问。请删除这个问题。 - undefined
1个回答

28

copy不是开关或选项,它是可以设置编解码器选项的值,其意思是复制帧而不是经过解码->滤镜->编码的过程。

在你提供的问题中,字符串为-c copy,它的意思是将所有编解码操作设置为复制,包括视频、音频、字幕、数据和附件(如果有)。-c-codec的缩写。

如果你设置-c:v copy,则表示复制正在处理的任何视频流。同样适用于-c:a-c:s-c:d。当然,FFmpeg必须支持将目标流混合到输出容器中,否则该命令将失败。

当要求复制流时,无法使用音频/视频/多媒体滤镜,因为滤镜需要解码音频/视频帧并对它们进行处理。所以他们的结果需要重新编码。但是,可以使用比特流滤镜与复制一起使用,因为这些滤镜不会改变主有效负载,只会改变存储在流中的相关元数据。


2
如果您使用“copy”仍然丢失音频流,请尝试添加“-map 0:a -map 0:v”。 - Jack Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接