📄 convertvideo.java
字号:
package cn.com.csuinfosoft.video;
import java.util.List;
public class ConvertVideo implements Video {
private ConvertUtil convertUtil = null;
public ConvertVideo() {
convertUtil = ConvertUtil.newInstance();
}
/**
* process方法,提供将多媒体文件转换为FLV文件
* @param oldPath String
* @param newPath String
*/
public synchronized boolean process(String oldPath, String newPath) {
int type = checkContentType(oldPath);
boolean status = false;
if(type == 0) {
status = processFLV(oldPath, newPath); //直接将文件转为FLV文件
} else if(type == 1) {
String avifilepath = processAVI(type, oldPath);
if(avifilepath == null) {
return false; //avi文件没有得到
}
status = processFLV(oldPath, newPath); //将avi转为flv
}
return status;
}
/**
* 判断文件的类型
* @param oldPath
* @return int
*/
private static int checkContentType(String oldPath) {
String type = oldPath.substring(oldPath.lastIndexOf(".") + 1,
oldPath.length()).toLowerCase();
// ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
if (type.equals("avi")) {
return 0;
} else if (type.equals("mpg")) {
return 0;
} else if (type.equals("wmv")) {
return 0;
} else if (type.equals("3gp")) {
return 0;
} else if (type.equals("mov")) {
return 0;
} else if (type.equals("mp4")) {
return 0;
} else if (type.equals("asf")) {
return 0;
} else if (type.equals("asx")) {
return 0;
} else if (type.equals("flv")) {
return 0;
}
//对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等), 可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式.
else if (type.equals("wmv9")) {
return 1;
} else if (type.equals("rm")) {
return 1;
} else if (type.equals("rmvb")) {
return 1;
}
return 9;
}
/**
* 转换多媒体文件,将其转换为可以识别的多媒体格式类型
* @param type
* @param oldPath
* @return String
*/
private String processAVI(int type, String oldPath) {
List<String> commend=new java.util.ArrayList<String>();
//根据ClassPath上下文路径转换
String mencoderPath = convertUtil.commandFilePath("flv/ffmpeg.exe");
/*
* 转换后文件的路径以及名字
*/
String aviFile = oldPath.substring(0, oldPath.lastIndexOf("."));
aviFile = aviFile + "avi";
commend.add(mencoderPath);
commend.add(oldPath);
commend.add("-oac");
commend.add("lavc");
commend.add("-lavcopts");
commend.add("acodec=mp3:abitrate=64");
commend.add("-ovc");
commend.add("xvid");
commend.add("-xvidencopts");
commend.add("bitrate=600");
commend.add("-of");
commend.add("avi");
commend.add("-o");
commend.add(aviFile);
convertUtil.processCommand(commend);
return aviFile;
}
/**
* 转换flv文件
* @param oldfilePath
* @param newfilePath
* @return boolean
*/
private boolean processFLV(String oldfilePath, String newfilePath) {
if(!convertUtil.checkfile(oldfilePath)){
System.err.println(oldfilePath+" 不是一个文件!");
return false;
}
//根据ClassPath上下文路径转换
String ffmpegPath = convertUtil.commandFilePath("flv/ffmpeg.exe");
List<String> commend=new java.util.ArrayList<String>();
commend.add(ffmpegPath);
commend.add("-i");
commend.add(oldfilePath);
commend.add("-ab");
commend.add("128");
commend.add("-acodec");
commend.add("mp3");
commend.add("-ac");
commend.add("2");
commend.add("-ar");
commend.add("22050");
commend.add("-b");
commend.add("1500");
commend.add("-qscale");
commend.add("6");
commend.add("-r");
commend.add("24");
commend.add("-y");
commend.add(newfilePath);
convertUtil.processCommand(commend);
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -