1.安装ffmpeg
Mac:
不需要安装,直接在官网下载 http://ffmpeg.org/download.html
下载地址:https://evermeet.cx/ffmpeg/(免安装版,将其copy到自己的目录,直接可以用)
ffmpeg安装后,输入ffmepg -version命令,查看是否支持opencore-amr的解码器
Linux:
下载地址:https://www.johnvansickle.com/ffmpeg/
我选择的是: x86_64 build(适合自己的服务器)也是免安装版
2.amr格式需要opencore-amr
其下载地址:https://sourceforge.net/projects/opencore-amr/
amr编译方法:参考自:http://blog.csdn.net/tylz04/article/details/9041739

其编译方法;chmod 755 opencore-amr-0.1.3.tar.gz     //改变文件操作权限tar -xzvf opencore-amr-0.1.3.tar.gz     //解压文件cd opencore-amr-0.1.3       //进入到opencore-amr文件夹内./configure --enable-shared=no --enable-static=yes  //配置make        //编译make install

ffmpeg会自己寻找解码器
ffmpeg查看是否支持opencore-amr:
终端输入: ffmpeg查看 –enable-libopencore-armnb和–enable-libopencore-amrwb表示支持opencore-amr解码器

configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-libzvbi --enable-version3 --disable-ffplay --disable-indev=qtkit

3.mp3与wav转amr代码

/** ffmpeg的安装目录,用于启用ffmpeg */
private static final String ffmpeg = "/usr/local/ffmpeg-3.3-64bit-static/ffmpeg";
/*** -ab(-b:a) bitrate 设置音频码率* -ar freq 设置音频采样率* -c:a(-acodec) 设置声音解码器* -y 覆盖输出文件,若果源文件已经存在,那么不经提示,直接覆盖* -vol 音量大小* -ac (声道数1和2)* @param sourcePath 源文件地址,输出位置:源文件文件夹内,只改变文件格式*/
public static boolean changeToAmer(String sourcePath){try {String prefix = sourcePath.substring(0,sourcePath.lastIndexOf("."));String commend = ffmpeg + " -i " + sourcePath + " -c:a libopencore_amrnb -ac 1 -ar 8000 -b:a 7.95K -y " + prefix + ".amr";VideoUtilsExt.executeCommend(commend);} catch (IOException e) {e.printStackTrace();return false;}return true;
}public static void executeCommend(String commend) throws IOException{System.out.println(commend);Process process = new ProcessBuilder(Arrays.asList(commend.split(" "))).redirectErrorStream(true).start();new MyPrintStream(process.getInputStream()).start();try {process.waitFor();} catch (InterruptedException e) {e.printStackTrace();}}

补充:MyPrintStream内部类,其实就是将视频转换的获得的流打印出来(包括ffmeg相关信息,命令行,以及转换过程,异常信息等)

class MyPrintStream extends Thread{InputStream iStream = null;public MyPrintStream(InputStream iStream) {this.iStream = iStream;}@Overridepublic void run() {try{int r = 0;while ((r = iStream.read())!= -1) {System.out.print((char)(r));}}catch(Exception e){e.printStackTrace();}}
}

另外,如果视频转换的并发量比较大,可以创建一个线程池,将转换代码放到线程里面完成。

ffmpeg 音频转amr相关推荐

  1. ffmpeg PCM转AMR格式

    上次说到安装了ffmpeg并且将文件从pcm转到mp3然后到amr格式,当时我听了一下pcm和转后的文件都卡卡做声,就以为给的pcm文件就是这么回事,但今天跟固件端同事调试发算不是这么的,pcm文件是 ...

  2. 【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )

    文章目录 I . FFMPEG 播放视频流程 II . FFMPEG 音频重采样流程 III . FFMPEG 音频重采样 IV . FFMPEG 初始化音频重采样上下文 SwrContext V . ...

  3. FFmpeg音频处理——音频混合、拼接、剪切、转码

    本文是一篇关于 FFmpeg 音频处理的文章,转载详情 可见文章末尾~~ 接触FFmpeg有一段时间了,它是音视频开发的开源库,几乎其他所有播放器.直播平台都基于FFmpeg进行二次开发. 本篇文章来 ...

  4. ffmpeg中音频解码方法(附代码)+ffmpeg音频解码播放速度快的问题(随手笔记,以供查阅)

    最近在做一款取名为变速不变调播放器的时候,解码音频遇到了些问题(ffmpeg音频解码播放速度快的问题),网络上的方法对绝大多数的音视频文件有效,但是对于某些音频会有问题,比如某些ADPCM编码的WAV ...

  5. ffmpeg 音频解码一

    1. ffmpeg 视频解码一 2. ffmpeg 视频解码二 3. ffmpeg 音频解码一 4. ffmpeg 音频解码二 5. ffmpeg 音视频解码 6. ffmpeg 视频编码一 7. f ...

  6. ffmpeg 音频解码二

    1. ffmpeg 视频解码一 2. ffmpeg 视频解码二 3. ffmpeg 音频解码一 4. ffmpeg 音频解码二 5. ffmpeg 音视频解码 6. ffmpeg 视频编码一 7. f ...

  7. FFMPEG音频解码浅析

    结合各种资料和自己的理解,估计有些浅显. FFMPEG解码流程: 1. 注册所有容器格式和CODEC: av_register_all() 2. 打开文件: av_open_input_file() ...

  8. FFmpeg 音频转换

    转: FFmpeg的音频处理详解 ffmpeg音频处理--pcm格式与resample(重采样) ffmpeg音频pcm重采样48000到44100 FFmpeg学习4:音频格式转换 PCM数据格式

  9. FFmpeg音频播放器(8)-创建FFmpeg播放器

    原文地址::https://www.jianshu.com/p/73b0a0a9bb0d 相关文章 1.FFmpeg音频解码播放----https://www.jianshu.com/p/76562a ...

  10. 音频-ffmpeg音频格式转换

    ffmpeg音频转换采样率指令: 例:PCM采样率48k转换成32k(有符号16bit,小端,单声道) ffmpeg -f s16le -ar 48000 -i say_48.pcm -f s16le ...

最新文章

  1. C++ 笔记(12)— 判断(if/if...else/switch、条件运算符)
  2. R语言数据描述性统计(Descriptive statistics)实战:数据全局描述信息、数值数据的描述性统计(Numerical data)、离散型数据的描述性统计(Categorical)
  3. asp.net分页控件使用详解【附实例下载】
  4. Python3.6 安装 statsmodels
  5. 10 在Spring Cloud中使用Hystrix
  6. 【PAT乙级】1024 科学计数法 (20 分)
  7. 数据可视化(推荐Tableau、 PowerBI 、FineBI、Echarts、ggplot、PYTHON、R)---数据分析领域的万金油技能
  8. java slot_LocalVariableTable之 Slot 复用
  9. 基于单片机的光立方设计
  10. Flash动画制作实例教程
  11. 事务的四大特性(ACID)
  12. java table 增加行_使用POI给word中的表格增加行
  13. Python自然语言处理——nltk库入门之文本分词(英文)
  14. 微信小程序web-view 外部引用h5页面调用摄像头录制视频 配有提示音
  15. 泰坦尼克号沉船数据分析与可视化、数据建模与分类预测【Python | 机器学习-Sklearn】
  16. 超详细Openstack核心组件——Placement部署
  17. C#实例练习3:程序流程控制(2)
  18. OPNET报错总结及注意事项
  19. nas 软件 性能测试,理论读写性能测试
  20. C# 获取字符串字节长度

热门文章

  1. 数值运算pythonmopn_python – 计算每列的Pandas DataFrame的自相关性
  2. 面向对象软件测试开题报告,软件测试开题报告范文.doc
  3. 用java编写简单的仓库管理_仓库管理系统+可视化界面java编写
  4. Python贴吧爬虫
  5. 关于84坐标系与54坐标系转换问题
  6. Grafana v5.2 设置
  7. 数学建模——模拟退火优化投影寻踪
  8. js计算100以内所有奇数的和
  9. 太极周易罗盘计算机器人图片,周易八卦--罗盘的使用
  10. 弹性系数和线径的计算公式_弹簧力的计算公式