FFmpeg使用教程(三)-在Java环境下使用FFmpeg压缩
2019-06-14 本文已影响3人
菜菜___
在前面两篇文章中
FFmpeg使用教程(一)-windows安装配置ffmpeg
FFmpeg使用教程(二)-常用的FFmpeg命令,包含提取音频、剪辑、转码、截屏、加logo等
我们已经了解到了在cmd窗口运行FFmpeg命令可以操作视频、音频,有时候文件太多或者需求比较复杂,在cmd窗口不好操作,我们也可以用java脚本调用FFmpeg命令,然后批量操作文件。
代码如下:
public class FFmpegVideo {
/**
* 压缩视频
* @param convertFile 待转换的文件
* @param targetFile 转换后的目标文件
*/
private static void toCompressFile(String convertFile,String targetFile){
try{
Runtime runtime = Runtime.getRuntime();
/**将视频压缩为 每秒15帧 平均码率600k 画面的宽与高 为1280*720*/
String cutCmd="ffmpeg -i " + convertFile + " -r 15 -b:v 600k -s 1280x720 "+ targetFile;
runtime.exec(cutCmd);
System.out.println("文件:"+convertFile+" 正在转换中。。。");
}catch(Exception e){
e.printStackTrace();
System.out.println("压缩文件出现异常:"+e.getMessage());
}
}
public static void main(String[] ars ){
final String convertFile="D:\\media\\";
File f=new File(convertFile);
File[] fs=f.listFiles();
for(File ff:fs){
if(ff.toPath().toString().toLowerCase().endsWith(".mp4")){
String f1=convertFile+ff.getName();
String f2=convertFile+"压缩后_"+ff.getName();
toCompressFile(f1,f2);
}
}
}
}

这样原来300M的视频会被压缩到10M左右。
原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe
95后前端妹子一枚,爱阅读,爱交友,将工作中遇到的问题记录在这里,希望给每一个看到的你能带来一点帮助。
欢迎留言交流