package com.zcloud.common.utils;

import ws.schild.jave.MultimediaInfo;
import ws.schild.jave.MultimediaObject;
import ws.schild.jave.VideoInfo;

import java.io.File;
import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @author fangjiakai
 * @date 2023/10/20 10:10
 */
public class MP4Util {
    public static String getMP4Time(File video) {
        // 视频时长
        String time = "0";
        try {
            MultimediaObject media = new MultimediaObject(video);
            MultimediaInfo info = media.getInfo();
            // 时长，毫秒级
            long duration = info.getDuration();
            // 毫秒级时长转化为秒
            BigDecimal bigDecimal1 = new BigDecimal(duration);
            BigDecimal bigDecimal2 = new BigDecimal(1000);
            // 四舍五入，只保留整数
            time = bigDecimal1.divide(bigDecimal2, 0, RoundingMode.HALF_UP).toString();
//            // 获取媒体视频对象
//            VideoInfo video = info.getVideo();
//            // 码率
//            int bitRate = video.getBitRate();
//            // 帧率
//            float frameRate = video.getFrameRate();
//            // 分辨率-高
//            int height = video.getSize().getHeight();
//            // 分辨率-宽
//            int width = video.getSize().getWidth();
//            // 视频解码器名称
//            String decoder = video.getDecoder();
        } catch (Exception e) {
            e.getMessage();
        }
        return time;
    }
}
