千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"怎么用Java来实现把视频批量转换为gif动态图",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Java来实现把视频批量转换为gif
千家信息网最后更新 2026年11月01日怎么用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动态图"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0