⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 convertvideo.java

📁 简单的视频上传系统
💻 JAVA
字号:
package cn.com.csuinfosoft.video;

import java.util.List;

public class ConvertVideo implements Video {

	private ConvertUtil convertUtil = null;
	
	public ConvertVideo() {
		convertUtil = ConvertUtil.newInstance();
	}
	
	/**
	 * process方法,提供将多媒体文件转换为FLV文件
	 * @param oldPath String
	 * @param newPath String
	 */
	public synchronized boolean process(String oldPath, String newPath) {
		int type = checkContentType(oldPath);
		boolean status = false;
		if(type == 0) {
			status = processFLV(oldPath, newPath);	//直接将文件转为FLV文件
		} else if(type == 1) {
			String avifilepath = processAVI(type, oldPath);
			if(avifilepath == null) {
				return false; //avi文件没有得到
			}
			status = processFLV(oldPath, newPath);	//将avi转为flv
		}
		return status;
	}
	
	/**
	 * 判断文件的类型
	 * @param oldPath
	 * @return int
	 */
	private static int checkContentType(String oldPath) {
		String type = oldPath.substring(oldPath.lastIndexOf(".") + 1,
				oldPath.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;
	}
	
	
	/**
	 * 转换多媒体文件,将其转换为可以识别的多媒体格式类型
	 * @param type
	 * @param oldPath
	 * @return String
	 */
	private String processAVI(int type, String oldPath) {
        List<String> commend=new java.util.ArrayList<String>();
        
        //根据ClassPath上下文路径转换
        String mencoderPath = convertUtil.commandFilePath("flv/ffmpeg.exe");
        
        /*
         * 转换后文件的路径以及名字
         */
        String aviFile = oldPath.substring(0, oldPath.lastIndexOf("."));
        aviFile = aviFile + "avi";
        
        commend.add(mencoderPath);
        commend.add(oldPath);
        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(aviFile);
        convertUtil.processCommand(commend);
        return aviFile;
	}
	
	/**
	 * 转换flv文件
	 * @param oldfilePath
	 * @param newfilePath
	 * @return boolean
	 */
	private boolean processFLV(String oldfilePath, String newfilePath) {
		 
	      if(!convertUtil.checkfile(oldfilePath)){
	          System.err.println(oldfilePath+" 不是一个文件!");
	          return false;
	      } 
	      	//根据ClassPath上下文路径转换
	        String ffmpegPath = convertUtil.commandFilePath("flv/ffmpeg.exe");
	        List<String> commend=new java.util.ArrayList<String>();
	        commend.add(ffmpegPath);
	        commend.add("-i");
	        commend.add(oldfilePath);        
	        commend.add("-ab");
	        commend.add("128");
	        commend.add("-acodec");
	        commend.add("mp3");
	        commend.add("-ac");
	        commend.add("2");
	        commend.add("-ar");
	        commend.add("22050");
	        commend.add("-b");
	        commend.add("1500");
	        commend.add("-qscale");
	        commend.add("6");
	        commend.add("-r");
	        commend.add("24");
	        commend.add("-y");
	        commend.add(newfilePath);
	        convertUtil.processCommand(commend);
	        return true;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -