/**
* 视频转码
*
* @author hg
*
*/
public class VideosTranscoding {
// 用来产生随机验证码的
private static Random rand = new Random();
private static String[] str = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
/**
*
* @param videourl
* 视频路径
* @return
*/
public String updvideostranscoding(String videourl) {
// 存放产生的随机数
StringBuffer sms;
// 生成三位数的随机数
StringBuffer buf = new StringBuffer();
for (int i = 0; i < 3; i++) {
buf.append(str[rand.nextInt(10)]);
}
sms = buf;
// 获取当前时间
Date now = new Date();
// 格式化字符
SimpleDateFormat date = new SimpleDateFormat("yyyy MM dd hh mm ss");
String datestring = date.format(now);
// 去除时间里的空格
String nokongge = datestring.replaceAll(" ", "");
String longid = nokongge + sms;
long randomid = new Long(Long.parseLong(longid));
//存放路径
String backurl="E:\\Program Files\\Apache Software Foundation\\Tomcat 8.0\\webapps\\gatesskills\\updvids\\"
+ randomid + ".mov";
List<String> convert = new ArrayList<String>();
convert.add("E:\\ffmpeg.exe"); // 添加转换工具路径
convert.add("-i"); // 添加参数"-i",该参数指定要转换的文件
convert.add(videourl); // 添加要转换格式的视频文件的路径
convert.add("-qscale"); // 指定转换的质量
convert.add("6");
convert.add("-ab"); // 设置音频码率
convert.add("64");
convert.add("-ac"); // 设置声道数
convert.add("2");
convert.add("-ar"); // 设置声音的采样频率
convert.add("22050");
convert.add("-r"); // 设置帧频
convert.add("24");
convert.add("-y"); // 添加参数"-y",该参数指定将覆盖已存在的文件
convert.add(backurl);
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(convert);
builder.redirectErrorStream(true);
System.out.println("视频转码开始...");
// builder.start();
Process process = builder.start();
InputStream in = process.getInputStream();
byte[] re = new byte[1024];
System.out.print("正在进行转码,请稍候");
while (in.read(re) != -1) {
System.out.print(".");
}
System.out.println("");
in.close();
System.out.println("视频转码完成...");
} catch (Exception e) {
e.printStackTrace();
System.out.println("视频转码失败!");
}
return backurl;
}
Java 视频转码
最新推荐文章于 2023-11-16 08:54:29 发布