<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 更多精彩內(nèi)容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java獲取視頻時長

    文檔

    java獲取視頻時長

    java可以通過視頻的url地址或者是上傳視頻文件有類型為(MultipartFile)的來獲取視頻的時長,兩個方法最后讀取的數(shù)據(jù)單位都是s(秒)。
    推薦度:
    導讀java可以通過視頻的url地址或者是上傳視頻文件有類型為(MultipartFile)的來獲取視頻的時長,兩個方法最后讀取的數(shù)據(jù)單位都是s(秒)。

    很多朋友都想知道java怎么獲取視頻時長?下面就一起來了解一下吧~

    可以通過視頻的url地址或者是上傳視頻 文件有類型為(MultipartFile)的來獲取視頻的時長。

    通過MultipartFile?的文件類型獲取視頻時長:

    這個方式的獲取比較好辦;直接上碼:類名=》VideoUtil.java

    /**
    ?????*?通過MultipartFile?的文件類型獲取視頻時長
    ?????*?@param?file
    ?????*?@return
    ?????*/
    ????public?Integer?ReadVideoTimeMs(MultipartFile?file)?{
    ????????Encoder?encoder?=?new?Encoder();
    ????????long?ms?=?0;
    ????????try?{
    ????????????//?獲取文件類型
    ????????????String?fileName?=?file.getContentType();
    ????????????//?獲取文件后綴
    ????????????String?pref?=?fileName.indexOf("/")?!=?-1???fileName.substring(fileName.lastIndexOf("/")?+?1,?fileName.length())?:?null;
    ????????????String?prefix?=?"."?+?pref;
    ????????????//?用uuid作為文件名,防止生成的臨時文件重復
    ????????????final?File?excelFile?=?File.createTempFile(UUID.randomUUID().toString().replace("-",?""),?prefix);
    ????????????//?MultipartFile?to?File
    ????????????file.transferTo(excelFile);
    ????????????MultimediaInfo?m?=?encoder.getInfo(excelFile);
    ????????????ms?=?m.getDuration();
    ????????????//程序結(jié)束時,刪除臨時文件
    ????????????VideoUtil.deleteFile(excelFile);
    ????????}?catch?(Exception?e)?{
    ????????????e.printStackTrace();
    ????????}
    ????????int?ss?=?1000;
    ????????int?mi?=?ss?*?60;
    ????????int?hh?=?mi?*?60;
    ????????int?dd?=?hh?*?24;
    ????????long?day?=?ms?/?dd;
    ????????long?hour?=?(ms?-?day?*?dd)?/?hh;
    ????????long?minute?=?(ms?-?day?*?dd?-?hour?*?hh)?/?mi;
    ????????long?second?=?(ms?-?day?*?dd?-?hour?*?hh?-?minute?*?mi)?/?ss;
    ????????Integer?timeMS?=?Math.toIntExact(hour?*?3600?+?minute?*?60?+?second);
    ????????return?timeMS;
    ????}
    ????/**
    ?????*?通過url地址獲取視頻時長
    ?????*?@param?fileName
    ?????*?@return
    ?????*/
    ????public?Integer?FileVideoTimeMs(String?fileName){
    ????????Encoder?encoder?=?new?Encoder();
    ????????long?ms?=?0;
    ????????try?{
    ????????????File?file?=?getFileByUrl(fileName);
    ????????????MultimediaInfo?m?=?encoder.getInfo(file);
    ????????????ms?=?m.getDuration();
    ????????????VideoUtil.deleteFile(file);
    ????????}catch?(Exception?e){
    ????????????e.printStackTrace();
    ????????}
    ????????int?ss?=?1000;
    ????????int?mi?=?ss?*?60;
    ????????int?hh?=?mi?*?60;
    ????????int?dd?=?hh?*?24;
    ????????long?day?=?ms?/?dd;
    ????????long?hour?=?(ms?-?day?*?dd)?/?hh;
    ????????long?minute?=?(ms?-?day?*?dd?-?hour?*?hh)?/?mi;
    ????????long?second?=?(ms?-?day?*?dd?-?hour?*?hh?-?minute?*?mi)?/?ss;
    ????????Integer?timeMS?=?Math.toIntExact(hour?*?3600?+?minute?*?60?+?second);
    ????????return?timeMS;
    ????}

    通過url地址獲取視頻時長

    url地址來獲取的時長需要做一定的轉(zhuǎn)換,要先獲取文件

    主要的方法代碼:類名 =》VideoUtil.java

    /**
    ?????*?通過url地址獲取視頻時長
    ?????*?@param?fileName
    ?????*?@return
    ?????*/
    ????public?Integer?FileVideoTimeMs(String?fileName){
    ????????Encoder?encoder?=?new?Encoder();
    ????????long?ms?=?0;
    ????????try?{
    ????????????File?file?=?getFileByUrl(fileName);
    ????????????MultimediaInfo?m?=?encoder.getInfo(file);
    ????????????ms?=?m.getDuration();
    ????????????VideoUtil.deleteFile(file);
    ????????}catch?(Exception?e){
    ????????????e.printStackTrace();
    ????????}
    ????????int?ss?=?1000;
    ????????int?mi?=?ss?*?60;
    ????????int?hh?=?mi?*?60;
    ????????int?dd?=?hh?*?24;
    ????????long?day?=?ms?/?dd;
    ????????long?hour?=?(ms?-?day?*?dd)?/?hh;
    ????????long?minute?=?(ms?-?day?*?dd?-?hour?*?hh)?/?mi;
    ????????long?second?=?(ms?-?day?*?dd?-?hour?*?hh?-?minute?*?mi)?/?ss;
    ????????Integer?timeMS?=?Math.toIntExact(hour?*?3600?+?minute?*?60?+?second);
    ????????return?timeMS;
    ????}

    getFileByUrl()方法 :類名 =》VideoUtil.java

    public?static?File?getFileByUrl(String?url)?throws??IOException?{
    ????????File?tmpFile?=?File.createTempFile("temp",?".tmp");//創(chuàng)建臨時文件
    ????????VideoUrl.toBDFile(url,?tmpFile.getCanonicalPath());
    ????????return?tmpFile;
    ????}

    toBDFile() 方法:類名 =》VideoUrl.java

    public?static?void?toBDFile(String?urlStr,?String?bdUrl)?throws?IOException,?UnknownHostException?{
    ????????URL?url?=?new?URL(urlStr);
    ????????HttpURLConnection?conn?=?(HttpURLConnection)?url.openConnection();
    ????????DataInputStream?in?=?new?DataInputStream(conn.getInputStream());
    ????????byte[]?data?=?toByteArray(in);
    ????????in.close();
    ????????FileOutputStream?out?=?new?FileOutputStream(bdUrl);
    ????????out.write(data);
    ????????out.close();
    ????}
    toByteArray()方法:類名?=》VideoUrl.java
    public?static?byte[]?toByteArray(InputStream?in)?throws?IOException?{
    ????????ByteArrayOutputStream?out?=?new?ByteArrayOutputStream();
    ????????byte[]?buffer?=?new?byte[1024?*?4];
    ????????int?n?=?0;
    ????????while?((n?=?in.read(buffer))?!=?-1)?{
    ????????????out.write(buffer,?0,?n);
    ????????}
    ????????return?out.toByteArray();
    ????}

    不要忘記刪除自己生成的臨時文件:類名 =》VideoUtil.java

    /**
    ?????*?刪除臨時文件
    ?????*?@param?files
    ?????*/
    ????private?static?void?deleteFile(File...?files)?{
    ????????for?(File?file?:?files)?{
    ????????????if?(file.exists())?{
    ????????????????file.delete();
    ????????????}
    ????????}
    ????}

    總結(jié)

    兩個方法的獲取視頻的時長,最后讀取的數(shù)據(jù)單位都是s(秒)。

    以上就是小編今天的分享,希望能夠幫到大家。

    文檔

    java獲取視頻時長

    java可以通過視頻的url地址或者是上傳視頻文件有類型為(MultipartFile)的來獲取視頻的時長,兩個方法最后讀取的數(shù)據(jù)單位都是s(秒)。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java csrf java獲取請求域名 java獲取路徑 java cssbox java獲取運行時間 java ctp java獲取隨機字符串 java daemon java獲取隨機數(shù) java dashboard java獲得當前路徑 java表單校驗 java dataframe java規(guī)則引擎 java dataset java讀取json java讀取本地excel java decaf java調(diào)python java decode java crontab java獲取網(wǎng)絡時間 java crash java獲取秒級時間戳 java core java獲取泛型class java corba java cookie java獲取本地ip java controller java獲取本周日期 java context japanese java 微信怎么群發(fā)消息 java獲取時間差 java獲取文件名后綴 微博賬號怎么注銷 excel如何換行 java獲取當月最后一天日期 excel去重
    Top 久久蜜桃精品一区二区三区| 国产亚洲精品精品国产亚洲综合| 99精品国产成人a∨免费看| 一本大道无码日韩精品影视_| 91麻豆精品国产91久久久久久| 中文字幕精品一区二区三区视频| 国产精品视频无圣光一区| 国产成人精品久久二区二区| 国产精品无码A∨精品影院| 高清在线亚洲精品国产二区| 国产人妻777人伦精品hd| 亚洲精品高清国产麻豆专区 | 精品91自产拍在线观看| 国内精品福利视频| 亚洲国产成人精品青青草原| 久9热免费精品视频在线观看| 二区久久国产乱子伦免费精品| 色婷婷久久久SWAG精品| 大香视频伊人精品75| 亚洲精品一二三区| 精品国产污污免费网站aⅴ| 亚洲精品国产成人专区| 久久精品视频网站| 99精品国产99久久久久久97| 久久se精品一区二区影院| 亚洲国产精品国产自在在线 | 一本大道无码人妻精品专区| 国产精品乱码在线观看| 香蕉久久精品国产| 日韩亚洲综合精品国产| 精品久久久久久无码人妻中文字幕| 999国内精品永久免费观看| 91精品日韩人妻无码久久不卡| 久久精品午夜一区二区福利| 99久久综合给久久精品| 99热在线只有精品| 99ee6热久久免费精品6| 99国产精品视频久久久久| 精品三级AV无码一区| 亚洲精品在线免费观看视频| 亚洲一区精品视频在线|