我厌倦了Vegas,Premiere,Pinnacle,SoundForge以及我尝试过的所有其他编辑。
我正在尝试修改AVI文件的音频,但是我保存的所有编辑都坚持在保存更改时重新编码视频,并且要么降低质量要么花费数小时。
有没有办法从视频中提取音频流 ffmpeg
,在音频编辑器中编辑它,然后将保存的更改与视频重新组合?
我厌倦了Vegas,Premiere,Pinnacle,SoundForge以及我尝试过的所有其他编辑。
我正在尝试修改AVI文件的音频,但是我保存的所有编辑都坚持在保存更改时重新编码视频,并且要么降低质量要么花费数小时。
有没有办法从视频中提取音频流 ffmpeg
,在音频编辑器中编辑它,然后将保存的更改与视频重新组合?
Answers:
首先,确保安装最新版本的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
选项将映射第二个输入文件中的音频( 1
在 1: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
选项来做到这一点。
-acodec copy
?