From 4e3247e44e5d7a851a00e83995902e3876ae7cdc Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 10 三月 2022 20:54:14 +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 | 31 ++++++++++++-------------------
1 files changed, 12 insertions(+), 19 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 4f45813..62723ac 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
@@ -181,7 +181,7 @@
@PostMapping(value = "/on_publish", produces = "application/json;charset=UTF-8")
public ResponseEntity<String> onPublish(@RequestBody JSONObject json) {
- logger.debug("[ ZLM HOOK ]on_publish API璋冪敤锛屽弬鏁帮細" + json.toString());
+ logger.info("[ ZLM HOOK ]on_publish API璋冪敤锛屽弬鏁帮細" + json.toString());
JSONObject ret = new JSONObject();
ret.put("code", 0);
ret.put("msg", "success");
@@ -358,6 +358,9 @@
if (mediaServerItem != null){
if (regist) {
StreamPushItem streamPushItem = null;
+ StreamInfo streamInfoByAppAndStream = mediaService.getStreamInfoByAppAndStream(mediaServerItem, app, streamId, tracks);
+ item.setStreamInfo(streamInfoByAppAndStream);
+
redisCatchStorage.addStream(mediaServerItem, type, app, streamId, item);
if (item.getOriginType() == OriginType.RTSP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTMP_PUSH.ordinal()
@@ -375,7 +378,7 @@
}
}
if (gbStreams.size() > 0) {
- eventPublisher.catalogEventPublishForStream(null, gbStreams.toArray(new GbStream[0]), CatalogEvent.ON);
+ eventPublisher.catalogEventPublishForStream(null, gbStreams, CatalogEvent.ON);
}
}else {
@@ -436,14 +439,16 @@
if (redisCatchStorage.isChannelSendingRTP(streamInfoForPlayCatch.getChannelId())) {
ret.put("close", false);
} else {
- cmder.streamByeCmd(streamInfoForPlayCatch.getDeviceID(), streamInfoForPlayCatch.getChannelId());
+ cmder.streamByeCmd(streamInfoForPlayCatch.getDeviceID(), streamInfoForPlayCatch.getChannelId(),
+ streamInfoForPlayCatch.getStream());
redisCatchStorage.stopPlay(streamInfoForPlayCatch);
storager.stopPlay(streamInfoForPlayCatch.getDeviceID(), streamInfoForPlayCatch.getChannelId());
}
}else{
StreamInfo streamInfoForPlayBackCatch = redisCatchStorage.queryPlaybackByStreamId(streamId);
if (streamInfoForPlayBackCatch != null) {
- cmder.streamByeCmd(streamInfoForPlayBackCatch.getDeviceID(), streamInfoForPlayBackCatch.getChannelId());
+ cmder.streamByeCmd(streamInfoForPlayBackCatch.getDeviceID(),
+ streamInfoForPlayBackCatch.getChannelId(), streamInfoForPlayBackCatch.getStream());
redisCatchStorage.stopPlayback(streamInfoForPlayBackCatch);
}else {
StreamInfo streamInfoForDownload = redisCatchStorage.queryDownloadByStreamId(streamId);
@@ -484,7 +489,7 @@
}
String mediaServerId = json.getString("mediaServerId");
MediaServerItem mediaInfo = mediaServerService.getOne(mediaServerId);
- if (userSetup.isAutoApplyPlay() && mediaInfo != null) {
+ if (userSetup.isAutoApplyPlay() && mediaInfo != null && mediaInfo.isRtpEnable()) {
String app = json.getString("app");
String streamId = json.getString("stream");
if ("rtp".equals(app)) {
@@ -494,28 +499,16 @@
String channelId = s[1];
Device device = redisCatchStorage.getDevice(deviceId);
if (device != null) {
- UUID uuid = UUID.randomUUID();
- SSRCInfo ssrcInfo;
- String streamId2 = null;
- if (mediaInfo.isRtpEnable()) {
- streamId2 = String.format("%s_%s", device.getDeviceId(), channelId);
- }
- ssrcInfo = mediaServerService.openRTPServer(mediaInfo, streamId2);
- cmder.playStreamCmd(mediaInfo, ssrcInfo, device, channelId, (MediaServerItem mediaServerItemInuse, JSONObject response) -> {
- logger.info("鏀跺埌璁㈤槄娑堟伅锛� " + response.toJSONString());
- playService.onPublishHandlerForPlay(mediaServerItemInuse, response, deviceId, channelId, uuid.toString());
- }, null);
+ playService.play(mediaInfo,deviceId, channelId, null, null, null);
}
-
}
}
-
}
JSONObject ret = new JSONObject();
ret.put("code", 0);
ret.put("msg", "success");
- return new ResponseEntity<String>(ret.toString(),HttpStatus.OK);
+ return new ResponseEntity<>(ret.toString(),HttpStatus.OK);
}
/**
--
Gitblit v1.8.0