读书人

JAVA利用ffmpeg跟mencoder对视频进行转

发布时间: 2012-12-25 16:18:28 作者: rapoo

JAVA利用ffmpeg和mencoder对视频进行转换

package com;import java.io.File;import java.util.List;/** *  * @author 赵永恩  *  2011-03-18 */public class Video {/** * @param args测试 */public static void main(String[] args) {// TODO Auto-generated method stubString path = "D:\\test\\a.mp4";String outFlvPath = "d:\\test\\2011.flv";String outAviPath = "d:\\test\\20111.avi";String outImgPath = "d:\\test\\20111.jpg";boolean a = checkfile(path);System.out.println(a);boolean b = process(path, outFlvPath, outAviPath,outImgPath);System.out.println(b);System.out.println("ok");}/** * 判断文件存在与否 *  * @param path * @return */private static boolean checkfile(String path) {File file = new File(path);if (!file.isFile()) {return false;}return true;}/** * 转换 *  * @return */private static boolean process(String path, String outflvPath,String outaviPath,String outImgPath) {int type = checkContentType(path);boolean status = false;if (type == 0) { status=ffmpegTransImage(path,outImgPath);//生成图片processFLV(path, outflvPath);// 如果为零表示ffmpeg可以识别,直接将文件转为flv文件} else if (type == 1) {String avifilepath = processAVI(type, path, outaviPath);if (avifilepath == null)return false;// avi文件没有得到status = processFLV(avifilepath, outflvPath);// 将avi转为flvSystem.out.println("status====" + status);}return status;}/** * 判断文件格式 *  * @return */private static int checkContentType(String path) {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;} else if (type.equals("vob")) {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;}/** * 转换为flv *  * ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) *  * @param oldfilepath * @return */private static boolean processFLV(String filepath, String outflvPath) {// 检查文件是否存在if (!checkfile(filepath)) {System.out.println(filepath + " is not file");return false;}List<String> commend = new java.util.ArrayList<String>();commend.add("d:\\flv\\MediaCoder\\codecs\\ffmpeg.exg/961560" title="怎样在JAVA文件中获取该项目的相对路径">怎样在JAVA文件中获取该项目的相对路径                  2011-03-18 10:37      浏览 956      评论(2)                  分类:编程语言            
  • 相关推荐 1 楼 chensong215 2012-05-22 转换时速度太慢了 2 楼 zyengogo 2012-05-28 chensong215 写道转换时速度太慢了
    这个是有一点,

  • 读书人网 >编程

    热点推荐