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

1.说明

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

powershell 复制代码
 <dependency>
    <groupId>ws.schild</groupId>
     <artifactId>jave-nativebin-win64</artifactId>
     <version>3.2.0</version>
 </dependency>
 <dependency>
     <groupId>ws.schild</groupId>
     <artifactId>jave-core</artifactId>
     <version>3.1.1</version>
 </dependency>
 <dependency>
     <groupId>com.madgag</groupId>
     <artifactId>animated-gif-lib</artifactId>
     <version>1.4</version>
 </dependency>

整体代码如下:

java 复制代码
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");
    }
}

附上截图:

2.注意事项

这个代码需要用到一个特殊的包,不然你复制我的代码肯定会报错,说没有:ffmpeg-amd64-3.1.1.exe这个文件。

因为我们需要这个程序去帮我们运行转换的逻辑。下面教学下怎么安装这个软件,不要去官网下了,墨迹死了,翻墙除外。要官网下载的直接百度即可,这里就不说了,我反正是直接去这种地址下载的,你要担心病毒啥的那确实需要谨慎,记得点立即下载,安全下载就是小丑了,一堆捆绑,相信长期混迹于下载圈的小伙伴根本就不会觉得这种地址下载东西麻烦。下面附上我下载好了可用的压缩包下载链接,帮你们省点心。

链接:https://pan.baidu.com/s/1AD9UtudCjjfWQEFdUVQhPg

提取码:gv5l

地址如下:

下载下来你自己找个地方解压,然后就是配置path了,就和java一样,配置到bin目录下

弄好了之后,需要验证下安装成功与否,

打开命令提示符窗口。输入命令"ffmpeg --version"。如果命令提示窗口返回FFmpeg的版本信息,那么就说明安装成功了。

这样就安装好了,然后你去跑代码,如果还不行,重启电脑!!!!,再试一下,我重启完就可以了。

相关推荐
魔力女仆7 小时前
分享一个 JS 鼠标跟随贪吃蛇背景库
开发语言·javascript·计算机外设
都叫我大帅哥7 小时前
Java日期时间三十年战争:从Date考古到LocalDateTime革命,以及数据库与前端的那点事儿
java
Muscleheng7 小时前
SpringBoot 集成 DeepSeek 实现 RAG 文档问答
java·spring boot·ai·springai
2401_894915538 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
2501_936415698 小时前
可变参数&综合练习&斗地主游戏
java·windows·游戏
麻瓜老宋8 小时前
AI开发C语言应用按步走,表达式计算器calc的第二十二步,分号赋值链式修复、TOKEN_ASSIGN
c语言·开发语言·atomcode
极客先躯9 小时前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
xqqxqxxq9 小时前
Java Socket 多人聊天室(私聊+群聊)技术笔记(V4版本)
java·网络·笔记
wang090710 小时前
自己动手写一个spring之aop_1
java·后端·spring
颜x小10 小时前
[C#] C++与c#语法对比
开发语言·c++·c#