| | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.genersoft.iot.vmp.conf.UserSetting; |
| | | import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| | | import com.genersoft.iot.vmp.media.zlm.dto.*; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | * 释放保持的端口 |
| | | */ |
| | | public boolean releasePort(MediaServerItem serverItem, String ssrc) { |
| | | logger.info("[上级点播] {}->释放监听端口,等待推流", ssrc); |
| | | logger.info("[上级点播] {}->释放监听端口", ssrc); |
| | | boolean closeRTPServerResult = closeRtpServer(serverItem, ssrc); |
| | | HookSubscribeForRtpServerTimeout hookSubscribeForRtpServerTimeout = HookSubscribeFactory.on_rtp_server_timeout(ssrc, null, serverItem.getId()); |
| | | // 订阅 zlm启动事件, 新的zlm也会从这里进入系统 |
| | |
| | | */ |
| | | public JSONObject startSendRtpStream(MediaServerItem mediaServerItem, Map<String, Object>param) { |
| | | return zlmresTfulUtils.startSendRtp(mediaServerItem, param); |
| | | } |
| | | |
| | | /** |
| | | * 调用zlm RESTFUL API —— startSendRtpPassive |
| | | */ |
| | | public JSONObject startSendRtpPassive(MediaServerItem mediaServerItem, Map<String, Object>param) { |
| | | return zlmresTfulUtils.startSendRtpPassive(mediaServerItem, param); |
| | | } |
| | | |
| | | /** |
| | |
| | | return 0; |
| | | } |
| | | Integer code = mediaInfo.getInteger("code"); |
| | | if ( code < 0) { |
| | | if (code < 0) { |
| | | logger.warn("查询流({}/{})是否有其它观看者时得到: {}", app, streamId, mediaInfo.getString("msg")); |
| | | return -1; |
| | | } |
| | | if ( code == 0 && mediaInfo.getBoolean("online") != null && !mediaInfo.getBoolean("online")) { |
| | | if ( code == 0 && mediaInfo.getBoolean("online") != null && ! mediaInfo.getBoolean("online")) { |
| | | logger.warn("查询流({}/{})是否有其它观看者时得到: {}", app, streamId, mediaInfo.getString("msg")); |
| | | return -1; |
| | | } |
| | |
| | | public void closeAllSendRtpStream() { |
| | | |
| | | } |
| | | |
| | | public MediaItem getMediaInfo(MediaServerItem mediaServerItem, String app, String stream) { |
| | | JSONObject json = zlmresTfulUtils.getMediaList(mediaServerItem, app, stream); |
| | | MediaItem mediaItem = null; |
| | | if (json == null || json.getInteger("code") != 0) { |
| | | return null; |
| | | } else { |
| | | JSONArray data = json.getJSONArray("data"); |
| | | if (data == null || data.size() == 0) { |
| | | return null; |
| | | }else { |
| | | mediaItem = JSONObject.toJavaObject(data.getJSONObject(0), MediaItem.class); |
| | | } |
| | | } |
| | | return mediaItem; |
| | | } |
| | | } |