- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- Java用20行代碼實(shí)現抖音小視頻批量轉換為gif動(dòng)態(tài)
本文主要介紹了Java用20行代碼實(shí)現抖音小視頻批量轉換為gif動(dòng)態(tài)圖,分享給大家,具體如下:
效果圖
本功能實(shí)現需要用到第三方j(luò )ar包 jave,JAVE 是java調用FFmpeg的封裝工具。
spring boot項目pom文件中添加以下依賴(lài)
<!-- https://mvnrepository.com/artifact/ws.schild/jave-core --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-core</artifactId> <version>3.1.1</version> </dependency> <!-- 以下依賴(lài)根據系統二選一 --> <!-- win系統平臺的依賴(lài) --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-nativebin-win64</artifactId> <version>3.1.1</version> </dependency> <!-- linux系統平臺的依賴(lài) --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-nativebin-linux64</artifactId> <version>3.1.1</version> </dependency>
Java單類(lèi)實(shí)現代碼,復制到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); // 音頻轉換格式類(lèi) 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"); } }
運行結果截圖
再桌面建立video文件夾,將要轉換的視頻文件放入進(jìn)去。(gif文件夾可以不建,程序會(huì )自動(dòng)生成)
原視頻文件
轉化后的git文件
測試結果
視頻格式為mp4,大小約4.77MB,轉為同分辨率,幀率為5的gif文件,大小約4.70MB,轉化時(shí)間1s左右。
相關(guān)文章《》
到此這篇關(guān)于Java用20行代碼實(shí)現抖音小視頻批量轉換為gif動(dòng)態(tài)圖的文章就介紹到這了,更多相關(guān)Java小視頻批量轉換為gif內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站