Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我导入一个文件以与 ffmpeg 一起使用,但没有指定任何有关任何流的编解码器的任何内容,那么 ffmpeg 会做任何事情吗?是只复制编解码器的默认操作吗?或者 ffmpeg 会使用一些默认编解码器对输入文件进行编码吗?
以下两个命令是否相同?还是第二次重新编码并需要很长时间?
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4 ffmpeg -i input.mkv output.mp4
如果我导入一个文件以与 ffmpeg 一起使用,但没有指定任何有关任何流的编解码器的任何内容,那么 ffmpeg 会做任何事情吗?
ffmpeg 将使用默认编码器重新编码输入中的每个流。使用的编码器将取决于您如何配置 ffmpeg。例如,如果可用libx264将是 mp4 输出的默认编码器,但如果不可用,mpeg4则将使用。默认情况下,ffmpeg 只会重新编码每种类型的一个流,而忽略其余的(请参阅流选择)。
libx264
mpeg4
在您的两个命令中,第一个将对视频和音频使用流复制模式。您的第二个命令将重新编码。
ffmpeg -i input.mkv output.mp4要在您的计算机上发现第二个命令 , 使用的默认编解码器(音频和视频) :
ffmpeg -i input.mkv output.mp4
运行该命令,也许-t 5它会更快地完成(仅编码 5 秒)。
-t 5
运行ffprobe output.mp4。扫描“视频”和“音频”的输出以查看最终使用了哪些编解码器。例如,我的 Ubuntu 12 安装使用 h264 和 aac。
ffprobe output.mp4