国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JAVA獲取視頻音頻時長 文件大小 MultipartFileUtil和file轉(zhuǎn)換

這篇具有很好參考價值的文章主要介紹了JAVA獲取視頻音頻時長 文件大小 MultipartFileUtil和file轉(zhuǎn)換。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

java 獲取視頻時長_java獲取視頻時長_似夜曉星辰的博客-CSDN博客

<dependency>
            <groupId>ws.schild</groupId>
            <artifactId>jave-all-deps</artifactId>
            <version>2.5.1</version>
        </dependency>
@Slf4j
public class VideoTimeUtil {
    /**
     * 視頻時長
     *
     * @param fileUrl
     * @return String[] 0=秒時長,1=展示時長(格式如 01:00:00)
     */
    public static String[] parseDuration(String fileUrl) {
        String[] length = new String[2];
        try {
            //
//            URL source = new URL(fileUrl);
			// 構(gòu)造方法 接受URL對象
//            MultimediaObject instance = new MultimediaObject(source);
			// 構(gòu)造方法 接受File對象
            MultimediaObject instance = new MultimediaObject(new File(fileUrl));
            MultimediaInfo result = instance.getInfo();
            Long ls = result.getDuration() / 1000;
            length[0] = String.valueOf(ls);
            Integer hour = (int) (ls / 3600);
            Integer minute = (int) (ls % 3600) / 60;
            Integer second = (int) (ls - hour * 3600 - minute * 60);
            String hr = hour.toString();
            String mi = minute.toString();
            String se = second.toString();
            if (hr.length() < 2) {
                hr = "0" + hr;
            }
            if (mi.length() < 2) {
                mi = "0" + mi;
            }
            if (se.length() < 2) {
                se = "0" + se;
            }

            String noHour = "00";
            if (noHour.equals(hr)) {
                length[1] = mi + ":" + se;
            } else {
                length[1] = hr + ":" + mi + ":" + se;
            }

        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        return length;
    }
}

可以轉(zhuǎn)換文檔也可轉(zhuǎn)換視頻文章來源地址http://www.zghlxwxcb.cn/news/detail-632306.html

          <!--               java獲取視頻時長、分辨率、幀率、碼率     -->
            <dependency>
                 <groupId>ws.schild</groupId>
                <artifactId>jave-all-deps</artifactId>
                <version>2.6.0</version>
            </dependency>


package com.unicom.park.core.util;
 
import cn.hutool.core.io.unit.DataSize;
import cn.hutool.core.util.IdUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.google.common.collect.ImmutableList;
import javafx.util.Duration;
import org.apache.catalina.Manager;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import ws.schild.jave.EncoderException;
import ws.schild.jave.MultimediaInfo;
import ws.schild.jave.MultimediaObject;

import  java.io.File;

import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URL;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.List;

/**
 * MultipartFile和File互轉(zhuǎn)工具類
 */
public class MultipartFileUtil {
 
    /**
     * 輸入流轉(zhuǎn)MultipartFile
     *
     * @param fileName
     * @param inputStream
     * @return
     */
    public static MultipartFile getMultipartFile(String fileName, InputStream inputStream) {
        MultipartFile multipartFile = null;
        try {
            multipartFile = new MockMultipartFile(fileName, fileName,
                    ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return multipartFile;
    }
 
    /**
     * 讀取網(wǎng)絡文件
     *
     * @param url      文件地址
     * @param fileName 文件名稱(需帶文件名后綴)
     * @return
     */
    public static MultipartFile getMultipartFile(String url, String fileName) {
        HttpResponse response = HttpRequest.get(url).execute();
        InputStream inputStream = response.bodyStream();
        return MultipartFileUtil.getMultipartFile(fileName, inputStream);
    }

    /**
     * File 轉(zhuǎn)MultipartFile
     *
     * @param file
     * @return
     */
    public static MultipartFile getMultipartFile(File file) {
        FileInputStream fileInputStream = null;
        MultipartFile multipartFile = null;
        try {
            fileInputStream = new FileInputStream(file);
            multipartFile = new MockMultipartFile(file.getName(), file.getName(),
                    ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return multipartFile;
    }
 
    /**
     * MultipartFileUtil 轉(zhuǎn)File
     *
     * @param multipartFile
     * @return
     */
    public static File getFile(MultipartFile multipartFile) {
        // 獲取文件名
        String fileName = multipartFile.getOriginalFilename();
        // 獲取文件后綴
        String prefix = "." + getExtensionName(fileName);
        File file = null;
        try {
            // 用uuid作為文件名,防止生成的臨時文件重復
            file = File.createTempFile(IdUtil.simpleUUID(), prefix);
            // MultipartFile to File
            multipartFile.transferTo(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return file;
    }

    /**
     * 獲取文件擴展名,不帶 .
     */
    public static String getExtensionName(String filename) {
        if ((filename != null) && (filename.length() > 0)) {
            int dot = filename.lastIndexOf('.');
            if ((dot > -1) && (dot < (filename.length() - 1))) {
                return filename.substring(dot + 1);
            }
        }
        return filename;
    }

    /**
        前端上傳視頻之后,根據(jù)上傳的視頻文件獲取視頻的大小和時長
        1、獲取視頻時長
    */
    public static int readVideoTime(File source) {
        int vedioSecond =  Integer.parseInt(parseDuration(source.getAbsolutePath()));
        return vedioSecond;
    }


    /**
     * 視頻時長
     *
     * @param fileUrl
     * @return String[] 0=秒時長,1=展示時長(格式如 01:00:00)
     */
    public static String parseDuration(String fileUrl) {
        long ls = 0L;
        String[] length = new String[2];
        try {
            //
//            URL source = new URL(fileUrl);
            // 構(gòu)造方法 接受URL對象
//            MultimediaObject instance = new MultimediaObject(source);
            // 構(gòu)造方法 接受File對象
            MultimediaObject instance = new MultimediaObject(new File(fileUrl));
            MultimediaInfo result = instance.getInfo();
            ls = result.getDuration() / 1000;
            length[0] = String.valueOf(ls);
            Integer hour = (int) (ls / 3600);
            Integer minute = (int) (ls % 3600) / 60;
            Integer second = (int) (ls - hour * 3600 - minute * 60);
            String hr = hour.toString();
            String mi = minute.toString();
            String se = second.toString();
            if (hr.length() < 2) {
                hr = "0" + hr;
            }
            if (mi.length() < 2) {
                mi = "0" + mi;
            }
            if (se.length() < 2) {
                se = "0" + se;
            }

            String noHour = "00";
            if (noHour.equals(hr)) {
                length[1] = mi + ":" + se;
            } else {
                length[1] = hr + ":" + mi + ":" + se;
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(length);//{"20","00:20"}
        return String.valueOf(ls);
    }






    /**
     * 2、獲取文件大小
     * @param source
     * @return
     * //***獲取視頻大小的時候,由于用到了流,使用完之后一定要及時的關(guān)閉流,避免無法刪除視頻文件***
     *
     */
    public static BigDecimal readFileSize(File source) {
        //cn.hutool.core.io.unit.DataSize.ofMegabytes()
        FileChannel fc= null;
        //String size = "";
        BigDecimal  size  = null ;
        try {
            @SuppressWarnings("resource")
            FileInputStream fis = new FileInputStream(source);
            fc= fis.getChannel();
            BigDecimal fileSize = new BigDecimal(fc.size());
            //size = fileSize.divide(new BigDecimal(1048576), 2, RoundingMode.HALF_UP) + "MB";
            size = fileSize.divide(new BigDecimal(1024*1024), 2, RoundingMode.HALF_UP)  ;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (null!=fc){
                try{
                    fc.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
        }
        return size;
    }


}

到了這里,關(guān)于JAVA獲取視頻音頻時長 文件大小 MultipartFileUtil和file轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 【HarmonyOS】【續(xù)集】實現(xiàn)從視頻提取音頻并保存到pcm文件功能(API6 Java)

    【】 視頻提取類Extractor、視頻編解碼、保存pcm文件、getAudioTime 【背景和問題】 上篇中介紹了從視頻提取音頻并保存到pcm文件功能,請參考文檔:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid=0101591351254000314,解碼步驟使用的是普通模式進行解碼,測試過程

    2024年02月13日
    瀏覽(18)
  • 【PHP】PHP利用ffmreg獲取音頻、視頻的詳細信息

    【PHP】PHP利用ffmreg獲取音頻、視頻的詳細信息

    目錄 一、目的 二、下載并安裝ffmreg 三、PHP代碼 四、運行結(jié)果 使用PHP利用ffmreg獲取音頻、視頻的詳細信息,音視頻總時長、碼率、視頻分辨率、音頻編碼、音頻采樣頻率、實際播放時間、文件大小。 1、下載地址:https://download.csdn.net/download/qq_25285531/88750220 2、解壓放到項目下

    2024年01月17日
    瀏覽(86)
  • 視頻批量高效剪輯,支持將視頻文件轉(zhuǎn)換為音頻文件,輕松掌握視頻格式

    視頻批量高效剪輯,支持將視頻文件轉(zhuǎn)換為音頻文件,輕松掌握視頻格式

    在數(shù)字化時代,視頻內(nèi)容日益豐富,管理和編輯這些視頻變得愈發(fā)重要。然而,傳統(tǒng)的視頻剪輯軟件往往操作復雜,難以滿足高效批量處理的需求?,F(xiàn)在,一款全新的視頻批量剪輯神器應運而生,它支持將視頻文件一鍵轉(zhuǎn)換為音頻文件,同時輕松掌握各種視頻格式,讓你的視

    2024年04月14日
    瀏覽(22)
  • 提取視頻文件里的音頻和無聲視頻

    一、提取視頻文件里的音頻: 二、提取視頻文件里的無聲視頻

    2024年02月11日
    瀏覽(30)
  • 使用ffmpeg從視頻文件中提取音頻文件、視頻抽幀和切割視頻

    使用ffmpeg從視頻文件中提取音頻文件、視頻抽幀和切割視頻

    目錄 ffmpeg下載 使用ffmpeg從視頻文件中提取音頻文件 批量提取文件夾下多個視頻文件的音頻 使用ffmpeg從視頻文件中提取視頻幀 使用ffmpeg將按固定時長將視頻切割成多個小片段 將分割得到的視頻存放在新建文件夾下(這個我運行的時候好像有點問題,音頻文件沒有存放在新建

    2023年04月08日
    瀏覽(24)
  • poi解析word和excel,并且獲取其中文字、圖片、音頻和視頻的位置

    ? ? ? ? 最近在做一個項目,要求解析出來word和excel中的一些屬性,開始沒當回事,以為很簡單,但是做著做著發(fā)現(xiàn)不對勁,國內(nèi)好像沒人會有這種需求,也是費了很多事時間才找到方法,分享出去讓你們少走彎路,我也是個新手,勿噴。 ? ? ? ? 當然是poi了,免費,文檔全

    2024年02月07日
    瀏覽(20)
  • 【音視頻 | AAC】AAC格式音頻文件解析

    【音視頻 | AAC】AAC格式音頻文件解析

    ??博客主頁??:??https://blog.csdn.net/wkd_007?? ??博客內(nèi)容??:??嵌入式開發(fā)、Linux、C語言、C++、數(shù)據(jù)結(jié)構(gòu)、音視頻?? ??本文內(nèi)容??:??介紹AAC格式音頻文件解析?? ??金句分享??:??你不能選擇最好的,但最好的會來選擇你——泰戈爾?? 本文未經(jīng)允許,不得轉(zhuǎn)發(fā)?。?/p>

    2024年02月04日
    瀏覽(25)
  • postman上傳照片,視頻,音頻等上傳文件操作測試方法

    postman上傳照片,視頻,音頻等上傳文件操作測試方法

    Postman上傳照片,視頻,音頻等上傳文件操作測試方法

    2024年03月24日
    瀏覽(30)
  • HTML5支持的視頻文件格式和音頻文件格式有哪些?

    HTML5支持的視頻文件格式和音頻文件格式有哪些?

    在 HTML5 標準中, 我們有了新的 audio 和 video 標簽, 分別可以引入視頻和音頻文件的標簽 那么這些標簽又可以支持哪些文件格式呢 ? MP4:MPEG-4 Part 14,支持H.264編碼。幾乎所有的瀏覽器都支持該格式。 WebM:谷歌開發(fā)的格式,使用VP8或VP9編碼,可以在大多數(shù)現(xiàn)代瀏覽器中播放 Ogg:

    2024年02月01日
    瀏覽(27)
  • java通過url獲取視頻時長(無需下載文件)

    java通過url獲取視頻時長(無需下載文件)

    ?1、導入架包 2、創(chuàng)建FFmpegFileInfo類(類的位置ws.schild.jave) 3、打包把類打成class文件放到本地的Maven倉庫(如果在測試類中使用跳過此步) ?4、測試

    2024年02月16日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包