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的版本信息,那么就说明安装成功了。

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

相关推荐
她说..8 分钟前
[黑马头条]-登录实现思路
java·spring boot·spring cloud
Chan1614 分钟前
【 SpringAI核心特性 | Prompt工程 】
java·spring boot·后端·spring·prompt·ai编程
wwjdr1 小时前
彻底搞懂Iterable 和 Iterator
java·面试
添乱1 小时前
「Java案例」利用方法打印乘法表
java
界面开发小八哥1 小时前
「Java EE开发指南」如何用MyEclipse创建企业应用项目?(一)
java·ide·java-ee·eclipse·myeclipse
添乱1 小时前
「Java案例」利用方法求反素数
java
wwjdr1 小时前
彻底搞懂 Comparable 和 Comparator
java·面试
Code季风1 小时前
深入理解 Spring 设计模式:从实现原理到思想精髓
java·spring·设计模式
GuGu20241 小时前
泛型知识理解
java
大葱白菜1 小时前
Java 字符集(Charset)详解:从编码基础到实战应用,彻底掌握字符处理核心机制
java·后端·程序员