linux下ffmpeg安装实现音频拼接

前言:因为需要支持MP3格式,需要提前安装MP3编码库,作者在这里走的弯路,重新编译的ffmpeg

1.下载安装MP3编码库

因为FFmpeg默认只支持mp3的解码,不支持mp3编码。如果想把提取出来的音频保存为mp3格式肯定就需要mp3格式的编码库。因此,想输出mp3文件,需要借助第三方的mp3编码库。这里采用LAME编码库,即Lame Aint an MP3 Encoder(A high quality MP3 encoder). LAME库可以从http://lame.sourceforge.net/下载到。我这里下载的时候选择的版本是3.98,文件名为lame-398.tar.gz,大约1M多。具体版本的选择参考后面编译ffmpeg时候的提示。访下载可能需要翻墙,我上传到CSDN了,可以在这里找到http://download.csdn.net/detail/gobitan/9397485

tar zxvf lame-398.tar.gz
cd lame-398
./configure
make && make install

2.下载安装FFmpeg

FFmpeg的安装包可以从http://ffmpeg.org/下载
安装:开启mp3编码库

./configure --enable-shared --enable-libmp3lame --prefix=/usr/local/ffmpeg
make && make install

编译FFMPEG时,出现了 ffmpeg yasm not found, use –disable-yasm for a crippled build,是因为 FFMPEG为了提高编译速度,使用了汇编指令,如果系统中没有yasm指令的话,就会出现上述的问题。
解决办法是:
A 如果是Windows系统, 从网上下载一个 yasm.exe 并安装在mingw/bin下面,重新编译,就不会出现该错误了;
B 如果是Linux系统,则更简单,直接在终端输入 sudo apt-get install yasm (centos 输入sudo yum install yasm),安装好后,重新编译就 OK了
测试:

/usr/local/ffmpeg/bin/ffmpeg

这时候出现ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot open shared object file: No such file or directory的错误.(部分高版本缺少的是libavdevice.so.54)

我们尝试在系统中找到这个库:

find / -name "libavdevice.so.56"
echo '/usr/local/ffmpeg/lib/libavdevice.so.56' >> /etc/ld.so.conf
ldconfig

现在已经全部搞定。

3.一些命令

1).音频合并(两个音频会重叠)
ffmpeg -i first.mp3 -i second.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 third.mp3
2).音频拼接

二个

/usr/local/ffmpeg/bin/ffmpeg -i d1.mp3 -i d2.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] j5.mp3

三个

/usr/local/ffmpeg/bin/ffmpeg -i 片头.wav -i 内容.WAV -i 片尾.wav -filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]' -map [a] 合成.wav

3).转pcm格式

ffmpeg -i dd1.mp3 -f s16le -acodec pcm_s16le -b:a 16 -ar 8000 -ac 1 p1.raw
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值