java 获取MP4时长 | Java工具类
Posted 剑客阿良_ALiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 获取MP4时长 | Java工具类相关的知识,希望对你有一定的参考价值。
目录
简述
获取mp4视频的时长,没啥好说明的。
Maven依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mp4parser</groupId>
<artifactId>isoparser</artifactId>
<version>1.9.41</version>
</dependency>
获取结果单位毫秒
上代码
import lombok.extern.slf4j.Slf4j;
import org.mp4parser.IsoFile;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/** @Author huyi @Date 2021/10/20 11:09 @Description: MP4工具类 */
@Slf4j
public class Mp4Utils {
public static long readDuration(Path mp4Path) {
if (Files.notExists(mp4Path) || !Files.isReadable(mp4Path)) {
log.warn("文件路径不存在或不可读 {}", mp4Path);
return 0;
}
try {
IsoFile isoFile = new IsoFile(mp4Path.toFile());
long duration = isoFile.getMovieBox().getMovieHeaderBox().getDuration();
// long timescale = isoFile.getMovieBox().getMovieHeaderBox().getTimescale();
return duration;
} catch (IOException e) {
log.error("读取MP4文件时长出错", e);
return 0;
}
}
public static void main(String[] args) {
System.out.println(readDuration(Paths.get("C:\\\\Users\\\\huyi\\\\Desktop\\\\测试.mp4")));
}
}
执行结果:
验证结果:
获取结果单位秒
上代码
import lombok.extern.slf4j.Slf4j;
import org.mp4parser.IsoFile;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/** @Author huyi @Date 2021/10/20 11:09 @Description: MP4工具类 */
@Slf4j
public class Mp4Utils {
public static long readDuration(Path mp4Path) {
if (Files.notExists(mp4Path) || !Files.isReadable(mp4Path)) {
log.warn("文件路径不存在或不可读 {}", 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) {
log.error("读取MP4文件时长出错", e);
return 0;
}
}
public static void main(String[] args) {
System.out.println(readDuration(Paths.get("C:\\\\Users\\\\huyi\\\\Desktop\\\\测试.mp4")));
}
}
执行结果:
总结
没啥好总结的,今天南京好冷。
如果本文对你有帮助,请点个赞支持一下吧。
以上是关于java 获取MP4时长 | Java工具类的主要内容,如果未能解决你的问题,请参考以下文章
Java 实现音频添加自定义时长静音(附代码) | Java工具类
Java 实现音频添加自定义时长静音(附代码) | Java工具类
15Java常用类(数组工具类Arrays)基本类型包装类(Integer类)正则表达式String的split(String regex)和replaceAll(String regex, (代码片