视频转换格式截图
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
浙公网安备 33010602011771号