JAVA代码视频转GIF(亲测有效)
1.说明
本次使用的是JAVA代码视频转GIF,maven如下:
<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>
整体代码如下:
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的版本信息,那么就说明安装成功了。

这样就安装好了,然后你去跑代码,如果还不行,重启电脑!!!!,再试一下,我重启完就可以了。
相关文章:
JAVA代码视频转GIF(亲测有效)
1.说明 本次使用的是JAVA代码视频转GIF,maven如下: <dependency><groupId>ws.schild</groupId><artifactId>jave-nativebin-win64</artifactId><version>3.2.0</version></dependency><dependency&…...
挑战100天 AI In LeetCode Day03(热题+面试经典150题)
挑战100天 AI In LeetCode Day03(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-52.1 题目2.2 题解 三、面试经典 150 题-53.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&am…...
【手写模拟Spring底层原理】
文章目录 模拟Spring底层详解1、结合配置类,扫描类资源1.1、创建需要扫描的配置类AppConfig,如下:1.2、创建Spring容器对象LyfApplicationContext,如下1.3、Spring容器对象LyfApplicationContext扫描资源 2、结合上一步的扫描&…...
代码随想录训练营Day1:二分查找与移除元素
本专栏内容为:代码随想录训练营学习专栏,用于记录训练营的学习经验分享与总结。 文档讲解:代码随想录 视频讲解:二分查找与移除元素 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚…...
回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测
回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测 目录 回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现PCA-PLS主成分降维结合偏小二乘回归预测(完整源码和数据) 1.输…...
高效的测试覆盖率:在更短的时间内最大化提高测试覆盖率
软件测试在敏捷开发生命周期中至关重要,而测试覆盖率又是软件测试的一个重要指标,有效的测试覆盖率对软件测试来说永远是重中之重。测试覆盖率确保所有关键功能和特性都经过彻底测试,减少最终产品中出现错误和错误的可能性(取决于…...
Qt 项目实战 | 音乐播放器
Qt 项目实战 | 音乐播放器 Qt 项目实战 | 音乐播放器播放器整体架构创建播放器主界面媒体对象状态实现播放列表实现桌面歌词添加系统托盘图标 资源下载 官方博客:https://www.yafeilinux.com/ Qt开源社区:https://www.qter.org/ 参考书:《Q…...
JavaScript使用Ajax
Ajax(Asynchronous JavaScript and XML)是使用JavaScript脚本,借助XMLHttpRequest插件,在客户端与服务器端之间实现异步通信的一种方法。2005年2月,Ajax第一次正式出现,从此以后Ajax成为JavaScript发起HTTP异步请求的代名词。2006…...
Python爬虫实战-批量爬取美女图片网下载图片
大家好,我是python222小锋老师。 近日锋哥又卷了一波Python实战课程-批量爬取美女图片网下载图片,主要是巩固下Python爬虫基础 视频版教程: Python爬虫实战-批量爬取美女图片网下载图片 视频教程_哔哩哔哩_bilibiliPython爬虫实战-批量爬取…...
uniapp+uview2.0+vuex实现自定义tabbar组件
效果图 1.在components文件夹中新建MyTabbar组件 2.组件代码 <template><view class"myTabbarBox" :style"{ backgroundColor: backgroundColor }"><u-tabbar :placeholder"true" zIndex"0" :value"MyTabbarS…...
opencv 任意两点切割图像
目录 opencv python直线切割图像,把图像分为两个多边形 升级版,把多边形分割抠图出来,取最小外接矩形:...
rust变量绑定、拷贝、转移、引用
目录 一,clone、copy 1,基本类型 2,类型的clone特征 3,显式声明结构体的clone特征 4,类型的copy特征 5,显式声明结构体的clone特征 5,变量和字面量的特征 6,特征总结 二&am…...
Java多种方式向图片添加自定义水印、图片转换及webp图片压缩
给个创建水印的示例: /*** 获取水印** param watermarkText 水印文字* return 水印bufferimage*/public static BufferedImage getWatermark(String watermarkText) {BufferedImage measureBufferdImage new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB…...
基于Pytorch框架的LSTM算法(二)——多维度单步预测
1.项目说明 **选用Close和Low两个特征,使用窗口time_steps窗口的2个特征,然后预测Close这一个特征数据未来一天的数据 当batch_firstTrue,则LSTM的inputs(batch_size,time_steps,input_size) batch_size len(data)-time_steps time_steps 滑动窗口&…...
cnn感受野计算方法
No. Layers Kernel Size Stride 1 Conv1 33 1 2 Pool1 22 2 3 Conv2 33 1 4 Pool2 22 2 5 Conv3 33 1 6 Conv4 33 1 7 Pool3 2*2 2 感受野初始值 l 0 1 l_0 1l 0 1,每层的感受野计算过程如下: l 0 1 l_0 1l 0 1 l 1 1 ( 3 − 1 ) 3 l_1 1…...
百分点科技受邀参加“第五届治理现代化论坛”
11月4日,由北京大学政府管理学院主办的“面向新时代的人才培养——第五届治理现代化论坛”举行,北京大学校党委常委、副校长、教务长王博,政府管理学院院长燕继荣参加开幕式并致辞,百分点科技董事长兼CEO苏萌受邀出席论坛…...
基于Springboot的智慧食堂设计与实现(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的智慧食堂设计与实现(有报告)。Javaee项目,springboot项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项…...
「Verilog学习笔记」多功能数据处理器
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 注意题目要求输入信号为有符号数,另外输出信号可能是输入信号的和,所以需要拓展一位,防止溢出。 timescale 1ns/1ns module data_…...
OpenHarmony 4.0 Release 编译异常处理
一、环境配置 编译环境:Ubuntu 20.04 OpenHarmony 软件版本:4.0 Release 设备平台:rk3568 二、下拉代码 参考官网步骤: OpenHarmony 4.0 Release 源码获取 repo init -u https://gitee.com/openharmony/manifest -b OpenHarmo…...
软件测试|MySQL LIKE:深入了解模糊查询
简介 在数据库查询中,模糊查询是一种强大的技术,可以用来搜索与指定模式匹配的数据。MySQL数据库提供了一个灵活而强大的LIKE操作符,使得模糊查询变得简单和高效。本文将详细介绍MySQL中的LIKE操作符以及它的用法,并通过示例演示…...
Windows 11下用NoneBot2 + go-cqhttp rc5搭建QQ机器人,保姆级避坑指南(附最新扫码登录解决方案)
Windows 11下搭建QQ机器人的全流程避坑指南 最近在Windows 11上折腾QQ机器人时,发现不少朋友卡在了各种配置环节。特别是QQ协议更新后,传统的扫码登录方式频频报错,让不少开发者头疼不已。本文将基于NoneBot2框架和go-cqhttp rc5版本…...
Video-Downloader:跨平台视频下载工具的完整实践指南
Video-Downloader:跨平台视频下载工具的完整实践指南 【免费下载链接】Video-Downloader 下载youku,letv,sohu,tudou,bilibili,acfun,iqiyi等网站分段视频文件,提供mac&win独立App。 项目地址: https://gitcode.com/gh_mirrors/vi/Video-Downloade…...
ABAP批量导入Excel数据实战:从文件选择到数据库插入的完整流程
ABAP高效Excel数据导入:从基础实现到性能优化的完整指南 在企业级SAP系统开发中,Excel数据批量导入是每个ABAP开发者必须掌握的技能。无论是期初数据加载、日常业务数据维护,还是系统间数据交换,高效可靠的数据导入机制都能显著提…...
【Overleaf实战】让IEEE LaTeX模板完美兼容中文:从编码原理到一键配置
1. 为什么IEEE模板默认不支持中文? 第一次在Overleaf上用IEEE模板写中文论文时,我也遇到过编译后满屏问号的崩溃场景。后来发现这背后藏着三个关键因素:LaTeX引擎的历史包袱、IEEE模板的设计初衷,以及编码方式的代际差异。 早期的…...
别再只用clicked了!QPushButton的mouseDoubleClickEvent实战:从继承关系到完整代码实现
深入Qt事件机制:从QPushButton双击事件看自定义控件开发 在Qt开发中,按钮交互是最基础却最容易产生误解的环节。许多开发者习惯性地使用clicked()信号处理点击事件,但当需要实现双击功能时,往往会陷入困惑——为什么QPushButton没…...
MinGW-w64深度解析:从源码编译到专业Windows开发环境搭建
MinGW-w64深度解析:从源码编译到专业Windows开发环境搭建 【免费下载链接】mingw-w64 (Unofficial) Mirror of mingw-w64-code 项目地址: https://gitcode.com/gh_mirrors/mi/mingw-w64 MinGW-w64是Windows平台上最完整的GNU工具链实现,为开发者提…...
2025届必备的十大AI论文神器推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 能够降低AI生成文本检测相似度的工具,常常被称作“降AI工具”。它的核心原理是经…...
保姆级指南:用MBIST算法给SRAM‘体检’,手把手解读故障模型与修复策略
保姆级指南:用MBIST算法给SRAM‘体检’,手把手解读故障模型与修复策略 在数字IC设计中,SRAM作为嵌入式存储的核心部件,其可靠性直接影响芯片整体良率。本文将带您深入理解如何通过MBIST(Memory Built-In Self-Test&…...
IC618环境下EMX 5.7保姆级安装与破解指南(附Virtuoso内嵌避坑点)
IC618与EMX 5.7深度集成实战:从安装到电感仿真的全链路指南 在半导体设计领域,电感器件的精确仿真一直是射频集成电路(RFIC)设计中的关键挑战。传统方法往往需要依赖第三方工具进行数据交换,不仅效率低下,还…...
20260422 反向代理实践环境
一、反向代理实践环境 1.1 环境架构服务器主机名IP地址客户端client.jiang.cloud10.1.8.11Nginx服务器proxy.jiang.cloud10.1.8.20Nginx服务器nginx1.jiang.cloud10.1.8.21Nginx服务器nginx2.jiang.cloud10.1.8.22Nginx服务器nginx3.jiang.cloud10.1.8.23# 所有节点 [rootclien…...
