From 0cc0a21206de86b6892331d97d891c628924f49b Mon Sep 17 00:00:00 2001 From: luoshuyue <239937404@qq.com> Date: 星期五, 25 二月 2022 15:06:51 +0800 Subject: [PATCH] 增加无人观看时关闭zlm拉流 --- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 21 ++++++++++++++++++++- 1 files changed, 20 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index 34ee4a8..3789207 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -83,6 +83,9 @@ @Autowired private MediaConfig mediaConfig; + @Autowired + private ZLMRESTfulUtils zlmresTfulUtils; + /** * 鏈嶅姟鍣ㄥ畾鏃朵笂鎶ユ椂闂达紝涓婃姤闂撮殧鍙厤缃紝榛樿10s涓婃姤涓�娆� * @@ -186,7 +189,6 @@ ret.put("code", 0); ret.put("msg", "success"); ret.put("enableHls", true); - ret.put("enableMP4", userSetup.isRecordPushLive()); String mediaServerId = json.getString("mediaServerId"); ZLMHttpHookSubscribe.Event subscribe = this.subscribe.getSubscribe(ZLMHttpHookSubscribe.HookType.on_publish, json); if (subscribe != null) { @@ -200,6 +202,11 @@ } String app = json.getString("app"); String stream = json.getString("stream"); + if ("rtp".equals(app)) { + ret.put("enableMP4", userSetup.getRecordSip()); + }else { + ret.put("enableMP4", userSetup.isRecordPushLive()); + } StreamInfo streamInfo = redisCatchStorage.queryPlaybackByStreamId(stream); // 褰曞儚鍥炴斁鏃朵笉杩涜褰曞儚涓嬭浇 @@ -461,6 +468,18 @@ streamProxyService.del(app, streamId); String url = streamProxyItem.getUrl() != null?streamProxyItem.getUrl():streamProxyItem.getSrc_url(); logger.info("[{}/{}]<-[{}] 鎷夋祦浠g悊鏃犱汉瑙傜湅宸茬粡绉婚櫎", app, streamId, url); + + }else if (streamProxyItem != null && streamProxyItem.isEnable()) { + MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId); + if(null!=mediaServerItem){ + JSONObject jsonObject = zlmresTfulUtils.closeStreams(mediaServerItem,streamProxyItem.getApp(), streamProxyItem.getStream()); + if (jsonObject.getInteger("code") == 0) { + streamProxyItem.setEnable(false); + storager.updateStreamProxy(streamProxyItem); + } + }else { + ret.put("close", false); + } }else { ret.put("close", false); } -- Gitblit v1.8.0