FFmpeg按语言映射流输出时音视频流顺序颠倒该如何修正
问题原因
ffmpeg 的 -map 参数的书写顺序直接决定输出文件内的流排列顺序,你当前的命令先配置了音频流映射,再配置视频流映射,因此输出文件会出现音频在前、视频在后的顺序颠倒问题。此外原命令存在一处语法疏漏:-c:v copy 和 -c:a:0 之间缺失空格,会导致参数识别报错。
修复后命令
ffmpeg -i "in.mkv" -map 0:v -map 0:a -map -0:m:language:eng -map 0:s -map 0:d? -map 0:t -c:v copy -c:a:0 aac -b:a:0 192k -ac 2 -ar 48000 -strict -2 "out.mkv"
调整说明
- 仅调换了视频流映射
-map 0:v和音频流映射的先后顺序,视频流优先映射,输出后会排在所有流的最前面,符合常规媒体文件的流排序规则 - 补全了原命令中缺失的参数空格,避免执行报错
- 原命令的所有核心功能完全保留:包括移除英语音轨、视频流无损复制、首条音频转码为192kbps双声道AAC、保留字幕/可选数据/章节流等逻辑均没有改动
内容的提问来源于stack exchange,提问作者Wellington Souza
相关产品推荐
相关产品推荐

