小编Wal*_*ers的帖子

使 ffmpeg 处理第一个音频流的方式与所有其他音频流不同

我正在尝试编写一个命令,以便 ffmpeg 为文件中的第一个音频流执行给定的指令,并为任何其他音频流执行不同的指令。例如,在下面的测试用例中,我希望将第一个流复制到输出文件,并将所有其他流转换为单声道。如果我这样写

ffmpeg -i INPUT -map 0 -c copy -map 0:a:0 -c:a:0 copy -map -0:a:0? -c:a libfdk_aac -ac 1 OUTPUT
Run Code Online (Sandbox Code Playgroud)

当映射稍后在命令行中被覆盖时,第一个音频流将被忽略。但是如果我将该流的指令移到其他流之后

ffmpeg -i INPUT -map 0 -c copy -map -0:a:0? -c:a libfdk_aac -ac 1 -map 0:a:0 -c:a:0 copy OUTPUT
Run Code Online (Sandbox Code Playgroud)

它不再被忽略,而是成为文件中的最后一个音频流。我知道我就在这里;我只是看不出我做错了什么。

ffmpeg

2
推荐指数
1
解决办法
2988
查看次数

标签 统计

ffmpeg ×1