千家信息网

怎么用Java来实现把视频批量转换为gif动态图

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,本篇内容主要讲解"怎么用Java来实现把视频批量转换为gif动态图",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Java来实现把视频批量转换为gif
千家信息网最后更新 2025年02月05日怎么用Java来实现把视频批量转换为gif动态图

本篇内容主要讲解"怎么用Java来实现把视频批量转换为gif动态图",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Java来实现把视频批量转换为gif动态图"吧!

本功能实现需要用到第三方jar包 jave,JAVE 是java调用FFmpeg的封装工具。

spring boot项目pom文件中添加以下依赖

                                            ws.schild                        jave-core                        3.1.1                                                                  ws.schild                        jave-nativebin-win64                        3.1.1                                                             ws.schild                        jave-nativebin-linux64                        3.1.1                

Java单类实现代码,复制到Spring boot项目中,用idea编辑器 主方法运行。

import ws.schild.jave.Encoder;import ws.schild.jave.EncoderException;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;import java.util.Arrays; public class VideoToGIf {     //输出格式    private static final String outputFormat = "gif";      /**     * 获得转化后的文件名     *     * @param sourceFilePath : 源视频文件路径     * @return     */    public static String getNewFileName(String sourceFilePath) {        File source = new File(sourceFilePath);        String fileName = source.getName().substring(0, source.getName().lastIndexOf("."));        return fileName + "." + outputFormat;    }     /**     * 转化音频格式     *     * @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 ,值越大越流畅            video.setFrameRate(10);            //设置视频分辨率            VideoSize targetSize = new VideoSize(sourceSize.getWidth() / 5, sourceSize.getHeight() / 5);            video.setSize(targetSize);            //设置转码属性            EncodingAttributes attrs = new EncodingAttributes();            attrs.setVideoAttributes(video);            // 音频转换格式类            Encoder encoder = new Encoder();            encoder.encode(mediaObject, target, attrs);            System.out.println("转换已完成...");        } catch (EncoderException e) {            e.printStackTrace();        }    }     /**     * 批量转化视频格式     *     * @param sourceFolderPath : 源视频文件夹路径     * @param targetFolderPath : 目标gif文件夹路径     * @return     */    public static void batchTransform(String sourceFolderPath, String targetFolderPath) {        File sourceFolder = new File(sourceFolderPath);        if (sourceFolder.list().length != 0) {            Arrays.asList(sourceFolder.list()).forEach(e -> {                transform(sourceFolderPath + "\" + e, targetFolderPath + "\" + getNewFileName(e));            });        }    }      public static void main(String[] args) {        batchTransform("C:\Users\tarzan\Desktop\video", "C:\Users\tarzan\Desktop\gif");    }  }

到此,相信大家对"怎么用Java来实现把视频批量转换为gif动态图"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

视频 文件 路径 格式 动态 内容 分辨率 属性 文件夹 方法 目标 音频 项目 学习 实用 更深 流畅 代码 兴趣 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 静安区企业软件开发报价有哪些 华盾信安网络技术有限公司 北京第五纬度网络技术有限公司 江宁区网络技术服务专业服务 炫舞时代服务器无法连接 电竞改网络安全大赛 俄罗斯网络安全教授 数据库管理技术人员 软件开发项目的概述 吴通控股网络安全 双线服务器的配置 网络安全的征文100字 关于心理的网络安全手抄报 geo数据库找某个基因表达量 电力行业网络安全审计 戴尔服务器磁盘灯亮一个 网络安全产品现在有什么新方向 数据库为什么备份不成功 护苗网络安全课堂第一期 网络技术服务费进项税额 雅安软件开发公司推荐 网络安全民警评语 明日之后九游渠道服全部服务器 河北邢台app软件开发工程师 售电管理系统数据库删除 数据库默认存储方式 数据库原理方面的书籍 扫黄打非网络安全课主题班会 云服务器如何申请数据库 ibm老服务器boot
0