DreamH

视频转换格式截图

package com.loadfile;

import java.io.File; import java.io.InputStream; import java.util.HashMap; import java.util.List;

public class ConvertVideo {   private static HashMap<String, String> fileType;          static {          fileType = new HashMap<String, String>();          fileType.put("avi", "true");          fileType.put("mpg", "true");          fileType.put("wmv", "true");          fileType.put("3gp", "true");          fileType.put("mov", "true");          fileType.put("mp4", "true");          fileType.put("asf", "true");          fileType.put("asx", "true");         // fileType.put("flv", "true");//http://hi.baidu.com/ruixueue0117/blog/item/5177b40ec8480efd37d12263.html      }          public static boolean processFlv(String INPUT_PATH,String OUTPUT_PATH) {          System.out.println("OUTPUT_PATH="+OUTPUT_PATH);          //效验文件是否存在,自行取舍          if(new File(OUTPUT_PATH).exists()) return true;                   List<String> commend = new java.util.ArrayList<String>();          //ffmpeg地址,不需要带.exe后缀          commend.add("E:\\ffmpeg");          commend.add("-i");          commend.add(INPUT_PATH);          commend.add("-y");          commend.add("-s");          commend.add("480*360");          commend.add("-b");          commend.add("1000");          commend.add("-qscale");          commend.add("4");          commend.add(OUTPUT_PATH);          try {              ProcessBuilder builder = new ProcessBuilder();              builder.command(commend);              builder.redirectErrorStream(true);              builder.start();             Process process = builder.start();              InputStream in = process.getInputStream();              byte[] re = new byte[1024];              while (in.read(re)!= -1) {                  System.out.println(new String(re));              }              in.close();              return true;          } catch (Exception e) {           System.out.println("出错了1");              e.printStackTrace();              return false;          }      }

     public static boolean processImg(String INPUT_PATH,String IMG_PATH) {          System.out.println("IMG_PATH="+IMG_PATH);          if(new File(IMG_PATH).exists()) return true;          List<String> commend = new java.util.ArrayList<String>();          commend.add("E:\\ffmpeg");          commend.add("-i");          commend.add(INPUT_PATH);          commend.add("-y");          commend.add("-f");          commend.add("image2");          commend.add("-ss");          commend.add("10");          commend.add("-t");          commend.add("0.001");          commend.add("-s");          commend.add("320x240");          commend.add(IMG_PATH);          try {              ProcessBuilder builder = new ProcessBuilder();              builder.command(commend);              builder.start();              return true;          } catch (Exception e) {           System.out.println("出错了2");              e.printStackTrace();              return false;          }      }          private static boolean checkContentType(String INPUT_PATH) {          String type = INPUT_PATH.substring(INPUT_PATH.lastIndexOf(".") + 1, INPUT_PATH.length()).toLowerCase();          // ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)          return "true".equals(fileType.get(type));      }          public static void convertToFLV(String INPUT_PATH) {//转换成flv格式          String FILE_PATH = INPUT_PATH.substring(0,INPUT_PATH.lastIndexOf("."));          String OUTPUT_PATH = FILE_PATH + ".flv";          String IMG_PATH = FILE_PATH + ".jpg";          System.out.println("INPUT_PATH="+INPUT_PATH);          processImg(INPUT_PATH,IMG_PATH);          if (checkContentType(INPUT_PATH)){              processFlv(INPUT_PATH,OUTPUT_PATH);          }      }          public static void main(String[] args){          convertToFLV("E:\\struts2.avi");      }  }

 

 

另需要下载ffmpeg.exe

posted on 2011-12-12 20:08  DreamH  阅读(138)  评论(0)    收藏  举报