linux下的ffmpeg默认情况下是不支持amr格式解码的,因此考虑手动编译ffmpeg源代码增加解码器以便支持amr文件格式的解码。

系统环境:Suse 64bit OS
前期准备:
1、  下载ffmpeg源代码:http://ffmpeg.org/download.html,这里选择版本为0.11.1
2、  下载OpenCORE AMR:http://sourceforge.net/projects/opencore-amr/,这里选择的版本为0.1.3。

并将下载的文件存放与/home/ffmpeg目录下,以root用户登录系统。

具体步骤:

1、  编译安装opencore-amr,这里需要注意的是在执行configure命令的时候要添加--enable-shared=no --enable-static=yes参数,其主要作用是禁止生产动态链接库、允许生产静态库。

chmod 755 opencore-amr-0.1.3.tar.gz

tar -xzvf opencore-amr-0.1.3.tar.gz

cd opencore-amr-0.1.3

./configure --enable-shared=no --enable-static=yes

make

make install

2、  编译安装ffmpeg,注意configure命令后面所要添加的参数,可以通过执行configure --help命令查看后面所允许带的参数

chomd 755 ffmpeg-0.11.1.tar.gz

tar -xzvf ffmepg-0.11.1.tar.gz

cd ffempg

./configure --enable-gpl --enable-version3 --enable-nonfree --disable-ffplay --disable-ffprobe --disable-ffserver --enable-libopencore-amrnb --enable-libopencore-amrwb --prefix=/home/ffmpeg/target

make

make install

以上命令成功执行后将会在/home/ffmpeg/target目录下的bin目录得到ffmpeg文件,该文件已经包含amr解码器

3、  测试:

chmod 755 ffmpeg

./ffmpeg -I PA003.wav -ar 8000 -ab 12.2k -ac 1 target.amr

4、  注意事项:

a)         以上方式都是通过静态库的形式编译,采用静态库的形式编译的好处在于:编译后的可执行文件ffmpeg可以不依赖于amr解码器,简单地说,可执行文件已经将amr解码器包含在内了。

b)         ffmpeg在编译时候会优先查找amr解码器的动态链接库,如果没有找到,则查找amr解码器的静态库。在第一步中如果没有禁止amr生成动态链接库,则ffmpeg将采用amr的动态链接库进行编译,其缺点是,编译后的可执行文件ffmpeg将依赖于amr的动态链接库,如果系统的动态链接库搜索路径LD_LIBRARY_PATH不包含amr动态链接库所在路径,则ffmpeg将会报错,无法正常工作。

c)         amr编译安装时不建议添加prefix=XXX参数(./configure)修改amr安装路径,这样ffmpeg在编译安装时将出现找不到amr解码器的情况。

转载于:https://www.cnblogs.com/kasuo/archive/2013/06/06/3121741.html

ffmpeg对amr格式编解码相关推荐

  1. 基于FFMPEG 的跨平台视频编解码研究

    第33卷 第11期 2011年11月 武 汉 理 工 大 学 学 报 JOURNALOF WUHANUNIVERSITYOFTECHNOLOGY Vol.33 No.11 췍췍췍췍췍췍췍췍췍췍췍췍췍췍 ...

  2. Android amr语音编解码解惑 【转http://blog.csdn.net/xyz_lmn/article/category/922246】

    Android amr语音编解码解惑 androidAndroidARMarm声音采集 关于android中的语音压缩编码,今天算是好好的研究了一下,有了小小的心得: 首先关于采集到得声音源的格式是P ...

  3. 嵌入式Linux下基于FFmpeg的视频硬件编解码[图]

    转自:http://tech.c114.net/167/a674033.html 摘要: 对FFmpeg多媒体解决方案中的视频编解码流程进行研究.结合对S3C6410处理器视频硬件编解码方法的分析,阐 ...

  4. 使用FFMPEG进行音视频编解码(C++) 0.简介

    FFMPEG介绍 FFMPEG是一个开源的编解码软件,读作"ef ef em peg".官方网址是:http://ffmpeg.org/.FFMPEG几乎支持所有的格式,当然了像一 ...

  5. 嵌入式Linux下基于FFmpeg的视频硬件编解码

    嵌入式Linux下基于FFmpeg的视频硬件编解码[图] http://www.c114.net ( 2012/3/1 15:41 ) 摘要: 对FFmpeg多媒体解决方案中的视频编解码流程进行研究. ...

  6. 在java中使用ffmpeg将amr格式的语音转为mp3格式

    ffmpeg是一个非常强大的音视频处理工具,官网是:http://ffmpeg.org/ . 由于ffmpeg在windows上和linux系统上的执行文件不一样(Windows上不需要安装ffmpe ...

  7. iOS之ffmpeg开发音视频编解码概要、SDL

    官网:http://ffmpeg.org/documentation.html http://ffmpeg.org/ffmpeg.html 简介:https://blog.csdn.net/qq_36 ...

  8. java amr wav_AMR编解码库的实现

    基于opencore-amr实现amr-nb编码和解码,在Android上完成wav文件与amr文件格式的相互转换.wav和amr文件读写部分主要参考了opencore中的test文件夹下的例子,以及 ...

  9. 【ffmpeg+cuda实现硬编解码】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.先安装CUDA+NVCODEC 二.编译带NVCODEC的FFMPEG 1.安装环境 2.开始编译 3.验证 总结 ...

最新文章

  1. ARCGIS开发中类型XXX在未被引用的程序集中定义的解决办法
  2. linux重启kvm服务命令,linux中kvm的安装及快照管理
  3. mysql2014授权设置_mysql权限管理(2014-09-15)
  4. 2782: [HNOI2006]最短母串
  5. I2C与SPI通信总线协议
  6. 用 扩展事件抓取过去的死锁
  7. 输入一个十进制数N,将它转换成R进制数输出(运用递归实现)
  8. linux 内核移植(七)――rest_init函数分析
  9. 使用 AppleALC 驱动黑苹果声卡
  10. 软件测试实验二条件覆盖和条件组合覆盖
  11. 马悦凌:从初级护士到“民间奇医”[7]
  12. python读取yml文件
  13. RationalDMIS7.0 编程测量快速入门教程(山涧果子)
  14. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(一)
  15. 新手使用python易踩坑语法:if语句中or 与in连用
  16. SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
  17. 使用WPS生成二维码,手机扫码访问主机的资源
  18. 关于新光源建设的一些想法
  19. unity打包安卓显示手机顶部状态栏
  20. python按哪个键运行代码_python运行快捷键是哪个

热门文章

  1. java 文件crc校验_Java 对文件进行 CRC32 校验
  2. 偏微分方程的正问题和逆问题(inverse problem)
  3. java机器PDF_机器人制作入门(第3版)PDF 下载
  4. 字母三角形c语言ABBBCCCCC,C语言输出ABBBCCCCCDDDDDDDCCCCCBBBA
  5. java 传绝对路径无效_【Java并发005】原理层面:volatile关键字全解析
  6. 关于使用layer弹出框展现echarts不显示的问题
  7. pytorch 绘制多个算法loss_PyTorch线性模型和梯度下降
  8. mysql 搜索正则表达式_mysql必知必会--用正则表达式 进行搜索
  9. 证书服务器web注册,无法通过 Web 注册请求证书 - Windows Server | Microsoft Docs
  10. android调用日历库,Android学习教程之日历库使用(15)