最近需要用java处理视频文件,读取视频的时长,在网上查,没找到合适的方法,用JMF吧,支持的格式太少,用JNI去读取其他语言写的API,但比较麻烦。无意中找到了jave这个开源的项目,看了看介绍,是用java来处理多种视频格式之间的转换的,下载了下来,看了看,还真找到了获取视频时长的方法。记录下来,给需要朋友做个参考。
下载jave的网址http://www.sauronsoftware.it/projects/jave/index.php
总共只有一个jar包,API也非常简单,不说了,贴代码:
package com.jave;
import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.MultimediaInfo;
import java.io.File;
public class ReadVideo {
publicstatic void main(String[] args){
File source= new File("E:\\测试视频\\R41.avi");
Encoderencoder = new Encoder();
try {
MultimediaInfo m = encoder.getInfo(source);
long ls = m.getDuration();
System.out.println("此视频时长为:"+ls/60000+"分"+(ls`000)/1000+"秒!");
} catch(Exception e) {
e.printStackTrace();
}
}
}
jave支持的格式很多,有几十种,有兴趣的朋友可以试试。