<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></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精品国产麻豆| 国产精品福利电影| 久久亚洲精品AB无码播放| 亚洲A∨午夜成人片精品网站| 亚洲精品国产综合久久久久紧| 日韩精品区一区二区三VR| 97久久精品午夜一区二区| 国产精品主播叶子闺蜜| 亚洲精品GV天堂无码男同| 97国产精品视频观看一| 久久国产精品一区二区| 精品一区二区三区高清免费观看| 国产精品jizz观看| 青青国产精品视频| 国内精品伊人久久久久妇| 久久国产精品一国产精品金尊 | 午夜精品久久久久久中宇| 久久久久国产成人精品亚洲午夜 | 三级精品在线观看| 色妞www精品视频免费看| 国内精品福利在线视频| 国产精品久久久久久五月尺| 精品国产乱码一区二区三区| 91精品国产免费久久国语麻豆| 久久国产精品系列| 久久精品一区二区三区资源网| 国产69精品久久久久久人妻精品 | 思99热精品久久只有精品| 国产精品被窝福利一区| 日韩精品人成在线播放| 国产尤物在线视精品在亚洲| 热99re久久精品精品免费| mm1313亚洲国产精品无码试看| 人妻精品久久无码区| 久久精品成人一区二区三区| 97热久久免费频精品99| 国产精品1区2区| 亚洲日韩精品国产3区| 亚洲Av永久无码精品黑人| 久久亚洲欧美国产精品|