From b6688baef1092c3776636f8667b590a6f2251909 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 15 十二月 2020 10:41:21 +0800
Subject: [PATCH] Merge pull request #10 from lawrencehj/master
---
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 61 +++++++++++++++++++++++-------
1 files changed, 46 insertions(+), 15 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 4c9f6fd..99da624 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
@@ -49,6 +49,9 @@
@Autowired
private ZLMRESTfulUtils zlmresTfulUtils;
+ @Autowired
+ private ZLMHttpHookSubscribe subscribe;
+
@Value("${media.ip}")
private String mediaIp;
@@ -129,21 +132,37 @@
String app = json.getString("app");
String streamId = json.getString("id");
+ ZLMHttpHookSubscribe.Event subscribe = this.subscribe.getSubscribe(ZLMHttpHookSubscribe.HookType.on_publish, json);
+ if (subscribe != null) subscribe.response(json);
-// String ssrc = String.format("%10d", Integer.parseInt(streamId, 16)); // ZLM 瑕佹眰澶у啓涓旈浣嶈ˉ闆�
- String ssrc = new DecimalFormat("0000000000").format(Integer.parseInt(streamId, 16));
- StreamInfo streamInfo = storager.queryPlayBySSRC(ssrc);
- if ("rtp".equals(app) && streamInfo != null ) {
- MediaServerConfig mediaInfo = storager.getMediaInfo();
- streamInfo.setFlv(String.format("http://%s:%s/rtp/%s.flv", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
- streamInfo.setWs_flv(String.format("ws://%s:%s/rtp/%s.flv", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
- streamInfo.setRtmp(String.format("rtmp://%s:%s/rtp/%s", mediaInfo.getLocalIP(), mediaInfo.getRtmpPort(), streamId));
- streamInfo.setHls(String.format("http://%s:%s/rtp/%s/hls.m3u8", mediaInfo.getLocalIP(), mediaInfo.getHttpPort(), streamId));
- streamInfo.setRtsp(String.format("rtsp://%s:%s/rtp/%s", mediaInfo.getLocalIP(), mediaInfo.getRtspPort(), streamId));
-
-
- storager.startPlay(streamInfo);
- }
+// if ("rtp".equals(app)) {
+// String ssrc = new DecimalFormat("0000000000").format(Integer.parseInt(streamId, 16));
+// StreamInfo streamInfoForPlay = storager.queryPlayBySSRC(ssrc);
+// if ("rtp".equals(app) && streamInfoForPlay != null ) {
+// MediaServerConfig mediaInfo = storager.getMediaInfo();
+// streamInfoForPlay.setFlv(String.format("http://%s:%s/rtp/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlay.setWs_flv(String.format("ws://%s:%s/rtp/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlay.setFmp4(String.format("http://%s:%s/rtp/%s.live.mp4", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlay.setWs_fmp4(String.format("ws://%s:%s/rtp/%s.live.mp4", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlay.setRtmp(String.format("rtmp://%s:%s/rtp/%s", mediaInfo.getWanIp(), mediaInfo.getRtmpPort(), streamId));
+// streamInfoForPlay.setHls(String.format("http://%s:%s/rtp/%s/hls.m3u8", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlay.setRtsp(String.format("rtsp://%s:%s/rtp/%s", mediaInfo.getWanIp(), mediaInfo.getRtspPort(), streamId));
+// storager.startPlay(streamInfoForPlay);
+// }
+//
+// StreamInfo streamInfoForPlayBack = storager.queryPlaybackBySSRC(ssrc);
+// if ("rtp".equals(app) && streamInfoForPlayBack != null ) {
+// MediaServerConfig mediaInfo = storager.getMediaInfo();
+// streamInfoForPlayBack.setFlv(String.format("http://%s:%s/rtp/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlayBack.setWs_flv(String.format("ws://%s:%s/rtp/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlayBack.setFmp4(String.format("http://%s:%s/rtp/%s.live.mp4", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlayBack.setWs_fmp4(String.format("ws://%s:%s/rtp/%s.live.mp4", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlayBack.setRtmp(String.format("rtmp://%s:%s/rtp/%s", mediaInfo.getWanIp(), mediaInfo.getRtmpPort(), streamId));
+// streamInfoForPlayBack.setHls(String.format("http://%s:%s/rtp/%s/hls.m3u8", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), streamId));
+// streamInfoForPlayBack.setRtsp(String.format("rtsp://%s:%s/rtp/%s", mediaInfo.getWanIp(), mediaInfo.getRtspPort(), streamId));
+// storager.startPlayback(streamInfoForPlayBack);
+// }
+// }
// TODO Auto-generated method stub
@@ -253,7 +272,12 @@
String ssrc = new DecimalFormat("0000000000").format(Integer.parseInt(streamId, 16));
StreamInfo streamInfo = storager.queryPlayBySSRC(ssrc);
if ("rtp".equals(app) && !regist ) {
- storager.stopPlay(streamInfo);
+ if (streamInfo!=null){
+ storager.stopPlay(streamInfo);
+ }else{
+ streamInfo = storager.queryPlaybackBySSRC(ssrc);
+ storager.stopPlayback(streamInfo);
+ }
}
@@ -280,6 +304,13 @@
String ssrc = String.format("%010d", numb);
cmder.streamByeCmd(ssrc);
+ StreamInfo streamInfo = storager.queryPlayBySSRC(ssrc);
+ if (streamInfo!=null){
+ storager.stopPlay(streamInfo);
+ }else{
+ streamInfo = storager.queryPlaybackBySSRC(ssrc);
+ storager.stopPlayback(streamInfo);
+ }
JSONObject ret = new JSONObject();
ret.put("code", 0);
--
Gitblit v1.8.0