Java使用ffmpeg音視訊分離
阿新 • • 發佈:2018-12-23
建立專案
使用IDEA用Maven建立一個Java專案,在resources資料夾下建立一個ffmpeg資料夾,將下載好的ffmpeg中bin目錄下的ffmpeg.exe程式複製到剛剛建立好的資料夾下。
音視訊分離
import java.io.File;
import java.io.IOException;
import java.net.URL;
public class SSP {
//轉換命令
private static String ssp;
//獲得resources的路徑
private static URL url = Thread. currentThread().getContextClassLoader().getResource("ffmpeg");
/*
* @Author: Haya
* @Date: 2018/10/30 19:27
*
* @param add 視訊檔案所在路徑
* @param f1 視訊檔名
* @param f2 提取出來的音訊名
* @returns: void
* @Description: 將轉換檔案和目標檔案新增到命令中
*/
public static void setSSP(String add, String f1, String f2) {
ssp = "/ffmpeg -i "+add+f1 +" -vn -y -acodec copy "+ add+f2;
}
/*
* @Author: Haya
* @Date: 2018/10/30 19:29
*
* @param null
* @returns:
* @Description: 執行命令
*/
public static void Do() throws IOException {
Runtime runtime =Runtime.getRuntime ();
String path = new File(String.valueOf(url)).getPath().substring(6);
//命令不為空
if (!"".equals(ssp) && ssp!=null) {
System.out.println(path+ssp);
Process p = runtime.exec(path+ssp);
p.getOutputStream().close();
p.getInputStream().close();
p.getErrorStream().close();
}else{
System.out.println("請先設定命令、指定檔案");
}
}
}
呼叫
先執行 setSSP()
在執行 Do()