获取视频大小 java

来源:互联网 发布:linux c udp socket 编辑:程序博客网 时间:2024/05/21 09:23

一、从正文中获取视频地址,将视频下载到本地,获取视频大小信息

这种方式很慢,很麻烦因为首先要把这个视频下载到本地,在从本地获取这个视频的信息在删除这个视频(不删除也可以,主要是时间长了东西多了站空间)

但没找到好的方法只能这样作了,如有好的方法还请大家赐教 非常感谢 ···


二、代码:

package com.soufun.util;import it.sauronsoftware.jave.Encoder;import it.sauronsoftware.jave.MultimediaInfo;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URISyntaxException;import java.net.URL;import java.util.Date;/** * 获取视屏的大小 *  * @author user * */public class VideoSize {public static void main(String[] args) throws URISyntaxException,MalformedURLException {Date begin = new Date();try {getRemoteFile("http://video2s.soufun.com/2015/04/27/bj/mp4/ef9ba790c9e74742ae5898aefe9232a1.mp4","d:/test1.flv");} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}// 下载到本地的视频File source = new File("d:/test1.flv");Encoder encoder = new Encoder();try {// 获取多媒体信息对象MultimediaInfo m = encoder.getInfo(source);// 调用方法获取时长long ls = m.getDuration();System.out.println("此视频时长为:" + ls / 1000 + "秒!");} catch (Exception e) {e.printStackTrace();}Date end = new Date();long time = end.getTime() - begin.getTime();System.out.println("耗时" + time / 1000);}private static boolean getRemoteFile(String strUrl, String fileName)throws IOException {URL url = new URL(strUrl);HttpURLConnection conn = (HttpURLConnection) url.openConnection();DataInputStream input = new DataInputStream(conn.getInputStream());DataOutputStream output = new DataOutputStream(new FileOutputStream(fileName));byte[] buffer = new byte[1024 * 8];int count = 0;while ((count = input.read(buffer)) > 0) {output.write(buffer, 0, count);}output.close();input.close();return true;}}


注: 程序中使用到的jave 架包下载地址如下:

                                                  

                                                      点击下载 jave1.0.1 架包

0 0