flv格式转换--第一步
不定期更新...
首先要安装MediaCoder
安装目录假设为D:\flv\MediaCoder
在D:\flv\MediaCoder\codecs目录下有一些要用到的,如ffmpeg.exe , mencoder.exe还有一些dll
ConvertVideo.java
package com.lichen.test;
import java.io.File; import java.util.List; public class ConvertVideo { private final static String PATH = "d:\\test\\a.mpg"; 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文件 status=processImg(); processFLV(PATH); } 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"); // D:\flv\MediaCoder\codecs commend.add( "d:\\flv\\MediaCoder\\codecs"); 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( "d:\\test\\a.avi"); try { ProcessBuilder builder = new ProcessBuilder(); 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 boolean processFLV(String oldfilepath) { if (!checkfile(PATH)) { System.out.println(oldfilepath + " is not file"); return false; } List<String> commend = new java.util.ArrayList<String>(); commend.add( "d:\\flv\\MediaCoder\\codecs\\ffmpeg.exe"); commend.add( "-i"); commend.add(oldfilepath); commend.add( "-ab"); commend.add( "64"); // commend.add(" -acodec "); // commend.add("codec"); commend.add( "-ac"); commend.add( "2"); commend.add( "-ar"); commend.add( "22050"); commend.add( "-b"); commend.add( "230"); // commend.add("-s"); // commend.add("350x240"); commend.add( "-r"); commend.add( "29.97"); commend.add( "-y"); commend.add( "d:\\test\\b.flv"); System.out.println(commend); try { ProcessBuilder builder = new ProcessBuilder(); builder.command(commend); builder.start(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } // 生成图片 参数String newfilename, String newimg public static boolean processImg() { // System.out.println(newfilename + "->" + newimg); List<String> commend = new java.util.ArrayList<String>(); commend.add( "d:\\flv\\MediaCoder\\codecs\\ffmpeg.exe"); commend.add( "-i"); commend.add( "d:\\test\\a.mpg"); commend.add( "-y"); commend.add( "-f"); commend.add( "image2"); commend.add( "-ss"); commend.add( "38"); commend.add( "-t"); commend.add( "0.001"); commend.add( "-s"); commend.add( "320x240"); commend.add( "d:\\test\\b.jpg"); try { ProcessBuilder builder = new ProcessBuilder(); builder.command(commend); builder.start(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } }
会在指定目录下D:\test生成b.flv和b.jpg这两个文件.
|
各种视频格式转换成.flv格式(flv格式转换)
最新推荐文章于 2018-06-27 12:48:07 发布