太久没有更新了~今天来更新一篇简单的小需求。
最近哈猿需要实现在后台读取到某个视频文件的总时长,也就是:
在Java中实现获取视频文件的总时长
确定了需求,那当然就是直接在网上找方案了。的确,网上的方案有很多,大多数是基于ffmpeg,对于哈猿的实际试用环境并不合适。
最主要的原因就是,哈猿这个只是一个小功能,不需要使用到依赖包的大小达到上百兆。
经过一轮时间的摸爬滚打,最后确定使用 jcodec 来实现该功能。
引入依赖
<dependency><groupId>org.jcodec</groupId><artifactId>jcodec</artifactId><version>0.2.5</version>
</dependency>
代码中引用
String = "视频文件路径";
File file = new File(filePath);
MP4Demuxer mp4Demuxer = MP4Demuxer.createMP4Demuxer(NIOUtils.readableChannel(file));
DemuxerTrack track = mp4Demuxer.getVideoTrack();
int totalDuration = (int)track.getMeta().getTotalDuration();//取出数据的整数部分
需要注意的是:totalDuration返回来的值为double,例如10秒的视频返回的值是10.225这样的,所以只需取出totalDuration的整数部分即可
。
好啦~就分享到这里了,希望对你有帮助!