如果我导入一个文件用于ffmpeg,但没有指定任何流的编解码器信息,ffmpeg会执行任何操作吗?默认操作是只复制编解码器吗?还是ffmpeg会使用默认编解码器对输入文件进行编码?
以下两个命令是否相同?还是第二个会重新编码并且需要很长时间?
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4
ffmpeg -i input.mkv output.mp4
ffmpeg -i input.mkv output.mp4
使用的默认编解码器(音频和视频),请按以下步骤操作:
运行该命令,可以使用-t 5
使其更快地完成(只编码 5 秒)。
运行 ffprobe output.mp4
。扫描输出以查看使用了哪些编解码器的 "Video" 和 "Audio"。例如,我的 Ubuntu 12 安装使用 h264 和 aac。
ffmpeg -h muxer=mp4
可以打印出一个混合器默认使用的编解码器。在我的机器上,它打印出默认视频编解码器:h264; 默认音频编解码器:aac
。当然,它只提供编解码器,而不是实际使用的编码器。例如,使用-h encoder=h264
可以显示libx264
,h264_amf
,h264_mf
,h264_nvenc
,h264_qsv
等选项,这意味着一个编解码器有多个编码器可供选择。 - legends2k
ffmpeg
总是会重新编码。 - llogan