java 调用ffmpeg 转成mp4_用java程序调用ffmpeg执行视频文件格式转换flv

该博客介绍了一个Java程序,用于调用ffmpeg工具将不同格式的视频文件(如mpg, wmv, 3gp等)转换为flv格式。程序首先检查输入文件的类型,然后根据文件格式选择直接转换或先通过mencoder转换为avi格式再进行ffmpeg转换。" 109340359,10166014,面向过程与面向对象编程的区别与联系,"['编程范式', '面向对象', 'MATLAB']
摘要由CSDN通过智能技术生成

importjava.io.File;importjava.util.List;public classConvertVideo {private final static String PATH = "c://test//a.mpg";public static voidmain(String[] args) {if(!checkfile(PATH)){

System.out.println(PATH+" is not file");return;

}if(process()) {

System.out.println("ok");

}

}private static booleanprocess() {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

}returnstatus;

}private static intcheckContentType() {

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 booleancheckfile(String path){

File file=newFile(path);if(!file.isFile()){return false;

}return true;

}//对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等), 可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式.

private static String processAVI(inttype) {

List commend=new java.util.ArrayList();

commend.add("e://mencoder");

commend.add(PATH);

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("c://home//a.avi");try{

ProcessBuilder builder= newProcessBuilder();

builder.command(commend);

builder.start();return "c://home//a.avi";

}catch(Exception e){

e.printStackTrace();return null;

}

}//ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)

private static booleanprocessFLV(String oldfilepath) {if(!checkfile(PATH)){

System.out.println(oldfilepath+" is not file");return false;

}

List commend=new java.util.ArrayList();

commend.add("e://ffmpeg");

commend.add("-i");

commend.add(oldfilepath);

commend.add("-ab");

commend.add("64");

commend.add("-acodec");

commend.add("mp3");

commend.add("-ac");

commend.add("2");

commend.add("-ar");

commend.add("22050");

commend.add("-b");

commend.add("230");

commend.add("-r");

commend.add("24");

commend.add("-y");

commend.add("c://home//a.flv");try{

ProcessBuilder builder= newProcessBuilder();

builder.command(commend);

builder.start();return true;

}catch(Exception e) {

e.printStackTrace();return false;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值