Java用20行代码实现抖音小视频批量转换为gif动态图

2025-05-29 0 83

本文主要介绍了Java用20行代码实现抖音小视频批量转换为gif动态图,分享给大家,具体如下:

效果图

Java用20行代码实现抖音小视频批量转换为gif动态图

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

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
<!-- https://mvnrepository.com/artifact/ws.schild/jave-core -->

<dependency>

<groupId>ws.schild</groupId>

<artifactId>jave-core</artifactId>

<version>3.1.1</version>

</dependency>

<!-- 以下依赖根据系统二选一 -->

<!-- win系统平台的依赖 -->

<dependency>

<groupId>ws.schild</groupId>

<artifactId>jave-nativebin-win64</artifactId>

<version>3.1.1</version>

</dependency>

<!-- linux系统平台的依赖 -->

<dependency>

<groupId>ws.schild</groupId>

<artifactId>jave-nativebin-linux64</artifactId>

<version>3.1.1</version>

</dependency>

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89
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用20行代码实现抖音小视频批量转换为gif动态图

再桌面建立video文件夹,将要转换的视频文件放入进去。(gif文件夹可以不建,程序会自动生成)

Java用20行代码实现抖音小视频批量转换为gif动态图

视频文件

Java用20行代码实现抖音小视频批量转换为gif动态图

转化后的git文件

Java用20行代码实现抖音小视频批量转换为gif动态图

测试结果

视频格式为mp4,大小约4.77MB,转为同分辨率,帧率为5的gif文件,大小约4.70MB,转化时间1s左右。

相关文章《震惊,java仅用30行代码就实现了视频转音频的批量转换》

到此这篇关于Java用20行代码实现抖音小视频批量转换为gif动态图的文章就介绍到这了,更多相关Java视频批量转换为gif内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/weixin_40986713/article/details/115939961

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java用20行代码实现抖音小视频批量转换为gif动态图 https://www.kuaiidc.com/105264.html

相关文章

发表评论
暂无评论