首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

视频转换解决方法

2012-03-19 
视频转换JSP中如何实现在线将上传的AVI等格式视频转换为FLASH格式?[解决办法]别说在线的,不在线我也不会,

视频转换
JSP中如何实现在线将上传的AVI等格式视频转换为FLASH格式?

[解决办法]
别说在线的,不在线我也不会,顶
[解决办法]
转成FLV?像土豆网那样吗?嘿嘿。
[解决办法]
去网上下个可以转FLASH格式播放的软件就可以了,很方便的。
[解决办法]
比较有意思...
[解决办法]
我也在做java开发视频网 下面是视频格式转换的java程序。。。。。。
import java.io.File;
import java.util.List;
public class ConvertVideo {
 
 private final static String PATH = "e:\\output\\test.avi";
 public static void main(String[] args) {
if(!checkfile(PATH)){
System.out.println(PATH+" is not file");
return;
}
if (process()) {
System.out.println("ok");
}
 }
 
 private static boolean process() {
int type = checkContentType();
boolean status = false;
if (type==0) {
status = processFLV(PATH);// 直接将文件转为flv文件
} else if (type==1) {
String avifilepath = processAVI(type);
if (avifilepath == null)
return false;// avi文件没有得到
status = processFLV(avifilepath);// 将avi转为flv
}
return status;
}
private static int checkContentType() {
String type = PATH.substring(PATH.lastIndexOf(".") + 1,
PATH.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;
}
 
private static boolean checkfile(String path){
File file=new File(path);
if(!file.isFile()){
return false;
}
return true;
}
// 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等), 可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式.
private static String processAVI(int type) {
List<String> commend=new java.util.ArrayList<String>();
commend.add("e:\\mencoder");
commend.add(PATH);
commend.add("-oac");
commend.add("lavc");
commend.add("-ovc");
commend.add("xvid");
commend.add("-xvidencopts");
commend.add("bitrate=600");
commend.add("-of");
commend.add("avi");
commend.add("-o");
commend.add("e:\\output\\temp.avi");

try{
ProcessBuilder builder = new ProcessBuilder();


builder.command(commend);
builder.start();
return "e:\\output\\temp.avi";
}catch(Exception e){
e.printStackTrace();
return null;
}
}
// ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
private static boolean processFLV(String oldfilepath) {

if(!checkfile(PATH)){
System.out.println(oldfilepath+" is not file");
return false;
}

List<String> command=new java.util.ArrayList<String>();
command.add("e:\\ffmpeg");
command.add("-i");
command.add(oldfilepath);
command.add("-ab");
command.add("56");
command.add("-ar");
command.add("22050");
command.add("-b");
command.add("500");
command.add("-r");
command.add("15");
command.add("-y");
command.add("e:\\output\\test.flv");
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(command);
builder.start();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}

}

热点排行