我有一个包含 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
可能与您想要的编码器名称不同。