[1078] 支持无人观看自动停流

This commit is contained in:
lin
2025-07-15 18:11:23 +08:00
parent be04660de8
commit 44ed06bcbe
7 changed files with 29 additions and 28 deletions

View File

@@ -249,7 +249,7 @@ public class ABLHttpHookListener {
@PostMapping(value = "/on_stream_none_reader", produces = "application/json;charset=UTF-8")
public JSONObject onStreamNoneReader(@RequestBody ABLHookParam param) {
logger.info("[ZLM HOOK]流无人观看:{}->{}/{}", param.getMediaServerId(),
logger.info("[ABL HOOK]流无人观看:{}->{}/{}", param.getMediaServerId(),
param.getApp(), param.getStream());
JSONObject ret = new JSONObject();

View File

@@ -38,7 +38,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
@Override
public int createRTPServer(MediaServer mediaServer, String streamId, long ssrc, Integer port, Boolean onlyAuto, Boolean disableAudio, Boolean reUsePort, Integer tcpMode) {
return zlmServerFactory.createRTPServer(mediaServer, streamId, ssrc, port, onlyAuto, disableAudio, reUsePort, tcpMode);
return zlmServerFactory.createRTPServer(mediaServer, "rtp", streamId, ssrc, port, onlyAuto, disableAudio, reUsePort, tcpMode);
}
@Override
@@ -48,7 +48,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
@Override
public int createJTTServer(MediaServer mediaServer, String streamId, Integer port, Boolean disableVideo, Boolean disableAudio, Integer tcpMode) {
return zlmServerFactory.createRTPServer(mediaServer, streamId, 0, port, disableVideo, disableAudio, false, tcpMode);
return zlmServerFactory.createRTPServer(mediaServer, "1078", streamId, 0, port, disableVideo, disableAudio, false, tcpMode);
}
@Override

View File

@@ -28,7 +28,7 @@ public class ZLMServerFactory {
* @param tcpMode 0/null udp 模式1 tcp 被动模式, 2 tcp 主动模式。
* @return
*/
public int createRTPServer(MediaServer mediaServerItem, String streamId, long ssrc, Integer port, Boolean onlyAuto, Boolean disableAudio, Boolean reUsePort, Integer tcpMode) {
public int createRTPServer(MediaServer mediaServerItem, String app, String streamId, long ssrc, Integer port, Boolean onlyAuto, Boolean disableAudio, Boolean reUsePort, Integer tcpMode) {
int result = -1;
// 查询此rtp server 是否已经存在
JSONObject rtpInfo = zlmresTfulUtils.getRtpInfo(mediaServerItem, streamId);
@@ -43,7 +43,7 @@ public class ZLMServerFactory {
JSONObject jsonObject = zlmresTfulUtils.closeRtpServer(mediaServerItem, param);
if (jsonObject != null ) {
if (jsonObject.getInteger("code") == 0) {
return createRTPServer(mediaServerItem, streamId, ssrc, port,onlyAuto, reUsePort,disableAudio, tcpMode);
return createRTPServer(mediaServerItem, streamId, app, ssrc, port,onlyAuto, reUsePort,disableAudio, tcpMode);
}else {
log.warn("[开启rtpServer], 重启RtpServer错误");
}
@@ -61,6 +61,7 @@ public class ZLMServerFactory {
tcpMode = 0;
}
param.put("tcp_mode", tcpMode);
param.put("app", app);
param.put("stream_id", streamId);
if (disableAudio != null) {
param.put("only_track", disableAudio?2:0);