From 6c919937bd02d4289cbaf1fe7f4619c5e79358fa Mon Sep 17 00:00:00 2001
From: mk1990 <153958232@qq.com>
Date: 星期三, 22 六月 2022 14:42:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 76 +++++++++++++++++++++++--------------
1 files changed, 47 insertions(+), 29 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 c3c30a6..4ea9cf1 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
@@ -2,24 +2,20 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.UUID;
import com.alibaba.fastjson.JSON;
import com.genersoft.iot.vmp.common.StreamInfo;
-import com.genersoft.iot.vmp.conf.MediaConfig;
-import com.genersoft.iot.vmp.conf.UserSetup;
+import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
import com.genersoft.iot.vmp.gb28181.bean.SsrcTransaction;
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
-import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
import com.genersoft.iot.vmp.media.zlm.dto.*;
import com.genersoft.iot.vmp.service.*;
-import com.genersoft.iot.vmp.service.bean.SSRCInfo;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
-import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
+import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -54,7 +50,7 @@
private IPlayService playService;
@Autowired
- private IVideoManagerStorager storager;
+ private IVideoManagerStorage storager;
@Autowired
private IRedisCatchStorage redisCatchStorage;
@@ -81,7 +77,7 @@
private ZLMHttpHookSubscribe subscribe;
@Autowired
- private UserSetup userSetup;
+ private UserSetting userSetting;
@Autowired
private VideoStreamSessionManager sessionManager;
@@ -95,10 +91,9 @@
public ResponseEntity<String> onServerKeepalive(@RequestBody JSONObject json){
if (logger.isDebugEnabled()) {
- logger.debug("[ ZLM HOOK ]on_server_keepalive API璋冪敤锛屽弬鏁帮細" + json.toString());
+ logger.debug("[ ZLM HOOK ] on_server_keepalive API璋冪敤锛屽弬鏁帮細" + json.toString());
}
String mediaServerId = json.getString("mediaServerId");
-
List<ZLMHttpHookSubscribe.Event> subscribes = this.subscribe.getSubscribes(ZLMHttpHookSubscribe.HookType.on_server_keepalive);
if (subscribes != null && subscribes.size() > 0) {
for (ZLMHttpHookSubscribe.Event subscribe : subscribes) {
@@ -168,7 +163,6 @@
if (mediaInfo != null) {
subscribe.response(mediaInfo, json);
}
-
}
JSONObject ret = new JSONObject();
ret.put("code", 0);
@@ -189,6 +183,12 @@
ret.put("code", 0);
ret.put("msg", "success");
ret.put("enable_hls", true);
+ if (json.getInteger("originType") == 1
+ || json.getInteger("originType") == 2
+ || json.getInteger("originType") == 3) {
+ ret.put("enable_audio", true);
+ }
+
String mediaServerId = json.getString("mediaServerId");
ZLMHttpHookSubscribe.Event subscribe = this.subscribe.getSubscribe(ZLMHttpHookSubscribe.HookType.on_publish, json);
if (subscribe != null) {
@@ -203,9 +203,9 @@
String app = json.getString("app");
String stream = json.getString("stream");
if ("rtp".equals(app)) {
- ret.put("enable_mp4", userSetup.getRecordSip());
+ ret.put("enable_mp4", userSetting.getRecordSip());
}else {
- ret.put("enable_mp4", userSetup.isRecordPushLive());
+ ret.put("enable_mp4", userSetting.isRecordPushLive());
}
List<SsrcTransaction> ssrcTransactionForAll = sessionManager.getSsrcTransactionForAll(null, null, null, stream);
if (ssrcTransactionForAll != null && ssrcTransactionForAll.size() == 1) {
@@ -238,6 +238,23 @@
if (logger.isDebugEnabled()) {
logger.debug("[ ZLM HOOK ]on_record_mp4 API璋冪敤锛屽弬鏁帮細" + json.toString());
+ }
+ String mediaServerId = json.getString("mediaServerId");
+ JSONObject ret = new JSONObject();
+ ret.put("code", 0);
+ ret.put("msg", "success");
+ return new ResponseEntity<String>(ret.toString(),HttpStatus.OK);
+ }
+ /**
+ * 褰曞埗hls瀹屾垚鍚庨�氱煡浜嬩欢锛涙浜嬩欢瀵瑰洖澶嶄笉鏁忔劅銆�
+ *
+ */
+ @ResponseBody
+ @PostMapping(value = "/on_record_ts", produces = "application/json;charset=UTF-8")
+ public ResponseEntity<String> onRecordTs(@RequestBody JSONObject json){
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("[ ZLM HOOK ]on_record_ts API璋冪敤锛屽弬鏁帮細" + json.toString());
}
String mediaServerId = json.getString("mediaServerId");
JSONObject ret = new JSONObject();
@@ -380,21 +397,22 @@
if (item.getOriginType() == OriginType.RTSP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTMP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTC_PUSH.ordinal() ) {
- streamPushItem = zlmMediaListManager.addPush(item);
+ item.setSeverId(userSetting.getServerId());
+ zlmMediaListManager.addPush(item);
}
- List<GbStream> gbStreams = new ArrayList<>();
- if (streamPushItem == null || streamPushItem.getGbId() == null) {
- GbStream gbStream = storager.getGbStream(app, streamId);
- gbStreams.add(gbStream);
- }else {
- if (streamPushItem.getGbId() != null) {
- gbStreams.add(streamPushItem);
- }
- }
- if (gbStreams.size() > 0) {
- eventPublisher.catalogEventPublishForStream(null, gbStreams, CatalogEvent.ON);
- }
+// List<GbStream> gbStreams = new ArrayList<>();
+// if (streamPushItem == null || streamPushItem.getGbId() == null) {
+// GbStream gbStream = storager.getGbStream(app, streamId);
+// gbStreams.add(gbStream);
+// }else {
+// if (streamPushItem.getGbId() != null) {
+// gbStreams.add(streamPushItem);
+// }
+// }
+// if (gbStreams.size() > 0) {
+// eventPublisher.catalogEventPublishForStream(null, gbStreams, CatalogEvent.ON);
+// }
}else {
// 鍏煎娴佹敞閿�鏃剁被鍨嬩粠redis璁板綍鑾峰彇
@@ -405,14 +423,14 @@
}
GbStream gbStream = storager.getGbStream(app, streamId);
if (gbStream != null) {
- eventPublisher.catalogEventPublishForStream(null, gbStream, CatalogEvent.OFF);
+// eventPublisher.catalogEventPublishForStream(null, gbStream, CatalogEvent.OFF);
}
zlmMediaListManager.removeMedia(app, streamId);
}
if (type != null) {
// 鍙戦�佹祦鍙樺寲redis娑堟伅
JSONObject jsonObject = new JSONObject();
- jsonObject.put("serverId", userSetup.getServerId());
+ jsonObject.put("serverId", userSetting.getServerId());
jsonObject.put("app", app);
jsonObject.put("stream", streamId);
jsonObject.put("register", regist);
@@ -506,7 +524,7 @@
}
String mediaServerId = json.getString("mediaServerId");
MediaServerItem mediaInfo = mediaServerService.getOne(mediaServerId);
- if (userSetup.isAutoApplyPlay() && mediaInfo != null && mediaInfo.isRtpEnable()) {
+ if (userSetting.isAutoApplyPlay() && mediaInfo != null && mediaInfo.isRtpEnable()) {
String app = json.getString("app");
String streamId = json.getString("stream");
if ("rtp".equals(app)) {
--
Gitblit v1.8.0