代码之家  ›  专栏  ›  技术社区  ›  aur0n

如何将MKV movies 5.1音频曲目转换为2.0(立体声),但保留原始曲目

  •  0
  • aur0n  · 技术社区  · 7 年前

    为了解决我在5.1电影中有相当多对话的问题,我使用FFMPEG将我的MKV电影的每一个音频曲目转换为具有音频规范化的2.0曲目,保持视频和字幕完好无损。

    该命令如下所示:

    for /r %%i in (*.mkv) do (
        @ffmpeg.exe -hide_banner -v 32 -stats -y -i "%%i" -map 0:v -map 0:a -map 0:s? -c:s copy -c:v copy -acodec ac3 -ac 2 -ar 48000 -ab 640k -af %aproc2%  -f matroska "%%~ni [Stereo].mkv"
    )
    

    我现在想做的是把这些转换后的音轨 已添加 5.1轨道中的MKV,而不是替换原件,这可能是我将来想要的。

    我不是FFMPEG的专家,所以我正在寻求帮助。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Gyan    7 年前

    使用

    for /r %%i in (*.mkv) do (
        @ffmpeg.exe -hide_banner -v 32 -stats -y -i "%%i" -map 0:v -map 0:a -map 0:a -map 0:s? -c:s copy -c:v copy -c:a:0 ac3 -ac:a:0 2 -ar:a:0 48000 -ab:a:0 640k -filter:a:0 %aproc2% -c:a:1 copy -f matroska "%%~ni [Stereo].mkv"
    )
    

    音频映射两次。所有音频选项都附加了输出流说明符,因此它们仅适用于第一个音频输出,而第二个音频输出的编解码器设置为“复制”。


    对于具有多个轨迹的输入,需要多个命令

    for /r %%i in (*.mkv) do (
        @ffmpeg.exe -hide_banner -v 32 -stats -y -i "%%i" -map 0:a -c:a ac3 -ac 2 -ar 48000 -ab 640k -filter:a %aproc2% -f matroska "%%~dpni [Stereo].mka"
        @ffmpeg.exe -hide_banner -v 32 -stats -y -i "%%i" -i "%%~dpni [Stereo].mka" -map 0:v -map 0:a -map 1:a -map 0:s? -c copy -f matroska "%%~ni [Stereo].mkv"
    )