|
@@ -0,0 +1,107 @@
|
|
|
+package com.welampiot.utils;
|
|
|
+
|
|
|
+import com.welampiot.common.Constant;
|
|
|
+import com.welampiot.dto.SystemConfigDto;
|
|
|
+import com.welampiot.dto.VideoMonitorDTO;
|
|
|
+import com.welampiot.service.SystemConfigService;
|
|
|
+import com.welampiot.service.VideoMonitorService;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 摄像头相关公共方法
|
|
|
+ */
|
|
|
+public class VideoUtil {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取摄像头播放的ssrc
|
|
|
+ * @param service 配置表server对象
|
|
|
+ * @return ssrc
|
|
|
+ */
|
|
|
+ public static int getVideoSrc(SystemConfigService service){
|
|
|
+ SystemConfigDto videoSsrcCode = service.getOneBykey("video_ssrc_code");
|
|
|
+ String value;
|
|
|
+ if (videoSsrcCode != null){
|
|
|
+ value = videoSsrcCode.getValue();
|
|
|
+ int i = Integer.parseInt(value);
|
|
|
+ i = i+1;
|
|
|
+ videoSsrcCode.setValue(Integer.toString(i));
|
|
|
+ service.updateByDto(videoSsrcCode);
|
|
|
+ }else {
|
|
|
+ value = "1";
|
|
|
+ SystemConfigDto systemConfigDto = new SystemConfigDto();
|
|
|
+ systemConfigDto.setKey("video_ssrc_code");
|
|
|
+ systemConfigDto.setValue(value);
|
|
|
+ service.addByDto(systemConfigDto);
|
|
|
+ }
|
|
|
+ return 1000000 + Integer.parseInt(value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String getGbPlayBackAddress(VideoMonitorService service,SystemConfigService systemConfigService, String gbAddress, String startTime, String endTime){
|
|
|
+ VideoMonitorDTO oneByDbAddress = service.getOneByDbAddress(gbAddress);
|
|
|
+ Boolean back = false;
|
|
|
+ if (oneByDbAddress != null && oneByDbAddress.getBackAddress() != null && !oneByDbAddress.getBackAddress().isEmpty()){
|
|
|
+ String url = Constant.GB_HOST_ADDRESS+"/api/playback/"+oneByDbAddress.getBackAddress()+"/stop";
|
|
|
+ WebUtils.requestPost(url, "");
|
|
|
+ try {
|
|
|
+ Thread.sleep(1000);
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ back = true;
|
|
|
+ }
|
|
|
+ int videoSrc = getVideoSrc(systemConfigService);
|
|
|
+ String url = Constant.ZK_HOST_ADDRESS+"/index/api/getMediaList?secret=weclouds123";
|
|
|
+ String s = WebUtils.requestGet(url, "");
|
|
|
+ VideoMonitorDTO videoMonitorDTO = new VideoMonitorDTO();
|
|
|
+ videoMonitorDTO.setBackAddress(String.valueOf(videoSrc));
|
|
|
+ videoMonitorDTO.setGbAddress(gbAddress);
|
|
|
+ service.updateBackAddress(videoMonitorDTO);
|
|
|
+
|
|
|
+ url = Constant.GB_HOST_ADDRESS+"/api/playback/"+gbAddress+"/34020000001320000001/"+videoSrc;
|
|
|
+ String param = "{\"startTime\":\""+startTime+"\",\"endTime\":\""+endTime+"\"}";
|
|
|
+ WebUtils.requestPost(url, param);
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取国标摄像头回放地址
|
|
|
+// public function get_gb_play_back_address($gb_address,$startTime,$endTime,$res = ''){
|
|
|
+//
|
|
|
+// $back_info = $this->db->query('select back_address from video_monitor where `gb_address` = "'.$gb_address.'"')->row_array();
|
|
|
+// $back = false;
|
|
|
+// if (!empty($back_info) && !empty($back_info['back_address'])) {
|
|
|
+// $url = 'http://'.$this->config->config['gb_host'].':8089/api/playback/'.$back_info['back_address'].'/stop';
|
|
|
+// // $url = 'http://139.196.213.241:8050/api/playback/'.$back_info['back_address'].'/stop';
|
|
|
+// request_post($url,[],1);
|
|
|
+// sleep(1);
|
|
|
+// $back = true;
|
|
|
+// }
|
|
|
+// $ssrc = $this->get_video_ssrc();
|
|
|
+// if (empty($res)) $res = http_get('http://'.$this->config->config['gb_host'].':8060/index/api/getMediaList?secret=weclouds123');
|
|
|
+// $res = json_decode($res,true);
|
|
|
+//
|
|
|
+// $url = 'http://'.$this->config->config['gb_host'].':8089/api/playback/'.$gb_address.'/34020000001320000001/'.$ssrc;
|
|
|
+// // $url = 'http://139.196.213.241:8050/api/playback/'.$gb_address.'/34020000001320000001/'.$ssrc;
|
|
|
+// $this->db->query('update video_monitor set back_address = '.$ssrc.' where `gb_address` = "'.$gb_address.'"');
|
|
|
+// $gb_id = substr('00000000'.base_convert($ssrc, 10, 16), -8);
|
|
|
+// if ($res && isset($res['code']) && $res['code'] == 0) {
|
|
|
+// $data = isset($res['data']) ? $res['data'] : array();
|
|
|
+// $flag = 0;
|
|
|
+// foreach ($data as $key => $value) {
|
|
|
+// if (strtolower($value['stream']) == strtolower($gb_id)) {
|
|
|
+// $flag = 1;
|
|
|
+// break;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// if ($flag) {
|
|
|
+// $address = 'https://gb.lampmind.com:8087/gb3/rtp/'.strtoupper($gb_id).'.live.mp4';
|
|
|
+// }else{
|
|
|
+// $res = request_post($url,['startTime'=>$startTime,'endTime'=>$endTime],5);
|
|
|
+// json_decode($res,true);
|
|
|
+// $address = 'https://gb.lampmind.com:8087/gb3/rtp/'.strtoupper($gb_id).'.live.mp4';
|
|
|
+// if ($back) sleep(7);
|
|
|
+// }
|
|
|
+// return $address;
|
|
|
+// }
|
|
|
+// return '';
|
|
|
+// }
|
|
|
+}
|