Java计算视频时长

引入jar包

在项目resources目录下创建lib包,然后把jar包丢进去

image

      <dependency>
            <groupId>it.sauronsoftware.jave</groupId>
            <artifactId>jave</artifactId>
            <version>1.0.2</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/jave-1.0.2.jar</systemPath>
        </dependency>

展示部分伪代码()

	for(MultipartFile file:alarmSynDTO.getFiles()) {
            			JSONObject jboj = new JSONObject();
            			Map<String, Object> params = new HashMap<>();
                        params.put("metadata", "{\"system\":\"cad\",\"module\":\"systemmanage\",\"businessId\":\"\"}");
                   	    Map<String, String>  dataMap = HttpUtils.sendMultipartFilePost(citysafetyUrl.replace("31530", "31541")
                   	    		+"/api/v1/attaches/upload/single", file, "file", params, 5000);
                   	    logger.info("dataMap={}",JSONObject.toJSONString(dataMap));
                        if("200".equals(StringUtil.toString(dataMap.get("scode")))) {
                            String data = dataMap.get("data");
                            JSONArray jsonArray = JSONArray.parseArray(data);
                            if(!CollectionUtils.isEmpty(jsonArray)){
                                Encoder encoder = new Encoder();
                                JSONObject object = jsonArray.getJSONObject(0);
                                jboj.put("fileId", object.getString("fileId"));
                                jboj.put("fileName", object.getString("fileName"));
                                jboj.put("size", object.getString("size"));
                                if (object.getString("fileName").endsWith(".mp4")|| object.getString("fileName").endsWith(".webm")){
                                   File  file3 =   transferToFile(file);
                                    long sum =0;
                                    MultimediaInfo m = encoder.getInfo(file3);
                                    long ls = m.getDuration()/1000;
                                    sum += ls;
                                    double sum1 = (double)sum;
                                    System.out.println(sum1);
                                    jboj.put("duration", sum1);
                                }
                                fileList.add(jboj);
                            }
                        }
            		}

    /**
     * @Author chenbonze
     * @Description  MultipartFile文件转换成File形式
     * @Date 13:54 2023/3/30
     * @Param [multipartFile]
     * @return java.io.File
     **/
    public final static File transferToFile(MultipartFile multipartFile) {
        //选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。
        File file = null;
        try {
            String originalFilename = multipartFile.getOriginalFilename();
            String[] filename = originalFilename.split("\\.");
            file = File.createTempFile(filename[0], filename[1]);    //注意下面的 特别注意!!!
            multipartFile.transferTo(file);
            file.deleteOnExit();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return file;
    }
posted @ 2023-03-30 14:05  陈省行  阅读(227)  评论(0)    收藏  举报