未指定任何内容时的默认ffmpeg编解码器

Sam*_*Sam 7 ffmpeg codec

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

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

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

ffmpeg -i input.mkv output.mp4
Run Code Online (Sandbox Code Playgroud)

llo*_*gan 10

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

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

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

  • @Sam `ffmpeg` 将始终重新编码,除非您另有说明。 (2认同)
  • “使用的编码器将取决于您如何配置 ffmpeg:”那么文档在哪里解释呢?对于音频和视频? (2认同)
  • 我一定很密集。该文档仍然没有提到默认值,无论是在`./configure` 的选项中,还是在 `ffmpeg -encoders` 中。 (2认同)

Cam*_*une 6


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

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

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

  • 谢谢你。另一种方法:“ffmpeg -h muxer=mp4”应该打印用于复用器的默认编解码器。它打印“默认视频编解码器:h264;我的机器上的默认音频编解码器:aac`。当然,它只给出了编解码器,而不是实际使用的编码器。例如,“-h编码器=h264”显示“libx264”、“h264_amf”、“h264_mf”、“h264_nvenc”、“h264_qsv”等,这意味着编解码器有多个编码器。 (6认同)