如何在 AVI 文件中将两个音轨合并在一起?

如何在 AVI 文件中将两个音轨合并在一起?

我有一个包含两个音轨的 AVI 文件,我想编辑它。当我在 Media Player 中打开它时,它播放正常(我可以听到两个音轨)。但是,Windows Movie Maker 和 Adob​​e Premiere CS6 似乎都忽略了第二个音轨,而且我找不到多个音轨的选项。有没有办法将它们合并或让 Premiere 识别出两个音轨的存在?

答案1

您可以使用ffprobe、 和ffmpeg工具。首先,使用工具找出相应的视频、 和音频流的编号ffprobe

$ ffprobe video.avi
ffprobe version 3.2.10-1~deb9u1 Copyright (c) 2007-2018 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18) 20170516
...
Input #0, avi,webm, from 'video.avi':
    Stream #0:0(eng): Video: mpeg4 (DX50 / 0x30355844), yuv420p, 704x480 [SAR 1:1 DAR 22:15], SAR 10:11 DAR 4:3, 23.98 fps, 23.98 tbr, 1k tbn, 30k tbc (default)
    Stream #0:1(jpn): Audio: aac (HE-AAC), 44100 Hz, 5.1, fltp (default)
    Metadata:
      title           : 5.1 HE-AAC
    Stream #0:2(eng): Audio: vorbis, 48000 Hz, stereo, fltp
    Metadata:
      title           : 2.0 Ogg Vorbis

在这种情况下,我们将保留视频流 0:0,并将英语和日语音频流 0:1 和 0:2 混合成单个音频流。为此,我们将使用ffmpeg带有amerge音频过滤器:

$ ffmpeg -fflags +genpts -i video.avi \
> -filter_complex '[0:1][0:2] amerge=inputs=2' \
> -c:v copy -c:a aac -ac 2 -q:a 128 video-converted.avi

选项解释:

  • -fflags +genpts– 我们不会重新编码视频流。但是,如果视频流不包含文件戳,复用器可能会拒绝此操作并显示错误消息。只需重新生成时间戳即可解决此问题,而无需重新编码整个视频流,因为重新编码会很慢且不必要。
  • -i video.avi– 这指定了我们的输入视频文件。
  • -filter_complex '[0:1][0:2] amerge=inputs=2'– 这告诉amerge过滤器将音频流 0:1 和 0:2 混合成单个音频流。
  • -c:v copy– 我们将保留原始视频流,不重新编码。
  • -c:a aac -ac 2 -q:a 128– 我们将使用AAC 编解码器具有两个通道和 128 kbps 的比特率。
  • video-converted.avi– 这指定了我们的输出视频文件。

答案2

您可以将文件导入 Audacity,验证音轨是否按您希望的方式播放,然后将音轨导出为平面文件格式并将两个音轨作为一个一起播放,例如 .mp3。

相关内容