FFmpeg 将原始音频转换为三种不同的音频

FFmpeg 将原始音频转换为三种不同的音频

我想将 DTS 格式的视频文件的音频转换为三种不同类型的 AC3,一个 640K,第二个 448K,最后一个 192K。DTS 将被删除,视频将被复制。容器将保持不变。

我已经尝试过了

ffmpeg.exe -i input.mkv -map 0:0 -map 0:1 -map 0:1 -map 0:1 -c:v copy -c:a:0 ac3 -center_mixlev 0.707 -ab 640k -metadata:s:a:0 language=eng -metadata:s:a:0 title="640" -c:a:1 ac3 -center_mixlev 0.707 -ab 448k -metadata:s:a:1 language=eng -metadata:s:a:1 title="448" -c:a:2 ac3 -b:a 192k -center_mixlev 0.707 -metadata:s:a:2 language=eng -metadata:s:a:2 title="192" output.mkv

ffmpeg.exe -i input.mkv -map 0:v -c:v copy -map 0:a -c:a:0 ac3 -center_mixlev 0.707 -ab 640k -metadata:s:a:0 language=eng -metadata:s:a:0 title="640" -map 0:a -c:a:1 ac3 -center_mixlev 0.707 -ab 448k -metadata:s:a:1 language=eng -metadata:s:a:1 title="448" -map 0:a -c:a:2 ac3 -b:a 192k -center_mixlev 0.707 -metadata:s:a:2 language=eng -metadata:s:a:2 title="192" output.mkv

但生成的文件包含所有三个 AC3 格式的音频,但大小为 192K(全部)

提前致谢。

答案1

使用

ffmpeg.exe -i input.mkv -map 0:0 -map 0:1 -map 0:1 -map 0:1 -c:v copy -c:a ac3 -center_mixlev 0.707 -b:a:0 640k -metadata:s:a:0 language=eng -metadata:s:a:0 title="640" -b:a:1 448k -metadata:s:a:1 language=eng -metadata:s:a:1 title="448" -b:a:2 192k -metadata:s:a:2 language=eng -metadata:s:a:2 title="192" output.mkv

由于所有三个流的音频编码器相同,因此您只需指定一次。但音频比特率的流说明符应该是完全合格的,否则每次编码都将使用最后设置的值(192k)。

相关内容