zoukankan      html  css  js  c++  java
  • java 获取视频时间

    //先将视频保存到项目生成临时文件,获取时长后删除临时文件    
    // 使用fastdfs进行文件上传 @RequestMapping("/uploadVideoToFast") @ResponseBody public Map<String, Object> uploadVideoToFast(@RequestParam("file") MultipartFile file) throws IOException, InterruptedException { File toFile = null; InputStream ins = null; ins = file.getInputStream(); toFile = new File(file.getOriginalFilename()); inputStreamToFile(ins, toFile); ins.close(); String length = ReadVideoTime(toFile); Map<String, Object> url = UploadVideoDemo.testUploadStream(accessKeyId, accessKeySecret, "视频", file.getOriginalFilename(), file.getInputStream()); url.put("length", length); return url; } private String ReadVideoTime(File source) throws InterruptedException { Encoder encoder = new Encoder(); String length = ""; try { MultimediaInfo m = encoder.getInfo(source); long ls = m.getDuration() / 1000; int hour = (int) (ls / 3600); int minute = (int) (ls % 3600) / 60; int second = (int) (ls - hour * 3600 - minute * 60); length = hour + ":" + minute + ":" + second; } catch (Exception e) { e.printStackTrace(); } Thread.sleep(1000); System.out.println(source.getAbsolutePath()); System.out.println(source.getPath()); System.out.println(length); System.out.println(source.delete()); return length; } public static void inputStreamToFile(InputStream ins, File file) { try { OutputStream os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); ins.close(); } catch (Exception e) { e.printStackTrace(); } }
  • 相关阅读:
    行转列函数listagg() WITHIN GROUP ()
    位图索引
    windows 杀掉进程
    vue 实践(过滤器)
    vue 总结
    vue v-show v-if 的使用
    vue v-for 绑定数据
    vue v-model实现数据的双向绑定
    vue .stop .self .capture .prevent 阻止冒泡
    vue v-on v-text 的运用
  • 原文地址:https://www.cnblogs.com/fengwenzhee/p/10849283.html
Copyright © 2011-2022 走看看