linux+java+ffmpeg 實現音視訊轉碼技術
阿新 • • 發佈:2018-11-10
linux+java+ffmpeg 實現音視訊轉碼技術
執行命令 1.安裝lame-3.1.0 tar -zvxf lame-3.1.0.tar.gz //解壓 cd lame-3.1 //進入解壓後的檔案 ./configure //配置 make //編譯 make install //安裝 //下載地址 http://download.csdn.net/download/qq_33563609/10107483 2.安裝yasm tar -zvxf yasm-1.3.0.tar.gz cd yasm-1.3 ./configure make make install //下載地址 http://download.csdn.net/download/qq_33563609/10107517 3.安裝ffmpeg tar -zvxf ffmpeg-3.4.tar.gz cd ffmpeg-3.4 ./configure --enable-shared --enable-libmp3lame make make install //下載地址 http://download.csdn.net/download/qq_33563609/10107527 4.全部安裝後 執行 ffmpeg --version 檢視是否安裝成功 正常情況下會報錯 找不到 lame的啟動路徑 錯誤程式碼 0 或者 57 等等 在檔案路徑 /etc/ld.so.conf 這個檔案 編輯這個檔案 此檔案預設內容是 include ld.so.conf.d/*.conf 在檔案中 換行加入 /usr/local/lib 這段路徑然後儲存 並執行/sbin/ldconfig 來更新當前修改 注意 編輯檔案應在root許可權下, su 回車 輸入密碼,密碼不顯示 許可權由$符號變為#代表權限改變了 在執行 ffmpeg -version 檢視是否安裝成功 5.執行 ffmepg -i input.wav -f mp3 -acodec libmp3lame -y output.mp3 輸入檔案 輸出檔案 路徑名稱 路徑名稱 6.maven中匯入jar包 jar包為 jave-1.0.2.jar maven本地匯入方法為 cmd 命令 mvn install:install-file -Dfile=E:\jave-1.0.2.jar //包的輸入路徑 -DgroupId=jave -DartifactId=jave -Dversion=1.0.2 -Dpackaging=jar //執行完成後 jar 會放入maven 倉庫中 maven/repository/jave/jave/1.0.2/ pom.xml檔案配置為 <dependency> <groupId>jave</groupId> <artifactId>jave</artifactId> <version>1.0.2</version> </dependency> //下載地址 http://download.csdn.net/download/qq_33563609/10107555 7.java程式碼 方案一 /* sources 輸入檔案的路徑和名稱 * desFileName 輸出檔案的路徑和名稱 */ public static File execute(String sources, String desFileName) throws Exception { File source=new File(sources); File target = new File(desFileName); AudioAttributes audio = new AudioAttributes(); audio.setCodec("libmp3lame"); //編解碼器 audio.setBitRate(new Integer(192000)); //音訊比率 MP3預設是128000kb 位元率 96000 128000 160000 192000 256000 384000 512000 1024000 1500000 2048000 4096000 audio.setChannels(new Integer(2)); //聲道 audio.setSamplingRate(new Integer(48000)); //取樣率 //audio.setVolume(16); //音量 EncodingAttributes attrs = new EncodingAttributes(); attrs.setFormat("mp3"); attrs.setAudioAttributes(audio); Encoder encoder = new Encoder(); encoder.encode(source, target, attrs); return target; } 8.java程式碼 方案二 public static void MavToMp3(String sources,String desFileName){ List<String> commend = new ArrayList<String>(); commend.add("/usr/local/bin/ffmpeg"); commend.add("-i"); commend.add(sources); commend.add("-f"); commend.add("mp3"); commend.add("-acodec"); commend.add("libmp3lame"); commend.add("-y"); commend.add(desFileName); StringBuffer test=new StringBuffer(); for(int i=0;i<commend.size();i++) test.append(commend.get(i)+" "); System.out.println(test); ProcessBuilder builder = new ProcessBuilder(); builder.command(commend); try { builder.redirectErrorStream(true); builder.start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("音訊轉換成功"); }