web版的视频转换

采用s2sh设计。转换器使用的是FormatFactory软件。这里以视频转flv作为例子。

工具类ConvertVideoUtil如下:

package org.forever.convertVideo.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * 视频转换工具类
 * 
 * @author 陈均
 */
public class ConvertVideoUtil {
	private String formatFactoryPath;
	public static String FORMATFACTORYPATH = "#formatFactoryPath#";
	public static String TYPE = "#type#";
	public static String RESOLUTION = "#resolution#";
	public static String resolutionDefault = "320x240";
	public static String SOURCEFILEPATH = "#sourceFilePath#";
	
	//private String cmdTemplate = "#formatFactoryPath# \"All to #type#\" \"#resolution#\" \"#sourceFilePath#\"";// 命令模板语句

	public String allToType(String resolution, String sourceFileDir,
			String fileName,String type) throws Exception {
		Runtime rt = Runtime.getRuntime();
		String typeDir = "All to " + type + "\\\\";
		String convertFileName = fileName.split("\\.")[0] + "." + type;
		String cmd = formatFactoryPath+" \"All to "+type+"\" \""+resolution+"\" \""+sourceFileDir + fileName+"\"";
		System.out.println(cmd);
		Process process = rt.exec(cmd);
		process.waitFor();
		process.destroy();
		String src = sourceFileDir + typeDir + convertFileName;
		String target = sourceFileDir + convertFileName;
		File srcFile = new File(src);
		FileInputStream in = new FileInputStream(srcFile);
		FileOutputStream out = new FileOutputStream(target);
		byte[] buffer = new byte[1024];
		int bytes_read = 0;
		try {
			while ((bytes_read = in.read(buffer)) != -1) {
				out.write(buffer, 0, bytes_read);
			}
		} catch (Exception e) {
			throw new Exception(e);
		} finally {
			try {
				in.close();
				out.close();
			} catch (Exception e) {
				throw new Exception(e);
			}
		}
		if (srcFile.exists())
			srcFile.delete();
		return target;
	}

	public String getFormatFactoryPath() {
		return formatFactoryPath;
	}

	public void setFormatFactoryPath(String formatFactoryPath) {
		this.formatFactoryPath = formatFactoryPath;
	}

}

 



 

 

附上完整代码。

你可能感兴趣的:(Web)