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

将多个文件的多个音频轨迹转换为FFmpeg

  •  1
  • Raviga  · 技术社区  · 6 年前

    我正在使用脚本转换文件夹中的所有视频文件。这些文件有多个音轨,我希望转换的文件有每个音轨以及。我两个都试过了 -c copy -c:a mp3 两个都不适合我。有什么想法我可以修改这个复制所有的音频曲目?

    #!/bin/sh
    
    for i in *.mkv; do ffmpeg -i "$i" -c:a mp3 -vcodec libx264 -crf 18 -r 60 "${i%.mkv}.mp4"; done
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Bruce Stephenson    6 年前

    -c:a copy . 在您的示例中,您试图将音频编解码器设置为 mp3 ,它实际上只是一个容器。希望有帮助!


    我应该修正这个。。。我的第一个想法是简单地从输入文件中复制一个最高质量的音频流。要复制所有流,我们需要使用 map 1 . 例如,复制所有音频流可能如下所示:

    #!/bin/sh
    
    for i in *.mkv; do
        ffmpeg -i "$i" -map 0 -c copy -c:v libx264 -crf 18 -r 60 "${i%.mkv}.mp4"; 
    done