用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();
int second = (int)(((double)ls/60000-ls/60000)*60);
System.out.println("此视频时长为:"+ls/60000+"分"+ second+"秒!");
} catch(Exception e) {
e.printStackTrace();
}
}
}
jave支持的格式很多,有几十种,有兴趣的朋友可以试试。
http://blog.sina.com.cn/s/blog_49cc672f010149ir.html
http://blog.sina.com.cn/s/blog_49cc672f010149ir.html