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. 递归/归并:count of smaller numbers求逆序数
  2. “搞垮” 微博服务器?每天上亿条用户推送是如何做到的
  3. 发布在《30天自制操作系统》之前的帮助阅读贴
  4. 15-数据结构探险系列-图篇
  5. smarty模板引擎原理解析
  6. 浅析影响网站建设的因素有哪些?
  7. ClickHouse【环境搭建 02】设置用户密码的两种方式(明文+SHA256)及新用户添加及只读模式 Cannot execute query in readonly mode 问题解决
  8. Docker生成镜像的两种方式
  9. hybris commerce storefront的产品搜索功能
  10. Quartz Scheduler插件–隐藏的宝藏
  11. 自动添加html结束标志,HTML:包含或排除可选的结束标记?
  12. electron 入坑记
  13. python内置函数详解总结篇_Python内置函数详解——总结篇
  14. iOS版微信跟上了!已支持改微信号,修改后好友不会收到提醒
  15. 270 扩展固态硬盘_新款macbook扩展坞,内置固态硬盘盒,支持NVME M2协议,一秒传输1GB...
  16. Update批量更新
  17. P3717 cover
  18. 微云解析直链php源码,微云分享文件直链解析源码
  19. 利用计算机技术全面规划供应,英语翻译《物流术语》国家标准对供应链管理的定义:利用计算机网络技术全面规划供应链中的商流、物流、信息流、资金流等,并进行...
  20. 魔兽怀旧卓越服务器微信,《魔兽世界》怀旧服火爆超预期,部分服务器排队简直可怕...

热门文章

  1. 关于Date类型、时间戳格式转换方法
  2. H5 存储数据sessionStorage
  3. uni-app条件编译:#ifdef #ifndef #endif
  4. linux中info功能是什么意思,Linux中的info指令
  5. x内存满白苹果解决_苹果最佳MacBook和Mac:顶级苹果台式机和笔记本电脑
  6. c语言context窗口,如何在gtk3中为窗口小部件设置特定的css类? (C)
  7. html5 replace,js replace 与replaceall实例用法详解
  8. java容易搞混的技术_Java中比较容易混淆的知识点
  9. mysql skip slave_MYSQL replication slave-skip-errors 详解
  10. 计算机程序设计 大作业 vb,成人《VB程序设计》标准化大作业(答案)1