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

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

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

package com.naughty.userlogin02;
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");}}

运行结果:

视频转换成功

maven地址:https://download.csdn.net/download/fo_xi/18470560
此文章有帮助到你吗?有问题随时交流!!!

用Java实现抖音等各种小视频批量转换为gif动态图相关推荐

  1. Java用20行代码实现抖音小视频批量转换为gif动态图【值得收藏】

    效果图 本功能实现需要用到第三方jar包 jave,JAVE 是java调用FFmpeg的封装工具. spring boot项目pom文件中添加以下依赖 <!-- https://mvnrepo ...

  2. Android逆向之旅---Android中分析抖音和火山小视频的数据请求加密协议(IDA动态调试SO)

    一.前言 最近萌发了一个做app的念头,大致什么样的app先暂时不说,后面会详细介绍这个app的开发流程和架构,不过先要解决一些技术前提问题,技术问题就是需要分析解密当前短视频四小龙:抖音,火山,秒拍 ...

  3. 抖小火山视频服务器维护中,抖音、火山小视频、悟空问答昨天都崩了

    原标题:抖音.火山小视频.悟空问答昨天都崩了 导读 宕机属于电脑运作的一种正常现象,任何电脑都会出现这种情况,服务器也不例外. 刺猬公社 | 石灿 昨天下午6点左右,抖音.火山小视频和悟空问答崩了!头 ...

  4. video downloadhelper 无时间限制_Python实现超简单【抖音】无水印视频批量下载

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:python乱炖 转载: Python实现超简单[抖音]无水印视频批 ...

  5. 抖音智能剪辑,视频批量发布,多账号管理,抖音搜索排名系统源码搭建

    抖音智能剪辑,视频批量发布,多账号管理,抖音搜索排名系统源码搭建: 申请流程: 注册官方开放平台账号--申请服务商---关联应用--申请权限---等待审核通过( 相关权限对接好,才能基于基础上开发,程 ...

  6. 爬虫进阶教程:抖音APP无水印视频批量下载

    一.前言 本文为两类人准备:技术控和工具控. 如果你是工具控,想简单方便地下载无水印的视频,那么可以使用第三方去水印平台: 抖音短视频解析下载平台 如果你是技术控,想要使用自己写的代码下载视频,那么可 ...

  7. 抖音回应火山小视频被判赔腾讯800万元:目前已提起上诉

    近日,因玩家未经腾讯授权直播<王者荣耀>游戏,火山小视频(现"抖音火山版")被广州知识产权法院认定侵权.法院一审判决平台停止直播相关游戏,并赔偿原告腾讯800万元. 对 ...

  8. 抖音、火山小视频通信协议加密算法

    原文链接:https://www.jianshu.com/p/e3a65b527433 -------------------------------------------------------- ...

  9. 抖音 vs 即刻小视频(微信小视频)-竞品对比

    玩了一段时间的抖音,然后最近又有微信推出来'即刻视频',又顺便体验了一段时间的即刻视频,作为一个80后的老阿姨,写点自己的体验.不喜勿喷,哈哈哈 关注点 抖音 即刻视频 入口 抖音APP 微信-我,下 ...

最新文章

  1. Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) B. Little Artem and Grasshopper 模拟题...
  2. postgresql根据字符分割数据为多列
  3. 服务器网卡显示100m,千兆网线8根线都通了怎么还是显示100M,网卡都是能用1000M的...
  4. POJ 1741tree-点分治入门
  5. bzoj2752 高速公路
  6. Elasticsearch--高级-映射_修改映射 数据迁移---全文检索引擎ElasticSearch工作笔记019
  7. java 各组件单击总数_java 获取面板上有多少个组件
  8. 当你成为大龄码农时,你会怎么找你的出路?
  9. U盘文件夹乱码无法删除的原因及解决方案
  10. extjs java 教程_[Java教程]ExtJS 第一个程序
  11. Meterpreter命令详解
  12. OPENSSH格式的private key转换成RSA格式生成pem文件
  13. Guass-newton
  14. Kingston DataTraveler G2 U盘量产全纪录
  15. cataclysm【题解】【考试】
  16. Oracle数据操作和控制语言详解
  17. 每天5分钟玩转K8S (看书笔记)
  18. javaSE探赜索隐之三<类与对象的爱恨情仇中>
  19. 滴滴 NewSQL 演进之 Fusion 实践
  20. 群晖域名注册_手把手教你在群晖NAS上用自己的域名实现https访问

热门文章

  1. 古风修仙美少女-InsCode Stable Diffusion 美图活动一期
  2. 伯虎点秋香-rqnoj-144
  3. cad查看_在查看CAD图纸时怎么将图层进行锁定
  4. mysql的用户名怎么看_怎么查看mysql的用户名和密码
  5. Splashtop OS独家评测
  6. 用Java语言解决三天打渔,两天晒网问题
  7. 云计算有这样一项就可以啦,云计算技术与应用课程线上线下混合式教学改革与实践
  8. 基于QT实现B树可视化程序设计
  9. 教她写代码的那些日子 5 字符串
  10. 窗口置顶小工具TopMost