您的位置:首页 > 编程语言 > Java开发

java 音频视频转码

2015-03-18 13:35 441 查看
以下程序没有对命令执行结果进行任何解析处理,如要解析,请自行处理

使用的工具为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);

以上文章如有不对之处,请批评指出,共同进步
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息