• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

在ffmpeg中怎么合并音频和视频文件?

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我想合并音频文件(.wav或.au格式)与视频文件(.mp4格式)。

如何做到这一点呢? 了解到ffmpeg命令应该可以做合并,但是具体怎么做?

最佳解决方法

下面分三中情形分别说明:

合并音频和视频,给音频重新编码

例子来自this blog entry,下面的命令做了更改,使用了最新的语法:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4

在这里,我们假定视频文件没有包含任何音频流,并且希望具有与输入格式相同的输出格式(此处为MP4)。

上述命令转码音频,因为MP4不能携带PCM音频流。如果需要,可以使用任何其他所需的音频编解码器,更多信息,请参阅AAC Encoding Guide。

如果您的音频或视频流较长,可以添加-shortest选项,以便一个文件结束后ffmpeg将停止编码。

合并音频和视频,复制音频(不需要重新编码)

如果输出容器可以处理(几乎)任何编解码器(如MKV),那么可以简单地复制音频和视频流:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

合并音频和视频,替换音频流

如果输入的视频已经包含音频,并且想要替换它,需要告诉ffmpeg采取哪个音频流:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4

map选项使ffmpeg只使用来自第一个输入的第一个视频流和来自第二个输入的第一个音频流作为输出文件。

次佳解决方法

编码webms时也遇到了这个问题。如果音频流比视频流长,则必须剪切它。否则视频播放完时,音频继续播放,最后一个视频帧会以静止图像呈现直到音频结束。

要剪切任何一个流,可以在每个-i “file.ext”之前使用-ss [hh:mm:ss] -t [ss]。

  • -ss […]定义要切割的起点
  • -t […]以秒为单位定义段的长度

示例如下:

ffmpeg.exe -ss 00:00:10  -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4

参考文献

  • How to merge audio and video file in ffmpeg


鲜花

握手

雷人

路过

鸡蛋
专题导读
上一篇:
在TensorFlow中,Session.run()和Tensor.eval()有什么区别?发布时间:2022-05-14
下一篇:
HTTPS URL是否被加密?发布时间:2022-05-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap