Java如何獲取視頻文件的視頻時(shí)長(zhǎng)
Java獲取視頻文件的視頻時(shí)長(zhǎng)
1、導(dǎo)入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”
如果在運(yùn)行過(guò)程中報(bào)錯(cuò):
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
問(wèn)題分析:
org.slf4j.impl.StaticLoggerBinder
通常存在于slf4j-nop.jar和slf4j-simple.jar
中,雖然項(xiàng)目maven中已引入了simple包,但依然存在報(bào)錯(cuò)。
說(shuō)明simple包未真正被加載。
為了讓包更好的加載,在依賴中添加type為jar后,問(wèn)題得到解決。
<!-- 依賴軟件版本 --> <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> <!-- 注意,若無(wú)type為jar則報(bào)錯(cuò)--> <type>jar</type> </dependency>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中IO流之字符流與字節(jié)流的轉(zhuǎn)換方式
在Java中,字節(jié)流與字符流是處理數(shù)據(jù)的兩種方式,字節(jié)流適用于處理各種數(shù)據(jù)類型,如圖片、音頻等非文本數(shù)據(jù),而字符流專門(mén)用于處理文本數(shù)據(jù),Java提供了InputStreamReader和OutputStreamWriter這兩個(gè)類來(lái)實(shí)現(xiàn)字節(jié)流向字符流的轉(zhuǎn)換2024-10-10java開(kāi)發(fā)中的誤區(qū)和細(xì)節(jié)整理
這篇文章給大家整理了關(guān)于JAVA開(kāi)發(fā)中的細(xì)節(jié)以及經(jīng)常進(jìn)入的誤區(qū)整理,希望我們整理的內(nèi)容能夠給大家提供到幫助。2018-04-04使用@Value 注入 List 類型的配置屬性需要注意的 BUG
這篇文章主要介紹了使用@Value 注入 List 類型的配置屬性需要注意的 BUG,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Spring Boot 2.x中Actuator的一些知識(shí)點(diǎn)
這篇文章主要給大家介紹了關(guān)于Spring Boot 2.x中Actuator的一些知識(shí)點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot 2.x具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09SpringBoot熱部署啟動(dòng)關(guān)閉流程詳解
Spring?Boot啟動(dòng)熱部署是一種技術(shù),它能讓開(kāi)發(fā)者在不重啟應(yīng)用程序的情況下實(shí)時(shí)更新代碼。這樣可以提高開(kāi)發(fā)效率,避免頻繁重啟應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-04-04SpringBoot如何實(shí)現(xiàn)并發(fā)任務(wù)并返回結(jié)果
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)并發(fā)任務(wù)并返回結(jié)果問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Spring Cloud Gateway替代zuul作為API網(wǎng)關(guān)的方法
本文簡(jiǎn)要介紹如何使用Spring Cloud Gateway 作為API 網(wǎng)關(guān)(不是使用zuul作為網(wǎng)關(guān)),結(jié)合實(shí)例代碼給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧2023-02-02Java設(shè)計(jì)模式之java模板方法模式詳解
這篇文章主要介紹了Java設(shè)計(jì)模式模板方法模式(Template)用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09