|
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.io.FileUtil;
|
|
import cn.hutool.core.io.FileUtil;
|
|
import cn.hutool.http.HttpUtil;
|
|
import cn.hutool.http.HttpUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.fdkankan.common.util.FileUtils;
|
|
import com.fdkankan.common.util.FileUtils;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
@@ -35,6 +36,7 @@ import com.fdkankan.redis.util.RedisUtil;
|
|
import com.fdkankan.sms.SendMailAcceUtils;
|
|
import com.fdkankan.sms.SendMailAcceUtils;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
|
@@ -541,4 +543,87 @@ public class CommonServiceImpl implements ICommonService {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public JSONObject getVideosJson(String path, Integer videoVersion, String projectNum, int cameraType){
|
|
|
|
+ //读取videos_hdr_param.json, 保存点位视频的value
|
|
|
|
+ Map<String, Object> videoMap = new HashMap<>();
|
|
|
|
+ String videosHdr = FileUtils.readFile(path + File.separator + "results/videos/videos_hdr_param.json");
|
|
|
|
+ JSONArray videoArray = null;
|
|
|
|
+ if(StringUtils.isNotEmpty(videosHdr)){
|
|
|
|
+ videoArray = JSONObject.parseObject(videosHdr).getJSONArray("hdr_param");
|
|
|
|
+ }
|
|
|
|
+ if(videoArray != null){
|
|
|
|
+ for(int i = 0, len = videoArray.size(); i < len; i++) {
|
|
|
|
+ videoMap.put(videoArray.getJSONObject(i).getString("name"), videoArray.getJSONObject(i).getString("value"));
|
|
|
|
+ if(videoArray.getJSONObject(i).containsKey("fov")){
|
|
|
|
+ videoMap.put(videoArray.getJSONObject(i).getString("name") + "_fov", videoArray.getJSONObject(i).getString("fov"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //获取upload中的video视频名称
|
|
|
|
+ String uploadData = FileUtils.readFile(path + File.separator + "results" +File.separator+"upload.json");
|
|
|
|
+ JSONObject uploadJson = null;
|
|
|
|
+ JSONArray array = null;
|
|
|
|
+ if(uploadData!=null) {
|
|
|
|
+ uploadJson = JSONObject.parseObject(uploadData);
|
|
|
|
+ array = uploadJson.getJSONArray("upload");
|
|
|
|
+ }
|
|
|
|
+ JSONObject fileJson = null;
|
|
|
|
+ String fileName = "";
|
|
|
|
+
|
|
|
|
+ //计算ts文件的大小,并拼接成json格式
|
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
|
+ JSONObject videoJson = null;
|
|
|
|
+ JSONObject videosJson = new JSONObject();
|
|
|
|
+ long videoSize = 0L;
|
|
|
|
+ for(int i = 0, len = array.size(); i < len; i++) {
|
|
|
|
+ fileJson = array.getJSONObject(i);
|
|
|
|
+ fileName = fileJson.getString("file");
|
|
|
|
+ if(fileJson.getIntValue("clazz") == 11 && fileName.contains(".mp4") && !fileName.contains("-ios.mp4")){
|
|
|
|
+ videoJson = new JSONObject();
|
|
|
|
+ videoJson.put("id", fileName.substring(
|
|
|
|
+ 0, fileName.lastIndexOf(".")).replace("videos/", ""));
|
|
|
|
+
|
|
|
|
+ //如果ts文件存在,就计算ts大小
|
|
|
|
+ if(new File(path + File.separator + "results" +File.separator+ fileName.replace(".mp4", ".ts")).exists()){
|
|
|
|
+ videoSize = new File(path + File.separator + "results" +File.separator+ fileName.replace(".mp4", ".ts")).length();
|
|
|
|
+ videoJson.put("tsSize", videoSize);
|
|
|
|
+ }
|
|
|
|
+ if(videoMap.containsKey(videoJson.get("id"))){
|
|
|
|
+ videoJson.put("value", videoMap.get(videoJson.get("id")));
|
|
|
|
+ }
|
|
|
|
+ if(videoMap.containsKey(videoJson.get("id") + "_fov")){
|
|
|
|
+ videoJson.put("blend_fov", videoMap.get(videoJson.get("id") + "_fov"));
|
|
|
|
+ }else {
|
|
|
|
+ videoJson.put("blend_fov", 7);
|
|
|
|
+ }
|
|
|
|
+ jsonArray.add(videoJson);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ videosJson.put("data", jsonArray);
|
|
|
|
+ if(Objects.nonNull(videoVersion) && videoVersion >= 4){
|
|
|
|
+ videosJson.put("version", 3);
|
|
|
|
+ videosJson.put("upPath", fYunFileConfig.getHost() + String.format(UploadFilePath.DATA_VIEW_PATH, projectNum) + "Up.xml");
|
|
|
|
+ if(cameraType == 13 || cameraType == 14){
|
|
|
|
+ //转台相机
|
|
|
|
+ videosJson.put("upPath", videosJson.getString("upPath").replace(".xml", ".txt"));
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ videosJson.put("version", 1);
|
|
|
|
+ videosJson.put("upPath", fYunFileConfig.getHost() + String.format(UploadFilePath.DATA_VIEW_PATH, projectNum) + "Up2.xml");
|
|
|
|
+ if(cameraType == 13 || cameraType == 14){
|
|
|
|
+ //转台相机
|
|
|
|
+ videosJson.put("upPath", videosJson.getString("upPath").replace(".xml", ".txt"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(cameraType == 5 || cameraType == 6){
|
|
|
|
+ videosJson.put("version", 1);
|
|
|
|
+ videosJson.put("upPath", fYunFileConfig.getHost() + String.format(UploadFilePath.DATA_VIEW_PATH, projectNum) + "stitch_params.txt");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return videosJson;
|
|
|
|
+ }
|
|
}
|
|
}
|