java 视频格式转换-ffmpeg

 

*需要配置ffmpeg文件!!!
常用视频格式都支持,只是转换效率不高!

import java.util.ArrayList;
import java.util.List;

import com.crm.util.common.PropertyUtil;

public class ConvertVideo {
	//输出视频地址
	private static String inputPath = "";
        //输出视频地址(本地配置)
	private static String outputPath = PropertyUtil.VIDEO_STORAGE_LOCATION;
        //所在位置(本地配置)
	private static String ffmpegPath = PropertyUtil.VIDEO_FFMPEG_STORAGE_LOCATION;

	public static String process(String path, String name) {
		//转换后返回文件名
		return processVedio(path,name);
	}

	// ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
	private static String processVedio(String path, String name) {
		List<String> command = new ArrayList<String>();
		command.add(ffmpegPath + "ffmpeg");
		command.add("-i");
		command.add(path+"/"+name);//输入文件路径
		command.add("-ab");
		command.add("56");
		command.add("-ar");
		command.add("22050");
		command.add("-qscale");
		command.add("8");
		command.add("-r");
		command.add("15");
		command.add("-s");
		command.add("720x480"); //分辨率
		name = name.substring(0, name.lastIndexOf(".")) + ".mp4";
		path = path +"/"+ name ;
		command.add(path);  //输入文件路径
		try {
			Process videoProcess = new ProcessBuilder(command).redirectErrorStream(true).start();
			new PrintStream(videoProcess.getErrorStream()).start();
			new PrintStream(videoProcess.getInputStream()).start();
			videoProcess.waitFor();
			return name;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
}

class PrintStream extends Thread {
	java.io.InputStream __is = null;

	public PrintStream(java.io.InputStream is) {
		__is = is;
	}

	public void run() {
		try {
			while (this != null) {
				int _ch = __is.read();
				if (_ch != -1)
					System.out.print((char) _ch);
				else
					break;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值