如何批量重新混合 .MOV 文件的音频?

如何批量重新混合 .MOV 文件的音频?

我有大约一百个家庭视频文件,为了存档需要重新压缩。我想使用 HandBrake 将它们全部转换为 x264,但音频有问题。它们都遵循以下格式:

  • 视频轨道:隔行 DV-PAL 720x576
  • 音轨:16 位整数单声道 (左), 48kHz
  • 音轨:16 位整数单声道 (右), 48kHz

当我将它们添加到 HandBrake 中时,它只能选择其中一个音轨进行转换,因此会丢失一个音频通道。我需要一种方法来:

  • 将两个音轨配对为立体声,以便 HandBrake 将两个音轨识别为一个整体的两半,或者
  • 用一个立体声音轨替换两个音轨。

我需要自动化这个过程没有重新压缩视频,除非它执行与 HandBrake 相同的功能,因为许多视频很长,因此两次压缩它们会花费太多时间。

到目前为止,我倾向于第二种选择。我已成功将所有音频批量输出为立体声 WAV 文件,因此我有一个文件夹,里面装满了原始视频以及同名的相应音频文件。

我一直在 Mac OS 10.10 上使用 QuickTime Pro 7,但如果需要,我可以启动 Windows 7。我没有在 Windows 上安装任何 AV 处理软件。我不懂命令行,但愿意学习它是否有助于解决问题。我的下一步应该怎么做?

编辑:对于遇到类似问题的人,我的解决方案是使用下面的 LordNeckbeard 代码从源文件批量创建立体声 WAV,然后使用 QuickTime Player 7 Pro 将这些 WAV 添加到源文件并删除原始音轨。这导致 MOV 有一个视频轨道和一个立体声音轨。但是 HandBrake 仍然只允许我从这些源文件输出单声道音频,原因我不清楚,所以我仍然陷入困境。

答案1

你可以做一个bfor 循环在 macOS 中:

    mkdir outputs
    for f in *.mov; do 
        ffmpeg -i "$f" -filter_complex "[0:a:0][0:a:1]amerge=inputs=2[a]" \
            -map 0:v -map "[a]" -c:v copy -ac 2 "outputs/$f"; 
    done
  • 假设当前目录包含所有要处理的视频。

  • 合并过滤器用于将两个音频流合并为一个。

  • 在这种情况下,该-ac 2选项是多余的,但如果输入音频流是立体声,它会将输出混音为立体声。否则将创建 4 声道输出。

  • 视频流已复制

相关内容