Java如何獲取視頻文件的視頻時長
更新時間:2025年02月11日 11:40:48 作者:Monly21
文章介紹了如何使用Java獲取視頻文件的視頻時長,包括導入maven依賴和代碼案例,同時,也討論了在運行過程中遇到的SLF4J加載問題,并給出了解決方案
Java獲取視頻文件的視頻時長
1、導入maven依賴
<dependency> <groupId>org.mp4parser</groupId> <artifactId>isoparser</artifactId> <version>1.9.41</version> </dependency>
2、代碼案例
import com.alibaba.fastjson2.JSON; import org.mp4parser.IsoFile; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.text.ParseException; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.util.*; public class Test { public static void main(String[] args) throws ParseException { long spsj = readDuration(Paths.get("C:\\Users\\Administrator\\Desktop\\ceshi.mp4")); System.out.println(spsj); } public static long readDuration(Path mp4Path) { if (Files.notExists(mp4Path) || !Files.isReadable(mp4Path)) { System.out.println("文件路徑不存在或不可讀 " + mp4Path); return 0; } try { IsoFile isoFile = new IsoFile(mp4Path.toFile()); long duration = isoFile.getMovieBox().getMovieHeaderBox().getDuration(); long timescale = isoFile.getMovieBox().getMovieHeaderBox().getTimescale(); return duration / timescale; } catch (IOException e) { e.printStackTrace(); return 0; } } }
3、SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”
如果在運行過程中報錯:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
問題分析:
org.slf4j.impl.StaticLoggerBinder
通常存在于slf4j-nop.jar和slf4j-simple.jar
中,雖然項目maven中已引入了simple包,但依然存在報錯。
說明simple包未真正被加載。
為了讓包更好的加載,在依賴中添加type為jar后,問題得到解決。
<!-- 依賴軟件版本 --> <properties> <slf4j.version>1.7.30</slf4j.version> </properties> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${slf4j.version}</version> <!-- 注意,若無type為jar則報錯--> <type>jar</type> </dependency>
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用@Value 注入 List 類型的配置屬性需要注意的 BUG
這篇文章主要介紹了使用@Value 注入 List 類型的配置屬性需要注意的 BUG,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Spring Boot 2.x中Actuator的一些知識點
這篇文章主要給大家介紹了關于Spring Boot 2.x中Actuator的一些知識點,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot 2.x具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-09-09Spring Cloud Gateway替代zuul作為API網關的方法
本文簡要介紹如何使用Spring Cloud Gateway 作為API 網關(不是使用zuul作為網關),結合實例代碼給大家詳細講解,感興趣的朋友跟隨小編一起看看吧2023-02-02