java 音频视频转码

以下程序没有对命令执行结果进行任何解析处理,如要解析,请自行处理

使用的工具为ffmpeg,在windows下非常方便,直接将exe文件放在指定文件夹下即可,linux需要安装 安装命令有一些地方需注意(本人对linux不熟练,有可能不需要安装,编译成一个文件,然后调用?)

windows下的ffmpeg下载地址:

http://download.csdn.net/detail/u013284604/8511575


公共java类:

private static void executeCmd(List<String> cmdList) throws BusinessException{
String line = null;
Process process = null;

try {
process = Runtime.getRuntime().exec(cmdList.toArray(new String[cmdList.size()]));
BufferedReader bw = new BufferedReader(new InputStreamReader(process.getErrorStream()));
StringBuffer returnSb = new StringBuffer();
while((line = bw.readLine())!=null){
returnSb.append(line).append("\n");
}
System.out.println(returnSb);
} catch (Exception e) {
e.printStackTrace();
try {
process.getErrorStream().close();
process.getInputStream().close();  
process.getOutputStream().close();  
} catch (IOException e1) {
e1.printStackTrace();
}
throw new Exception("转化失败");

}

一、音频转为mp3格式

目前经测试支持的转换音频为mp3,wma,wav,amr

List<String> cmdList = new ArrayList<String>();

cmdList.add("ffmpeg路径");
cmdList.add("-i");
cmdList.add("源文件路径");
cmdList.add("-acodec");
cmdList.add("libmp3lame");
cmdList.add("目标文件路径");

executeCmd(cmdList);

二、视频转为mp4格式

目前经测试支持的转换音频为rm,rmvb,wmv,avi,mpg,mp4,mpeg

List<String> cmdList = new ArrayList<String>();

cmdList.add("ffmpeg路径");
cmdList.add("-i");
cmdList.add("源文件路径");
cmdList.add("-vcodec");
cmdList.add("libx264");
cmdList.add("-vb");
cmdList.add("384k");
cmdList.add("-r");
cmdList.add("18");
cmdList.add("-strict");
cmdList.add("-2");
cmdList.add("-ar");
cmdList.add("22050");
cmdList.add("-ab");
cmdList.add("64k");
cmdList.add("-coder");
cmdList.add("0");
cmdList.add("目标文件路径");

executeCmd(cmdList);

三、视频截图(取第一帧)

cmdList.add("ffmpeg路径");
cmdList.add("-i");
cmdList.add("源文件路径");
cmdList.add("-y");
cmdList.add("-f");
cmdList.add("image2");
cmdList.add("-vframes");
cmdList.add("1");

cmdList.add("目标文件路径");


executeCmd(cmdList);


以上文章如有不对之处,请批评指出,共同进步微笑


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