1. 程式人生 > >Linux下ffmpeg的wav與amr相互轉換

Linux下ffmpeg的wav與amr相互轉換

++ mpi 資料 linux href attr south 失敗 引用

轉載: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相互轉換