1.下载jar包:http://www.sauronsoftware.it/projects/jave/index.php

2.上代码

  1. @RequestMapping(value = "amendFile.htm", produces = "application/json;charset=UTF-8")
  2. @ResponseBody
  3. public String amendFile(MultipartFile file, HttpServletRequest request,
  4. HttpServletResponse response, String equid,String begintime,String endtime) {
  5. log.info(this.getClass().getSimpleName() + "."
  6. + Thread.currentThread().getStackTrace()[1].getMethodName()
  7. + "()----start");
  8.  
  9. String path = request.getSession().getServletContext()
  10. .getRealPath("/")+"resources/"+equid+"/"+begintime.substring(0,begintime.length()-6)+"/";
  11. // 通过文件ID 获取文件存储路径
  12. if (file.isEmpty()) {
  13. return "empty";
  14. }
  15. Map<String, Object> map = new HashMap<String, Object>();
  16. try {
  17. /* 写入文件 */
  18. File targetFile = new File(path, file.getOriginalFilename());
  19. if (!targetFile.exists()) {
  20. targetFile.mkdirs();
  21. }
  22. file.transferTo(targetFile); // 转储
  23. Encoder encoder = new Encoder();
  24. // zp add 读取视频时长 2017-07-31
  25. try {
  26. MultimediaInfo m = encoder.getInfo(targetFile);
  27. long ls = m.getDuration();
  28. ls = Math.round((double)ls/1000);
  29. map.put("timeLength", Math.round(ls));
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. }
  33. // 读取视频时长结束 2017-07-31
  34. response.addHeader("Access-Control-Allow-Origin", "*");
  35. if(targetFile.exists()){
  36.  
  37. map.put("success", "success");
  38. ObjectMapper mapper = new ObjectMapper();
  39. String content = mapper.writeValueAsString(map);
  40. return content;
  41. }else{
  42. map.put("error", "error");
  43. ObjectMapper mapper = new ObjectMapper();
  44. String content = mapper.writeValueAsString(map);
  45. return content;
  46. }
  47.  
  48. } catch (Exception e) {
  49. e.printStackTrace();
  50. }
  51. log.info(this.getClass().getSimpleName() + "."
  52. + Thread.currentThread().getStackTrace()[1].getMethodName()
  53. + "()----end");
  54. return "success";
  55. }

其中最重要的代码就是:

  1. // zp add 读取视频时长 2017-07-31
  2. try {
  3. MultimediaInfo m = encoder.getInfo(targetFile);
  4. long ls = m.getDuration();
  5. ls = Math.round((double)ls/1000);
  6. map.put("timeLength", Math.round(ls));
  7. } catch (Exception e) {
  8. e.printStackTrace();
  9. }
  10. // 读取视频时长结束 2017-07-31

java读取视频文件时长的更多相关文章

  1. 以springMVC为例获取上传视频文件时长

    毕设项目是一个在线学习系统,教师用户有上传视频的功能,在答辩之前赶了一个demo出来,好多功能都写死了,比如课程学习进度就是被我写死在前端的一个变量,最近导师要我把项目打包发给他,这才心慌慌赶紧把这些 ...

  2. java 获取音频文件时长

    需要导入jar包:jave 1.0.2 jar 如果是maven项目,在pom.xml文件中添加: <dependency> <groupId>it.sauronsoftwar ...

  3. Java 读取Properties文件时应注意的路径问题

    1. 使用Class的getResourceAsStream()方法读取Properties文件(资源文件)的路径问题:  InputStream in = this.getClass().getRe ...

  4. [原]通过配合ffmpeg.exe获取视频文件时长

    import subprocess import os import time def getTime(flvpath,fid): #file_str = '1.flv' file_str = flv ...

  5. windows 7 下,如何统计某文件夹下 视频总时长

    由于项目需要,我需要给系统加权限,这真是一个让人头疼的问题,如果要每个业务方法都加上权限判断逻辑,那真的不敢想象是多么大的工作量,日后有变动的话,我会不会发疯? 所以我必须利用之前学到的AOP编程,在 ...

  6. java读取properties文件时候要注意的地方

    java读取properties文件时,一定要注意properties里面后面出现的空格! 比如:filepath = /home/cps/ 我找了半天,系统一直提示,没有这个路径,可是确实是存在的, ...

  7. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  8. 用java读取properties文件--转

    今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享.     下面直接贴出代码:java类 public class Mytest pub ...

  9. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

随机推荐

  1. Leetcode 347.前K个高频元素 By Python

    给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], ...

  2. 【BZOJ2001】[HNOI2010]城市建设(CDQ分治,线段树分治)

    [BZOJ2001][HNOI2010]城市建设(CDQ分治,线段树分治) 题面 BZOJ 洛谷 题解 好神仙啊这题.原来想做一直不会做(然而YCB神仙早就切了),今天来怒写一发. 很明显这个玩意换种 ...

  3. 趣谈生成函数 =v=

    趣谈生成函数 =v= 今天luyouqi在洛谷随机跳题rand出来一道生成函数板子题,然后我给做了(雾 发现小伙伴们还不会生成函数,于是我试着写这篇生成函数简介.(其实我也不怎么会生成函数这么高级的东 ...

  4. 导入Spreadsheet到sharepoint2013报错

    当导入Spreadsheet到sharepoint2013会报下面的错: an unexpected error has occurred -2147467259 The specified file ...

  5. 2018 省选 T1 一双木棋

    题目描述 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束. 落子的规则是:一个格子可以落子当且仅当 ...

  6. 初见mobX

    先看如下的代码 const {observable}= mobox; const {observer}=mobxReact; const {Component}=React; const appSta ...

  7. VUE在BODY上绑定enter事件

    mounted () { this.bodyListener = (e) => { if (e.keyCode === 13 && e.target === document.b ...

  8. servlet3.0获取参数与文件上传代码示例

    转: servlet3.0获取参数与文件上传代码示例 2018年08月26日 20:25:35 苏凯勇往直前 阅读数:98   package com.igeek.servlet;   import ...

  9. 四个修改Docker默认存储位置的方法

    方法一.软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root ...

  10. k8s部署prometheus

    https://www.kancloud.cn/huyipow/prometheus/527092 https://songjiayang.gitbooks.io/prometheus/content ...