“复制”在 ffmpeg 命令行中做了啥?
Posted
技术标签:
【中文标题】“复制”在 ffmpeg 命令行中做了啥?【英文标题】:What does "copy" do in a ffmpeg command line?“复制”在 ffmpeg 命令行中做了什么? 【发布时间】:2016-11-17 16:16:49 【问题描述】:我知道它复制了一些东西,但除此之外它做了什么(它在多大程度上影响了输出文件)?是开关还是选项?为什么单词本身前面没有连字符?
我从其他问题中看到它可以copy streams without transcode 但我可以操纵它的其他可能性是什么?
我已经完成了ffmpeg --help
,但我没有看到任何关于它的文档。有没有一个网站可以让我了解更多信息?
【问题讨论】:
【参考方案1】:copy
既不是开关也不是选项。这是可以为编解码器选项设置的值,表示它的建议,即复制帧而不是通过解码->过滤->编码过程。
在您链接的问题中,字符串为-c copy
,这意味着将所有编解码器操作设置为复制,即视频、音频、字幕、数据和附件(如果有)。 -c
是 -codec
的缩写。
如果设置-c:v copy
,则表示复制任何正在处理的视频流。 -c:a
或 -c:s
或 -c:d
也是如此。当然,FFmpeg 必须支持将目标流复用到输出容器中。如果没有,该命令将失败。
当要求复制流时,您不能使用音频/视频/多媒体过滤器,因为过滤器需要解码音频/视频帧并对其进行操作。所以他们的结果需要重新编码。但是,您可以将比特流过滤器与副本一起使用,因为它们不会改变主要有效负载,而只会改变存储在流中的相关元数据。
【讨论】:
如果您在使用copy
后仍丢失了音频流,请尝试添加-map 0:a -map 0:v
以上是关于“复制”在 ffmpeg 命令行中做了啥?的主要内容,如果未能解决你的问题,请参考以下文章
UIViewController 类在 viewDidLoad 中做了啥? [复制]
@dynamic 在 Objective-C 中做了啥? [复制]