如何使用ffmpeg在视频中添加新的音频(不混合)?

我使用了一个命令:

ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio

在最新版本中添加新的音轨到视频(不混合)。

但我更新了ffmpeg到最新版本(ffmpeg版本git-2012-06-16-809d71d),现在在这个版本的参数-newaudio不工作。

告诉我,如何我可以添加新的音频到我的视频(不混合)使用ffmpeg。

将音频添加到视频:流复制

ffmpeg -i video.avi -i audio.mp3 -codec copy -shortest output.avi

>省略-map选项将使用默认的stream selection.如果您的视频输入没有音频,这将工作。
>此示例使用-codec拷贝到stream copy(无重新编码;质量保留,速度快)。
> -shortest选项将使output.avi与最短输入的持续时间相同。

将音频添加到视频:重新编码

如果您的输出不喜欢原始格式,或者如果要更改格式,您可以指定编码器:

ffmpeg -i video.avi -i audio.mp3 -c:v libx264 -c:a libvorbis -shortest output.mkv

手动选择特定流

有时,默认的流选择不会给你想要的结果。在这个例子中video.mp4有视频和音频,而audio.m4a只有音频。使用-map从video.mp4中选择视频,并从audio.m4a中选择音频:

ffmpeg -i video.mp4 -i audio.m4a -map 0:v -map 1:a -c copy -shortest output.mp4

> -map 0:v – 从输入0(第一个输入,即video.mp4)选择视频流。
> -map 1:a – 从输入1(第二个输入,即audio.m4a)选择音频流。

将两个音频输入混合/组合成一个

从video.webm获取视频,并使用amerge filter将来自video.webm和audio.oga的音频合并:

ffmpeg -i video.webm -i audio.oga -filter_complex \
"[0:a][1:a]amerge=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a libvorbis -ac 2 -shortest out.webm

生成无声音频

您可以使用anullsrc filter创建静音音频流。滤波器允许您选择所需的通道布局(单声道,立体声,5.1等)和采样率。

ffmpeg -i video.mp4 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 \
-c:v copy -shortest output.mp4

另见

> Combine two audio streams into one
> FFmpeg Wiki: Audio Channel Manipulation
> FFmpeg mux video and audio from another video

翻译自:https://stackoverflow.com/questions/11779490/how-to-add-a-new-audio-not-mixing-into-a-video-using-ffmpeg

转载注明原文:如何使用ffmpeg在视频中添加新的音频(不混合)?