10

如果我导入一个文件以与 ffmpeg 一起使用,但没有指定任何有关任何流的编解码器的任何内容,那么 ffmpeg 会做任何事情吗?是只复制编解码器的默认操作吗?或者 ffmpeg 会使用一些默认编解码器对输入文件进行编码吗?

以下两个命令是否相同?还是第二次重新编码并需要很长时间?

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

ffmpeg -i input.mkv output.mp4
4

2 回答 2

13

如果我导入一个文件以与 ffmpeg 一起使用,但没有指定任何有关任何流的编解码器的任何内容,那么 ffmpeg 会做任何事情吗?

ffmpeg 将使用默认编码器重新编码输入中的每个流。使用的编码器将取决于您如何配置 ffmpeg。例如,如果可用libx264将是 mp4 输出的默认编码器,但如果不可用,mpeg4则将使用。默认情况下,ffmpeg 只会重新编码每种类型的一个流,而忽略其余的(请参阅流选择)。

在您的两个命令中,第一个将对视频和音频使用流复制模式。您的第二个命令将重新编码。

于 2013-07-22T17:26:57.330 回答
7


ffmpeg -i input.mkv output.mp4要在您的计算机上发现第二个命令 , 使用的默认编解码器(音频和视频) :

  • 运行该命令,也许-t 5它会更快地完成(仅编码 5 秒)。

  • 运行ffprobe output.mp4。扫描“视频”和“音频”的输出以查看最终使用了哪些编解码器。例如,我的 Ubuntu 12 安装使用 h264 和 aac。

于 2014-08-05T16:56:46.180 回答