|  |  | 
 |  |  | import com.genersoft.iot.vmp.service.bean.SSRCInfo; | 
 |  |  | import com.genersoft.iot.vmp.storager.IVideoManagerStorage; | 
 |  |  | import com.genersoft.iot.vmp.storager.dao.MediaServerMapper; | 
 |  |  | import com.genersoft.iot.vmp.utils.DateUtil; | 
 |  |  | import com.genersoft.iot.vmp.utils.redis.JedisUtil; | 
 |  |  | import com.genersoft.iot.vmp.utils.redis.RedisUtil; | 
 |  |  | import com.genersoft.iot.vmp.vmanager.bean.WVPResult; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     JedisUtil jedisUtil; | 
 |  |  |  | 
 |  |  |     private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 初始化 | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public void updateVmServer(List<MediaServerItem>  mediaServerItemList) { | 
 |  |  |         logger.info("[缓存初始化] Media Server "); | 
 |  |  |         logger.info("[zlm] 缓存初始化 "); | 
 |  |  |         for (MediaServerItem mediaServerItem : mediaServerItemList) { | 
 |  |  |             if (StringUtils.isEmpty(mediaServerItem.getId())) { | 
 |  |  |                 continue; | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, boolean ssrcCheck) { | 
 |  |  |         return openRTPServer(mediaServerItem, streamId, ssrcCheck,false); | 
 |  |  |     public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, boolean ssrcCheck, boolean isPlayback) { | 
 |  |  |         return openRTPServer(mediaServerItem, streamId, null, ssrcCheck,isPlayback); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, boolean ssrcCheck, boolean isPlayback) { | 
 |  |  |     public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String presetSsrc, boolean ssrcCheck, boolean isPlayback) { | 
 |  |  |         if (mediaServerItem == null || mediaServerItem.getId() == null) { | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  | 
 |  |  |             return null; | 
 |  |  |         }else { | 
 |  |  |             String ssrc = null; | 
 |  |  |             if (isPlayback) { | 
 |  |  |                 ssrc = ssrcConfig.getPlayBackSsrc(); | 
 |  |  |             if (presetSsrc != null) { | 
 |  |  |                 ssrc = presetSsrc; | 
 |  |  |             }else { | 
 |  |  |                 ssrc = ssrcConfig.getPlaySsrc(); | 
 |  |  |                 if (isPlayback) { | 
 |  |  |                     ssrc = ssrcConfig.getPlayBackSsrc(); | 
 |  |  |                 }else { | 
 |  |  |                     ssrc = ssrcConfig.getPlaySsrc(); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if (streamId == null) { | 
 |  |  | 
 |  |  |         result.sort((serverItem1, serverItem2)->{ | 
 |  |  |             int sortResult = 0; | 
 |  |  |             try { | 
 |  |  |                 sortResult = format.parse(serverItem1.getCreateTime()).compareTo(format.parse(serverItem2.getCreateTime())); | 
 |  |  |                 sortResult = DateUtil.format.parse(serverItem1.getCreateTime()).compareTo(DateUtil.format.parse(serverItem2.getCreateTime())); | 
 |  |  |             } catch (ParseException e) { | 
 |  |  |                 e.printStackTrace(); | 
 |  |  |             } | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     public WVPResult<String> add(MediaServerItem mediaServerItem) { | 
 |  |  |         WVPResult<String> result = new WVPResult<>(); | 
 |  |  |         mediaServerItem.setCreateTime(this.format.format(System.currentTimeMillis())); | 
 |  |  |         mediaServerItem.setUpdateTime(this.format.format(System.currentTimeMillis())); | 
 |  |  |         mediaServerItem.setCreateTime(DateUtil.getNow()); | 
 |  |  |         mediaServerItem.setUpdateTime(DateUtil.getNow()); | 
 |  |  |         mediaServerItem.setHookAliveInterval(120); | 
 |  |  |         JSONObject responseJSON = zlmresTfulUtils.getMediaServerConfig(mediaServerItem); | 
 |  |  |         if (responseJSON != null) { | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public void zlmServerOnline(ZLMServerConfig zlmServerConfig) { | 
 |  |  |         logger.info("[ ZLM:{} ]-[ {}:{} ]正在连接", | 
 |  |  |         logger.info("[ZLM] 正在连接 : {} -> {}:{}", | 
 |  |  |                 zlmServerConfig.getGeneralMediaServerId(), zlmServerConfig.getIp(), zlmServerConfig.getHttpPort()); | 
 |  |  |  | 
 |  |  |         MediaServerItem serverItem = mediaServerMapper.queryOne(zlmServerConfig.getGeneralMediaServerId()); | 
 |  |  | 
 |  |  |             setZLMConfig(serverItem, "0".equals(zlmServerConfig.getHookEnable())); | 
 |  |  |         } | 
 |  |  |         publisher.zlmOnlineEventPublish(serverItem.getId()); | 
 |  |  |         logger.info("[ ZLM:{} ]-[ {}:{} ]连接成功", | 
 |  |  |         logger.info("[ZLM] 连接成功 {} - {}:{} ", | 
 |  |  |                 zlmServerConfig.getGeneralMediaServerId(), zlmServerConfig.getIp(), zlmServerConfig.getHttpPort()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public void setZLMConfig(MediaServerItem mediaServerItem, boolean restart) { | 
 |  |  |         logger.info("[ ZLM:{} ]-[ {}:{} ]正在设置zlm", | 
 |  |  |         logger.info("[ZLM] 正在设置 :{} -> {}:{}", | 
 |  |  |                 mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); | 
 |  |  |         String protocol = sslEnabled ? "https" : "http"; | 
 |  |  |         String hookPrex = String.format("%s://%s:%s/index/hook", protocol, mediaServerItem.getHookIp(), serverPort); | 
 |  |  | 
 |  |  |  | 
 |  |  |         if (responseJSON != null && responseJSON.getInteger("code") == 0) { | 
 |  |  |             if (restart) { | 
 |  |  |                 logger.info("[ ZLM:{} ]-[ {}:{} ]设置zlm成功, 开始重启以保证配置生效", | 
 |  |  |                 logger.info("[ZLM] 设置成功,开始重启以保证配置生效 {} -> {}:{}", | 
 |  |  |                         mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); | 
 |  |  |                 zlmresTfulUtils.restartServer(mediaServerItem); | 
 |  |  |             }else { | 
 |  |  |                 logger.info("[ ZLM:{} ]-[ {}:{} ]设置zlm成功", | 
 |  |  |                 logger.info("[ZLM] 设置成功 {} -> {}:{}", | 
 |  |  |                         mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         }else { | 
 |  |  |             logger.info("[ ZLM:{} ]-[ {}:{} ]设置zlm失败", | 
 |  |  |             logger.info("[ZLM] 设置zlm失败 {} -> {}:{}", | 
 |  |  |                     mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort()); | 
 |  |  |         } | 
 |  |  |  |