天天看点

Linux系统安装ffmpeg转码音频

java在Linux下将amr转mp3方法

原文链接:https://blog.csdn.net/zshanhu/article/details/79416064

展开

1. 首先安装系统编译环境

 yum install -y automake autoconf libtool gcc gcc-c++  #CentOS

2. 编译所需源码包

#yasm:汇编器,新版本的ffmpeg增加了汇编代码

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

tar -xzvf yasm-1.3.0.tar.gz

cd yasm-1.3.0

./configure

make

make install

#lame:Mp3音频解码

wget http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

tar -xzvf lame-3.99.5.tar.gz

cd lame-3.99.5

./configure

make

make install

#amr支持

wget http://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz

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

cd opencore-amr-0.1.3

./configure

make

make install

#amrnb支持

wget http://www.penguin.cz/~utx/ftp/amr/amrnb-11.0.0.0.tar.bz2

tar -xjvf amrnb-11.0.0.0.tar.bz2

cd amrnb-11.0.0.0

./configure

make

make install

#amrwb支持

wget http://www.penguin.cz/~utx/ftp/amr/amrwb-11.0.0.0.tar.bz2

tar -xjvf amrwb-11.0.0.0.tar.bz2

cd amrwb-11.0.0.0

./configure

make

make install

#ffmpeg

wget http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2

tar -xjvf ffmpeg-2.5.3.tar.bz2

cd ffmpeg-2.5.3

./configure --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared

make

make install

#加载配置

vi /etc/ld.so.conf

在文件末尾加上:/usr/local/lib

如:

[[email protected] aaa]# more /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/lib

执行命令:ldconfig

#最后写入config后,终端运行ffmpeg命令,出现success和已安装的扩展,则运行成功。

执行ffmpeg

3.使用方法

ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr  #MP3转换AMR

ffmpeg -i 1.amr 1.mp3                 #AMR转换MP3

4.java代码 :

        public class ChangeAudioFormat {

public static void main(String[] args) throws Exception {

String path1 = "/opt/1519895395744.amr";  

           ​    ​ String path2 = "/opt/1519895395744.mp3";  

           ​    ​ amrToMp3(path1, path2);  

}

public static boolean amrToMp3(String localPath, String targetFilePath) {  

        try {  

            System.out.println("**************  ffmpeg ****************");  

            java.lang.Runtime rt = Runtime.getRuntime();  

            String command = "ffmpeg -i " + localPath + " " + targetFilePath;  

            System.out.println("command = " + command);  

            Process proc = rt.exec(command);  

            InputStream stderr = proc.getErrorStream();  

            InputStreamReader isr = new InputStreamReader(stderr);  

            BufferedReader br = new BufferedReader(isr);  

            String line = null;  

            StringBuffer sb = new StringBuffer();  

            while ((line = br.readLine()) != null){

                sb.append(line);  

            }

            System.out.println("ffmpeg Process errorInfo: " + sb.toString());  

            int exitVal = proc.waitFor();  

            System.out.println("ffmpeg Process exitValue: " + exitVal);  

            return true;  

        } catch (Exception e) {  

            System.out.println("ffmpeg exec cmd Exception " + e.toString());  

        }  

        return false;  

    }  

}

继续阅读