我有一个包含两个音轨的 AVI 文件,我想编辑它。当我在 Media Player 中打开它时,它播放正常(我可以听到两个音轨)。但是,Windows Movie Maker 和 Adobe 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。