亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java獲取視頻時(shí)長(zhǎng)、大小的示例

瀏覽:20日期:2022-08-21 14:47:42

項(xiàng)目中有這樣一個(gè)需求,網(wǎng)頁(yè)上上傳了一個(gè)視頻,需要獲取此視頻的時(shí)長(zhǎng)、大小,把這兩個(gè)數(shù)據(jù)返回給前臺(tái)在頁(yè)面顯示。后臺(tái)使用的是springboot框架,項(xiàng)目部署在linux上面。下面是核心代碼:

1、pom文件中需要導(dǎo)入的jar包依賴

(分為兩部分:核心包、ffmpeg包兩部分,ffmpeg包又分為Windows環(huán)境以及Linux環(huán)境,同時(shí)又區(qū)分32位系統(tǒng)以及64位系統(tǒng)。針對(duì)于不同的運(yùn)行環(huán)境要導(dǎo)入不同的包,這一點(diǎn)對(duì)于開(kāi)發(fā)、測(cè)試環(huán)境為Window而生產(chǎn)環(huán)境為L(zhǎng)inux的情況,尤其要注意需要導(dǎo)入所有的包,使其在兩種環(huán)境下都能夠使用)

<dependency> <groupId>ws.schild</groupId> <artifactId>jave-all-deps</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-core</artifactId> <version>2.4.5</version> </dependency> <!-- window32位 ffmpeg --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-native-win32</artifactId> <version>2.4.5</version> </dependency> <!-- window64位 ffmpeg --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-native-win64</artifactId> <version>2.4.5</version> </dependency> <!-- linux32位 ffmpeg --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-native-linux32</artifactId> <version>2.4.6</version> </dependency> <!-- linux64位 ffmpeg --> <dependency> <groupId>ws.schild</groupId> <artifactId>jave-native-linux64</artifactId> <version>2.4.6</version> </dependency>

2、controller層代碼

package com.aaa.bbb.controller;import io.swagger.annotations.Api;import lombok.extern.slf4j.Slf4j;import org.apache.commons.io.FileUtils;import org.springframework.util.ResourceUtils;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import ws.schild.jave.MultimediaInfo;import ws.schild.jave.MultimediaObject;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.math.BigDecimal;import java.math.RoundingMode;import java.nio.channels.FileChannel;@Slf4j@RestController@RequestMapping('/readVideo')@Api(tags = '獲取視頻時(shí)長(zhǎng)、大小相關(guān)信息的接口')public class ReadVideoController {/** * 獲取視頻時(shí)長(zhǎng) * * @param fileUrl * @return */@PostMapping('/videoLengthAndSize')public static String getLengthAndSize(@RequestParam String fileUrl) throws FileNotFoundException { ReadVideoController r = new ReadVideoController(); String path = ResourceUtils.getURL('classpath:').getPath() + 'static'; System.out.println('666666666666666666666666666666【' + path + '】666666666666666666666666666666】'); fileUrl = path + fileUrl; String videoLength = r.ReadVideoTime(fileUrl);//視頻時(shí)長(zhǎng) System.out.println('===========================視頻時(shí)長(zhǎng):' + videoLength + '==========================='); return videoLength;}/** * 視頻時(shí)長(zhǎng) * * @param FileUrl * @return */public static String ReadVideoTime(String FileUrl) { File source = new File(FileUrl); String length = ''; try { MultimediaObject instance = new MultimediaObject(source); MultimediaInfo result = instance.getInfo(); long ls = result.getDuration() / 1000; 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; } length = hr + ':' + mi + ':' + se; } catch (Exception e) { e.printStackTrace(); } return length;} /** * 視頻大小 * * @param source * @return */@SuppressWarnings({'resource'})public static String ReadVideoSize(File source) { FileChannel fc = null; String size = ''; try { FileInputStream fis = new FileInputStream(source); fc = fis.getChannel(); BigDecimal fileSize = new BigDecimal(fc.size()); size = fileSize.divide(new BigDecimal(1024 * 1024), 2, RoundingMode.HALF_UP) + 'MB'; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (null != fc) { try {fc.close(); } catch (IOException e) {e.printStackTrace(); } } } return size;}}

以上就是Java獲取視頻時(shí)長(zhǎng)、大小的示例的詳細(xì)內(nèi)容,更多關(guān)于Java 視頻時(shí)長(zhǎng)、大小的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 日韩中文字幕电影在线观看 | 一区二区三区中文国产亚洲 | 欧美精品黄页免费高清在线 | 亚州综合激情另类久久久 | 国产福利足控交在线观看 | 欧美午夜精品 | www.婷| 亚洲手机在线 | 久久免费国产精品一区二区 | 国产精品高清一区二区 | 亚洲青青青网伊人精品 | 一级黄色在线观看 | 国产精品99久久久久久夜夜嗨 | 黄色成人免费观看 | 日韩精品视频在线免费观看 | 国产91久久最新观看地址 | 欧美性猛交xxxx乱大交蜜桃 | 国内外一级毛片 | 亚洲国产欧美久久香综合 | 一级片在线视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 六月丁香深爱六月综合激情 | 国产精品嫩草影院在线看 | 日本亚洲乱码中文字幕影院 | 福利入口在线观看 | 久久香蕉国产 | 国产激情一区二区三区在线观看 | 中国一级毛片免费观看 | 久久精品视频大全 | 国产亚洲精品精品国产亚洲综合 | 日本不卡免费新一二三区 | 精品一区二区久久久久久久网站 | 亚洲乱码国产乱码精品精98 | 北条麻妃99精品青青久久 | 国产一在线精品一区在线观看 | 国产久 | 婷婷在线成人免费观看搜索 | 国产精品免费看久久久久 | 免费看黄色片网站 | 在线麻豆国产传媒60在线观看 | 亚洲一区二区日韩欧美gif |