保留输入编解码器

保留输入编解码器

我有一个包含 H.264 视频和 AAC 音频的 MKV 文件。使用 FFmpeg,MKV 的默认音频编解码器是 AC3,因此如果您运行以下命令

ffmpeg -i infile.mkv -ac 2 outfile.mkv

它会将音频转码为 AC3。我可以运行此命令,一切正常

ffmpeg -i infile.mkv -ac 2 -c:a libfdk_aac outfile.mkv

但是有没有办法说“使用输入编解码器”?请注意,这copy不起作用,因为我正在更改音频流。

答案1

据我所知,没有这样的选项。您必须明确说明、依赖默认值或执行其他脚本。

如果你认为这应该作为一个功能实现,你可以在FFmpeg 错误追踪器(首先搜索看是否已经存在)。

请注意,输出容器格式的默认编码器可能会根据您支持的外部编码库而变化。例如,如果您的ffmpeg版本支持 libvorbis,则它会使用该编码器而不是 ac3 进行 mkv 输出。

ffprobe可能有帮助:

$ ffprobe -v 0 -of flat=s=_ -select_streams a:0 -show_entries stream=codec_name input.mkv
streams_stream_0_codec_name="aac"

当然,这可能用处有限,因为codec_name可能与您想要的编码器名称不同。

相关内容