ffmpeg+java实现五秒钟剪辑80个视频

最近刷起了抖音,自己搞了几个视频,准备剪辑一下发布,结果,拍摄5分钟,PS剪辑两个小时,给我弄废废了,然后就上网搜了一下,结果搜到了ffmpeg这个神器,一顿研究,感觉幸福多了。

首先来看下官方的解释:

 

 目前只用到了他的视频剪辑功能,但是还可以实现,视频音频合成,格式转换,图片转视频等等比较高级的功能;

我们先来看看视频剪辑功能如何实现的 ,基本上能做到五秒钟,80个视频没问题;

关键语句:

    ffmpeg  -ss  0 -to 30 -i   输入视频路径   -c   copy  输出视频路径

  

主要参数
-i——设置输入档名。
-f——设置输出格式。
-y——若输出文件已存在时则覆盖文件。
-fs——超过指定的文件大小时则结束转换。
-t——指定输出文件的持续时间,以秒为单位。
-ss——从指定时间开始转换,以秒为单位。
-t从-ss时间开始转换(如-ss 00:00:01.00 -t 00:00:10.00即从00:00:01.00开始到00:00:11.00)。
-title——设置标题。
-timestamp——设置时间戳。
-vsync——增减Frame使影音同步。
-c——指定输出文件的编码。
-metadata——更改输出文件的元数据。
-help——查看帮助信息。


ffmpeg的官网地址是:https://www.ffmpeg.org/
ffmpeg的Github项目地址是:https://github.com/FFmpeg/FFmpeg

上代码:

public class FfmpegTest {
    private final static String INPUTPATH = "E:\\GoogleDownload\\ccccc\\bgbgbg.mp4";
    private final static String OUTPATH = "E:\\GoogleDownload\\ccccc\\ffmpeg\\";
    private final static String FFMPEGPATH = "     E:\\Download\\ffmpeg.exe  ";

    public static void main(String[] args) {
        int n = 80;
        int start =0;
        for(int i=0;i<n;i++){
            try {
                Runtime runtime = Runtime.getRuntime();
                int end = start+30;
                String cut = FFMPEGPATH + "-ss  " +start+" -to " + end + " -i   "
                        + INPUTPATH
                        + "   -c   copy " + OUTPATH +i+ ".mp4";
                System.out.println(cut);
                runtime.exec(cut);
                start = end;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

 

执行结果:

 

 完美~

posted @ 2021-09-12 11:27  进阶的蜗牛  阅读(1578)  评论(0编辑  收藏  举报