使用ffmpeg提取视频音轨时报Filter split:output1未连接错误如何解决
错误原因
split滤镜的作用是将单路流复制为多路相同的流,你命令中直接传入[0]指代整个输入文件(包含视频、多条音频、数据流),不符合滤镜的输入要求。- 你后续已经通过
-map 0:1、-map 0:2单独指定了要提取的两条音轨,完全不需要用到split滤镜,多余的滤镜输出没有被正确消费,因此触发了unconnected output报错。 - 命令中冗余的
-map [s0]/-map [s1]、-map -0:v?、-dn、-sn参数进一步打乱了流映射逻辑,加剧了ffmpeg的识别错误。
修复后的命令
你要实现的是将俄语音轨转码为aac输出、英语5.1音轨转码为双声道aac输出,直接使用以下命令即可:
ffmpeg -i video.mp4 \ -map 0:1 -c:a aac -map_chapters -1 -map_metadata -1 video-0.aac \ -map 0:2 -ac 2 -c:a aac -map_chapters -1 -map_metadata -1 video-1.aac \ -y
可选优化
如果要避免转码后音质损失,可以根据原音轨码率补充编码参数:给第一条音轨的编码配置加-b:a 192k,第二条音轨编码配置加-b:a 256k即可。
注:输出为纯音频aac格式时会自动过滤视频、字幕、数据流,不需要额外加排除类参数。
内容的提问来源于stack exchange,提问作者Mentos
相关产品推荐
相关产品推荐

