• JAVA代码视频转GIF(亲测有效)


    1.说明

    本次使用的是JAVA代码视频转GIF,maven如下:

     
        ws.schild</groupId>
         jave-nativebin-win64</artifactId>
         3.2.0</version>
     </dependency>
     
         ws.schild</groupId>
         jave-core</artifactId>
         3.1.1</version>
     </dependency>
     
         com.madgag</groupId>
         animated-gif-lib</artifactId>
         1.4</version>
     </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    整体代码如下:

    package src.controller;
    
    
    import ws.schild.jave.Encoder;
    import ws.schild.jave.MultimediaObject;
    import ws.schild.jave.encode.EncodingAttributes;
    import ws.schild.jave.encode.VideoAttributes;
    import ws.schild.jave.info.MultimediaInfo;
    import ws.schild.jave.info.VideoInfo;
    import ws.schild.jave.info.VideoSize;
    
    import java.io.File;
    
    public class VideoToGIf {
    
        //输出格式
        private static final String outputFormat = "gif";
    
        /**
         * 转化音频格式
         *
         * @param sourceFilePath : 源视频文件路径
         * @param targetFilePath : 目标gif文件路径
         * @return
         */
        public static void transform(String sourceFilePath, String targetFilePath) {
            File source = new File(sourceFilePath);
            File target = new File(targetFilePath);
            try {
                //获得原视频的分辨率
                MultimediaObject mediaObject = new MultimediaObject(source);
                MultimediaInfo multimediaInfo = mediaObject.getInfo();
                VideoInfo videoInfo = multimediaInfo.getVideo();
                VideoSize sourceSize = videoInfo.getSize();
                //设置视频属性
                VideoAttributes video = new VideoAttributes();
                video.setCodec(outputFormat);
                //设置视频帧率 正常为10 ,值越大越流畅 正常GIF有个30帧差不多了
                video.setFrameRate(30);
                //设置视频分辨率
                VideoSize targetSize = new VideoSize(sourceSize.getWidth() / 2, sourceSize.getHeight() / 2);
                video.setSize(targetSize);
                //设置转码属性
                EncodingAttributes attrs = new EncodingAttributes();
                attrs.setVideoAttributes(video);
                // 音频转换格式类
                Encoder encoder = new Encoder();
                encoder.encode(mediaObject, target, attrs);
                System.out.println("转换完成...");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 批量转化视频格式
         *
         * @param sourceFolderPath : 源视频文件夹路径
         * @param targetFolderPath : 目标gif文件夹路径
         * @return
         */
        public static void batchTransform(String sourceFolderPath, String targetFolderPath) {
            transform(sourceFolderPath, targetFolderPath);
        }
    
        public static void main(String[] args) {
            //你的视频地址  和你想转的动图的地址
            batchTransform("d:\\Users\\xychenkj\\Desktop\\11\\1.mp4", "d:\\Users\\xychenkj\\Desktop\\11\\2.gif");
        }
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    附上截图:
    在这里插入图片描述

    2.注意事项

    这个代码需要用到一个特殊的包,不然你复制我的代码肯定会报错,说没有:ffmpeg-amd64-3.1.1.exe这个文件。
    因为我们需要这个程序去帮我们运行转换的逻辑。下面教学下怎么安装这个软件,不要去官网下了,墨迹死了,翻墙除外。要官网下载的直接百度即可,这里就不说了,我反正是直接去这种地址下载的,你要担心病毒啥的那确实需要谨慎,记得点立即下载,安全下载就是小丑了,一堆捆绑,相信长期混迹于下载圈的小伙伴根本就不会觉得这种地址下载东西麻烦。下面附上我下载好了可用的压缩包下载链接,帮你们省点心。
    在这里插入图片描述
    链接:https://pan.baidu.com/s/1AD9UtudCjjfWQEFdUVQhPg
    提取码:gv5l
    地址如下:
    下载下来你自己找个地方解压,然后就是配置path了,就和java一样,配置到bin目录下
    在这里插入图片描述

    在这里插入图片描述

    弄好了之后,需要验证下安装成功与否,
    打开命令提示符窗口。输入命令“ffmpeg –version”。如果命令提示窗口返回FFmpeg的版本信息,那么就说明安装成功了。
    在这里插入图片描述
    这样就安装好了,然后你去跑代码,如果还不行,重启电脑!!!!,再试一下,我重启完就可以了。

  • 相关阅读:
    Nginx模块开发之http过滤器filter
    【SV书的章节练习题】Chap.3 Combinational Logic Using SystemVerilog Gate Models
    Vue 常用指令
    教你如何判断Java代码中异步操作是否完成
    利用大模型反馈故障的解决方案
    【软件设计师-从小白到大牛】下午题基础篇:第一章 数据流图(DFD)
    XoT:一种新的大语言模型的提示技术
    Qt绘制椭圆曲线的角度问题(离心角和旋转角)
    http升级为https
    MYSQL--存储引擎和日志管理
  • 原文地址:https://blog.csdn.net/BrotherJinJin/article/details/134318480