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

如:

[root@localhost 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;  
    }  
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章