当前位置: 首页 > article >正文

linux下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 instal

2.下载安装FFmpegl

FFmpeg的安装包可以从FFmpeg下载
安装:开启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


http://www.kler.cn/news/148891.html

相关文章:

  • 2023极客大挑战-AGRT战队wp
  • 多线程(补充知识)
  • [nlp] tokenizer
  • 与中通支付对接
  • 前端 vue 面试题(二)
  • leaflet对线设置渐变色
  • LLM大语言模型
  • 深入redis过程-命令
  • 代码随想录算法训练营第四十九天【动态规划part10】 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
  • Android:从源码看FragmentManager如何工作
  • Python内置类属性`__name__`属性的使用教程
  • WPF中DataGrid解析
  • Webshell混淆免杀的一些思路
  • 成绩排序(练习链表)
  • 《数据结构、算法与应用C++语言描述》-二叉树与其他树-二叉树的C++实现-设置信号放大器与并查集问题
  • Positive Technologies 公司发布了一种保护容器环境的产品 PT Container Security
  • Android 13 - Media框架(14)- OpenMax(四)
  • 开源C++智能语音识别库whisper.cpp开发使用入门
  • Pytest自动化测试框架完美结合Allure
  • 微服务--05--配置管理
  • 大模型训练为什么用A100不用4090
  • Python编写的爬虫为什么受欢迎?
  • 【PHP】MySQL简介与MySQLi函数(含PHP与MySQL交互)
  • Android手电筒、闪光灯、torch、flash
  • CMake中的变量: CTest,CPack,CMake内部定义的变量
  • 封装websocket并在vuejs中调用
  • 动态库与静态库
  • Python与设计模式--设计原则
  • 九、LuaTable(表)
  • Nginx访问控制