美文网首页好用的工具FFmpeg程序员
FFmpeg使用教程(三)-在Java环境下使用FFmpeg压缩

FFmpeg使用教程(三)-在Java环境下使用FFmpeg压缩

作者: 菜菜___ | 来源:发表于2019-06-14 09:10 被阅读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后前端妹子一枚,爱阅读,爱交友,将工作中遇到的问题记录在这里,希望给每一个看到的你能带来一点帮助。
    欢迎留言交流

    相关文章

      网友评论

        本文标题:FFmpeg使用教程(三)-在Java环境下使用FFmpeg压缩

        本文链接:https://www.haomeiwen.com/subject/smsqfctx.html