Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2346143
  • 博文数量: 141
  • 博客积分: 3552
  • 博客等级: 中校
  • 技术积分: 4148
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-15 14:39
个人简介

熟悉Linux下程序设计及各种应用程序 熟悉C Language 熟悉Glusterfs、FFmpeg、CDN 系统设计,计算机图形系统设计、分布式程序设计 目前主要研究方向:流媒体

文章分类

全部博文(141)

分类: LINUX

2013-10-07 19:37:24

使用ffmpeg实现合并多个音频为一个音频的方法

可以使用ffmpeg的filter功能来进行这个操作,而且效果很好

amerge也可以实现,但是这里就介绍一下使用amix来做的方法
ffmpeg的filter功能强大的功能能够满足几乎所有的音视频操作,包括合并音频
ffmpeg可以支持多输入通道,也可以支持多输出通道,合并多音频的功能就使用多输入通道,单输出通道,所以大概的形式如下:

ffmpeg -i INPUT -i INPUT -i INPUT output
如果想用amix,这个参数是-filter_complex中的参数,可以这么用
-filter_complex amix=inputs=2:duration=first:dropout_transition=2
整条合并多音频的的命令行即如下
?

ffmpeg -i ~/Music/iTunes/iTunes\ Media/Music/久石/热门单曲-天空之城/天空之城.mp3  -i /Users/StevenLiu/Music/iTunes/iTunes\ Media/Music/Linda\ Ronstadt/Brokeback\ Mountain\ Soundtrack/It\'S\ So\ Easy.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 a.mp3
上面的命令为将天空之城与It’s So Easy合并成一个a.mp3文件,整个过程如下:
 
合并完成之后,可以查看一下a.mp3文件的文件信息:
 
如此,多音频合并为一个音频文件的操作即成功,可以使用播放器播放一下试试
 
可惜了,音频是听的,图看不出来,我听到的是两个音频合并成了一个mp3,现在播得有点乱,如果是一个放背景音乐,一个放录音的话效果可能好些


Reference: 
阅读(49708) | 评论(1) | 转发(3) |
给主人留下些什么吧!~~

nanqingzhe2013-10-08 11:17:59

ffmpeg的新版用的是filter,老版的话涉及到resample ,稍新版的有swr_convert,不过比较坑的是音频解码再重采样的话需要用到fifo,否则取不到正确的数据。

目前的新版用filter没有研究过,看起来ffmpeg.c里面用的是它转的,应该很强大