java 获取视频时间
Posted 陈扬天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(); } }
以上是关于java 获取视频时间的主要内容,如果未能解决你的问题,请参考以下文章
TSINGSEE青犀视频通道FFmpeg获取视频片段的方法介绍