首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ffmpeg将新的音频(不是混音)添加到视频中?

如何使用ffmpeg将新的音频(不是混音)添加到视频中?
EN

Stack Overflow用户
提问于 2012-08-02 22:23:39
回答 7查看 190.2K关注 0票数 191

我使用了如下命令:

代码语言:javascript
运行
复制
ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio

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

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

请告诉我如何使用ffmpeg将新音频添加到我的视频(而不是混音)。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-08-03 02:20:56

替换音频

代码语言:javascript
运行
复制
ffmpeg -i video.mp4 -i audio.wav -map 0:v -map 1:a -c:v copy -shortest output.mp4

  • -map选项允许您手动选择流/曲目。查看FFmpeg Wiki: Map了解更多信息。
  • 此示例使用-c:v copy to stream copy (多路复用)视频。不会对视频进行重新编码。质量得到了保证,而且处理速度很快。
    • 如果您的输入音频格式与输出格式兼容,则将-c:v copy更改为-c copy以流式复制视频和音频。
    • 如果要重新编码视频和音频,请删除-c:v copy / remove

  • -shortest选项将使输出的持续时间与最短输入的持续时间相同。

添加音频

代码语言:javascript
运行
复制
ffmpeg -i video.mkv -i audio.mp3 -map 0 -map 1:a -c:v copy -shortest output.mkv

  • -map选项允许您手动选择流/曲目。查看FFmpeg Wiki: Map了解更多信息。
  • 此示例使用-c:v copy to stream copy (多路复用)视频。不会对视频进行重新编码。质量得到了保证,而且处理速度很快。
    • 如果您的输入音频格式与输出格式兼容,则将-c:v copy更改为-c copy以流式复制视频和音频。
    • 如果要重新编码视频和音频,请删除-c:v copy / remove

  • -shortest选项将使输出的持续时间与最短输入的持续时间相同。

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

使用来自video.mkv的视频。使用amerge filter混合来自video.mkvaudio.m4a的音频

代码语言:javascript
运行
复制
ffmpeg -i video.mkv -i audio.m4a -filter_complex "[0:a][1:a]amerge=inputs=2[a]" -map 0:v -map "[a]" -c:v copy -ac 2 -shortest output.mkv

有关详细信息,请参阅FFmpeg Wiki: Audio Channels

生成静默音频

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

代码语言:javascript
运行
复制
ffmpeg -i video.mp4 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 \
-c:v copy -shortest output.mp4

另请参阅

票数 425
EN

Stack Overflow用户

发布于 2012-09-24 10:08:00

mp3音乐到wav

代码语言:javascript
运行
复制
ffmpeg -i music.mp3 music.wav

截断以适合视频

代码语言:javascript
运行
复制
ffmpeg -i music.wav -ss 0 -t 37 musicshort.wav

混合音乐和视频

代码语言:javascript
运行
复制
ffmpeg -i musicshort.wav -i movie.avi final_video.avi
票数 27
EN

Stack Overflow用户

发布于 2017-05-23 21:21:02

如果输入的视频有多个音轨,您需要添加多个音轨,则使用以下命令:

代码语言:javascript
运行
复制
ffmpeg -i input_video_with_audio.avi -i new_audio.ac3 -map 0 -map 1 -codec copy output_video.avi

-map 0意味着复制(包括)来自第一个输入文件(input_video_with_audio.avi)的所有流,而-map 1意味着包括来自第二个输入文件(new_audio.ac3)的所有流(在本例中是一个流)。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11779490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档