JAVE获取视频时长

最近有看一些专业相关视频,想统计一下视频的总时长,查找资料找到开源工具
JAVE可以实现这个功能

JAVE - A Java Audio/Video Encoder (based on FFMPEG)
jar包及源码下载链接

获取一个目录下所有视频的总时长,代码如下:

package it.road.com;

import java.io.File;

import it.sauronsoftware.jave.Encoder;
import it.sauronsoftware.jave.EncoderException;
import it.sauronsoftware.jave.InputFormatException;
import it.sauronsoftware.jave.MultimediaInfo;

public class GetVideoTime {

    void GetTime(String path){
        //Get File paths
        File[] files = new File(path).listFiles();

        //Print the files name in the path
        for(int i = 0; i < files.length; i++){
            String str = files[i].getName();
            System.out.println(str);
        }

        //Create Encoder and MultimediaInfo Object
        Encoder encoder = new Encoder();
        MultimediaInfo multinfo;

        long totalTime = 0L;
        long duration = 0L;

        for(int i = 0; i < files.length; i++){
            try {
                multinfo = encoder.getInfo(files[i]);
                duration = multinfo.getDuration();
                totalTime += duration;
                //System.out.print(multinfo.getDuration());
                //System.out.print("  ");
            } catch (InputFormatException e) {
                e.printStackTrace();
            } catch (EncoderException e) {
                e.printStackTrace();
            }
        }

        System.out.print(totalTime/(3600*1000) + ":" 
        + totalTime%(3600*1000)/(60*1000)+ ":" 
        + totalTime%(3600*1000)%(60*1000)/1000);

    }

    public static void main(String args[]) {
        GetVideoTime gettime = new GetVideoTime();
        //gt.GetTime("E:\\SSH-JavaEE\\workspace\\SSHDemo\\src\\com\\hotelMana\\action\\user");
        gettime.GetTime("E:\\视频\\day15\\day15_avi");
    }
}

猜你喜欢

转载自blog.csdn.net/z_muyangren/article/details/78961955