转载:http://blog.csdn.net/sanshipianyezi/article/details/78742621

转载:http://blog.csdn.net/szfhy/article/details/50441162

在linux下进行wav和amr的相互转换,如果是amr转为wav只需要ffmpeg即可 但是若wav转为amr则需要依赖ffmpeg和opencore_amrnb库。 
完整下载地址:http://download.csdn.net/download/sanshipianyezi/10149789

1.Linux下安装ffmpeg

ffmpeg下载地址:https://www.johnvansickle.com/ffmpeg/ 

release: 3.4 也是免安装版(只需解压) 只需要下载放到/usr/local/目录下

//解压ffmpeg
tar -xvf ffmpeg-release-64bit-static.tar.xz
  • 1
  • 2

2.安装opencore-amr

opencore-amr库下载地址:https://sourceforge.net/projects/opencore-amr/ 

把下载的opencore-amr-0.1.5.tar.gz放到/usr/local/目录下

//编译方法
chmod 755 opencore-amr-0.1.5.tar.gz //改变文件操作权限
tar -xzvf opencore-amr-0.1.5.tar.gz //解压文件
cd opencore-amr-0.1.5 //进入到opencore-amr文件夹内
./configure --enable-shared=no --enable-static=yes //配置
make //编译
make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.进入ffmpeg下实现wav转amr和amr转wav

1.wav转amr

//wav转amr
#pwd
/usr/local/ffmpeg-3.4-64bit-static/
[root@localhost ffmpeg-3.4-64bit-static]# ./ffmpeg -i hello1.wav -c:a libopencore_amrnb -ac 1 -ar 8000 -b:a 7.95k -y 1.amr
  • 1
  • 2
  • 3
  • 4
  • 5

2.amr转wav

//amr转wav
./ffmpeg -i 1.amr 1.wav
  • 1
  • 2

4.java调用

import java.io.IOException;

/**
* wav文件转amr工具类
* @author sanpianyezi
*
*/
public class Wav2AmrUtil { //ffmpeg执行目录
private final static String FFMPEG_PATH ="/usr/local/ffmpeg-3.4-64bit-static/ffmpeg"; /**
* 将一个wav文件转换成amr文件
*
* @param wavPath
* @param amrPath
* @throws IOException
* @retuen boolean
*/
public static boolean Wav2Amr(String wavPath,String amrPath) throws IOException {
try{
String shellContent = FFMPEG_PATH + " -i " + wavPath + " -c:a libopencore_amrnb -ac 1 -ar 8000 -b:a 7.95k -y "+amrPath;
System.out.println("wav2amr执行命令行为:"+shellContent);
Runtime.getRuntime().exec(shellContent);
System.out.println("wav2amr执行成功");
return true;
}catch(Exception e){
System.out.println("wav2amr执行失败:"+e.getMessage());
return false;
}
} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

//异常说明 
我在安装过程中出现configure: error: C++ compiler cannot create executables问题 
这后来查了一下相关资料后才发现是gcc的组件没有装全,我之前安装gcc时是通知yum方式: 
yum install gcc gcc++ 
这样的话还是有组件没有安装完整的。再执行一下这个命令就可以解决问题。 
yum install gcc gcc-c++ gcc-g77

这下应该没有什么问题了。

引用参考:http://blog.csdn.net/u010018421/article/details/71280099

Linux下ffmpeg的wav与amr相互转换的更多相关文章

  1. Linux下ffmpeg安装与开发配置

    Linux下ffmpeg安装与开发配置   1. ffmpeg安装 安装环境: ubuntu 12.04 (1)删除已安装的文件,避免冲突 sudo apt-get remove ffmpeg x26 ...

  2. Linux下FFmpeg的安装编译过程【转】

    本文转载自:http://www.linuxidc.com/Linux/2013-06/85628.htm 详细说下在Linux下FFmpeg的安装编译过程.参考 Ubuntu 10.04安装编译FF ...

  3. linux下FFmpeg编译生成ffplay

    1.确认Makefile中指定的config.mak(在ffmpeg根目录下)中:CONFIG_FFPLAY=yes,如果不是需要重新./configure 该处还有ffmpeg.ffprobe.ff ...

  4. Linux下ffmpeg添加Facebook/transform代码块实现将全景视频的球模型转换成立方体模型

    Facebook事实上已开始在平台中支持360度全景视频的流播,但公司对此并不满足.其工程师更是基于锥体几何学设计出了一套全新的视频编码,号称最高能将全景视频的文件大小减少80%.(VR最新突破:全景 ...

  5. linux下ffmpeg环境搭建记录

    1.Linux下安装yasm 官网下载:http://yasm.tortall.net/Download.html tar -zvxf yasm-1.3.0.tar.gz cd yasm-1.3.0/ ...

  6. Linux下ffmpeg的完整安装

    最近在做一个企业项目, 期间需要将用户上传的视频转成flv格式或mp4格式并用flash插件在前端播放, 我决定采用ffmpeg (http://www.ffmpeg.org/ )实现. 当然以前也用 ...

  7. linux 下ffmpeg和mencoder安装

    ffmpeg和mencoder是进行视频转换和视频抽帧的重要开源工具,支持linux和windows环境下的视频转换和视频抽帧操作.本文章记录在linux这两者工具的安装过程.ffmpeg集成视频编码 ...

  8. linux下ffmpeg安装

    1.ffmpeg下载地址: http://www.ffmpeg.org/download.html 2.解压 1 $ tar zvfj ffmpeg.tar.bz2 这里作者假设已经重命名为ffmpe ...

  9. Linux下ffmpeg交叉编译

    1 获取源代码 git clone -b "branch" https://git.ffmpeg.org/ffmpeg.git "branch" 可以是以下的m ...

随机推荐

  1. UVa 11466 - Largest Prime Divisor

    題目:給你一個整數n(不超過14位).求出他的最大的素數因子.假设仅仅有一個素數因子輸出-1. 分析:數論. 直接打表計算10^7內的全部素數因子,然後用短除法除n.記錄最大的因子就可以. 假设最後下 ...

  2. 扩展欧几里德 poj1061 青蛙的约会

    扩展欧几里德很经典.可是也有时候挺难用的.一些东西一下子想不明确.. 于是来了一个逆天模板..仅仅要能列出Ax+By=C.就能解出x>=bound的一组解了~ LL exgcd(LL a, LL ...

  3. CSS学习(十六)-HSLA颜色模式

    一.理论: 1.HSLA颜色模式 a.HSLA在HSL基础上添加了不透明度,值越大透明度越低 b.HSLA颜色模式的浏览器兼容性和HSL一样,仅仅有较新版本号的主流浏览器才支持 2.RGBA和HSLA ...

  4. Swift-理解值类型

    在这里,我们要讲讲值类型和写时复制.在 swift 的标准库中,所有的集合类型都使用了写时复制.我们在本篇文章中看一下写时复制如何工作的,并且如何实现它. 引用类型 使用 swift 的 Data 和 ...

  5. js设计模式-命令模式

    命令模式是一种组织型模式,主要用在把调用对象(用户界面.API和代理等)与实现操作的对象隔离开.也就是说 ,凡是两个对象间的互动方式需要更高的模块化程度时都可以用到这种模式. 命令模式的好处:1.提高 ...

  6. 2018最新WordPress缩略图设置方法

    缩略图设置的方法很多,但都不全面,且很多教程已经失效了,其中使用插件来实现,可是那些插件都使用过都不能实现效果,所以我整理了一份使用代码实现缩略图的方法. 1.找到网站根目录/wp-content/t ...

  7. javascript中对象属性搜索原则

    为什么通过对象就能访问到原型中的属性或者方法? 属性搜索原则: 1 首先会在对象本身查找有没有该属性,如果有直接返回 2 如果没有,此时就会在构造函数中查找通过this给对象添加的成员中有没有,如果有 ...

  8. SqlServer与MySql 系统表查询自建表数据

    SqlServer: SELECT * FROM sys.sysobjects WHERE type='U' ORDER BY name SELECT * FROM sys.syscolumns WH ...

  9. vim 常用操作笔记

    跳转最后一行 :$ 或 shift+g 跳转第一行 :1 或 gg 设置自动换行 :set wrap 设置不自动换行 :set nowrap

  10. ie6 中文字符编码 出现的问题解决

    0 前言   公司要求网页要支持ie6.7.8,结果我的设备在ie7.8.9均工作正常,而在ie6时就出现各种奇怪的错误,在这个背景下,开始动手解决网页不兼容ie6的情况.   1 搭建ie6的实验平 ...