从视频中提取和重新组合音频


3

我厌倦了Vegas,Premiere,Pinnacle,SoundForge以及我尝试过的所有其他编辑。

我正在尝试修改AVI文件的音频,但是我保存的所有编辑都坚持在保存更改时重新编码视频,并且要么降低质量要么花费数小时。

有没有办法从视频中提取音频流 ffmpeg,在音频编辑器中编辑它,然后将保存的更改与视频重新组合?

Answers:


6

首先,确保安装最新版本的FFmpeg 从他们的下载页面 。对于Windows,Linux和OS X,可以使用静态构建。在OS X上,您也可以使用 家酿 (与 brew install ffmpeg )。

从视频中提取音频

为了从文件中提取音频流,我们在WAV容器中导出到PCM立体声音频,因为它是无损的,不会被重新编码:

ffmpeg -i input-file.avi audio.wav

当然,您可以使用许多其他编解码器,例如FLAC或ALAC。 WAV中的PCM内容(或Apple上的AIFF)可能最适合编辑。

现在,根据需要将任何效果应用于音频流。

重组音频和视频

要重新组合音频流和视频文件,请运行:

ffmpeg -i input-file.avi -i audio.wav -c copy -map 0:0 -map 1:0 output.avi

备注

视频和音频文件的顺序正确非常重要( -i video-i audio )用于流映射。否则可能无法正常工作。

-map 0:0 -map 1:0 选项将映射第二个输入文件中的音频( 11:0 )到AVI而不是使用原始音频。这是这里最重要的参数。

你理论上可以改变 -c copy 只复制视频比特流( -c:v copy 并使用任何其他压缩音频编解码器,因为 copy 将尝试使用未压缩的PCM立体声音频。同样,您当然可以将编辑过的音频文件保存到MP3并使用它,但请保留 copy

要将PCM立体声WAV文件编码为MP3,请执行以下操作:

ffmpeg -i input-file.avi -i audio.wav -c:v copy -c:a libmp3lame -map 0:0 -map 1:0 output.avi

如果您的音频文件比视频文件短,则可能需要将其循环播放。供应 -loop 1 选项来做到这一点。


谢谢。第二个命令给我错误“未知解码器'复制'”。如果我把它留下来它可以工作,但是它会以较低的质量重新编码视频,而不是仅仅通过它。有什么建议?
waitinforatrain

这很奇怪。在发布答案之前我再次尝试了所有内容,之前我使用过此设置。它应该通过就好了。你确定你使用 -acodec copy
slhck

是的。我认为这实际上与没有我正在使用的编解码器的解码器(一个camtasia自定义),所以我只是重新编码它
waitinforatrain

4
选项的放置很重要。 “-i”之前的任何内容都被视为输入选项,因此ffm​​peg尝试将“-vcodec copy -acodec copy -scodec xsub”应用于输入的解码器。在输出之前移动适当的选项。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.