From b90dc789b429c31674c26bb3ff309b987afaa77a Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 21 三月 2024 23:39:32 +0800 Subject: [PATCH] 优化媒体节点服务的代码结构 --- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java | 88 ++++++++++++++++++++++++++++++-------------- 1 files changed, 60 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java index 686981e..23b26db 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java @@ -6,11 +6,10 @@ import com.genersoft.iot.vmp.common.CommonCallback; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.conf.exception.ControllerException; -import com.genersoft.iot.vmp.media.bean.Track; +import com.genersoft.iot.vmp.media.bean.MediaInfo; import com.genersoft.iot.vmp.media.service.IMediaNodeServerService; -import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServer; import com.genersoft.iot.vmp.media.zlm.dto.ZLMServerConfig; -import com.genersoft.iot.vmp.service.impl.DeviceServiceImpl; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,32 +38,32 @@ private String sipIp; @Override - public int createRTPServer(MediaServerItem mediaServerItem, String streamId, long ssrc, Integer port, Boolean onlyAuto, Boolean reUsePort, Integer tcpMode) { + public int createRTPServer(MediaServer mediaServerItem, String streamId, long ssrc, Integer port, Boolean onlyAuto, Boolean reUsePort, Integer tcpMode) { return zlmServerFactory.createRTPServer(mediaServerItem, streamId, ssrc, port, onlyAuto, reUsePort, tcpMode); } @Override - public void closeRtpServer(MediaServerItem mediaServerItem, String streamId) { + public void closeRtpServer(MediaServer mediaServerItem, String streamId) { zlmresTfulUtils.closeStreams(mediaServerItem, "rtp", streamId); } @Override - public void closeRtpServer(MediaServerItem mediaServerItem, String streamId, CommonCallback<Boolean> callback) { + public void closeRtpServer(MediaServer mediaServerItem, String streamId, CommonCallback<Boolean> callback) { zlmServerFactory.closeRtpServer(mediaServerItem, streamId, callback); } @Override - public void closeStreams(MediaServerItem mediaServerItem, String app, String stream) { + public void closeStreams(MediaServer mediaServerItem, String app, String stream) { zlmresTfulUtils.closeStreams(mediaServerItem, app, stream); } @Override - public Boolean updateRtpServerSSRC(MediaServerItem mediaServerItem, String streamId, String ssrc) { + public Boolean updateRtpServerSSRC(MediaServer mediaServerItem, String streamId, String ssrc) { return zlmServerFactory.updateRtpServerSSRC(mediaServerItem, streamId, ssrc); } @Override - public boolean checkNodeId(MediaServerItem mediaServerItem) { + public boolean checkNodeId(MediaServer mediaServerItem) { if (mediaServerItem == null) { return false; } @@ -84,13 +83,13 @@ } @Override - public void online(MediaServerItem mediaServerItem) { + public void online(MediaServer mediaServerItem) { } @Override - public MediaServerItem checkMediaServer(String ip, int port, String secret) { - MediaServerItem mediaServerItem = new MediaServerItem(); + public MediaServer checkMediaServer(String ip, int port, String secret) { + MediaServer mediaServerItem = new MediaServer(); mediaServerItem.setIp(ip); mediaServerItem.setHttpPort(port); mediaServerItem.setSecret(secret); @@ -121,7 +120,7 @@ } @Override - public boolean stopSendRtp(MediaServerItem mediaInfo, String app, String stream, String ssrc) { + public boolean stopSendRtp(MediaServer mediaInfo, String app, String stream, String ssrc) { Map<String, Object> param = new HashMap<>(); param.put("vhost", "__defaultVhost__"); param.put("app", app); @@ -135,7 +134,7 @@ } @Override - public boolean deleteRecordDirectory(MediaServerItem mediaServerItem, String app, String stream, String date, String fileName) { + public boolean deleteRecordDirectory(MediaServer mediaServerItem, String app, String stream, String date, String fileName) { logger.info("[zlm-deleteRecordDirectory] 鍒犻櫎纾佺洏鏂囦欢, server: {} {}:{}->{}/{}", mediaServerItem.getId(), app, stream, date, fileName); JSONObject jsonObject = zlmresTfulUtils.deleteRecordDirectory(mediaServerItem, app, stream, date, fileName); @@ -148,7 +147,7 @@ } @Override - public List<StreamInfo> getMediaList(MediaServerItem mediaServerItem, String app, String stream, String callId) { + public List<StreamInfo> getMediaList(MediaServer mediaServerItem, String app, String stream, String callId) { List<StreamInfo> streamInfoList = new ArrayList<>(); JSONObject mediaList = zlmresTfulUtils.getMediaList(mediaServerItem, app, stream); if (mediaList != null) { @@ -158,8 +157,8 @@ return null; } JSONObject mediaJSON = data.getJSONObject(0); - Track track = Track.getInstance(mediaJSON); - StreamInfo streamInfo = getStreamInfoByAppAndStream(mediaServerItem, app, stream, track, callId, true); + MediaInfo mediaInfo = MediaInfo.getInstance(mediaJSON); + StreamInfo streamInfo = getStreamInfoByAppAndStream(mediaServerItem, app, stream, mediaInfo, callId, true); if (streamInfo != null) { streamInfoList.add(streamInfo); } @@ -168,23 +167,56 @@ return streamInfoList; } - public StreamInfo getStreamInfoByAppAndStream(MediaServerItem mediaInfo, String app, String stream, Track track, String callId, boolean isPlay) { + public StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServerItem, String app, String stream, MediaInfo mediaInfo, String callId, boolean isPlay) { StreamInfo streamInfoResult = new StreamInfo(); streamInfoResult.setStream(stream); streamInfoResult.setApp(app); - String addr = mediaInfo.getStreamIp(); + String addr = mediaServerItem.getStreamIp(); streamInfoResult.setIp(addr); - streamInfoResult.setMediaServerId(mediaInfo.getId()); + streamInfoResult.setMediaServerId(mediaServerItem.getId()); String callIdParam = ObjectUtils.isEmpty(callId)?"":"?callId=" + callId; - streamInfoResult.setRtmp(addr, mediaInfo.getRtmpPort(),mediaInfo.getRtmpSSlPort(), app, stream, callIdParam); - streamInfoResult.setRtsp(addr, mediaInfo.getRtspPort(),mediaInfo.getRtspSSLPort(), app, stream, callIdParam); - streamInfoResult.setFlv(addr, mediaInfo.getHttpPort(),mediaInfo.getHttpSSlPort(), app, stream, callIdParam); - streamInfoResult.setFmp4(addr, mediaInfo.getHttpPort(),mediaInfo.getHttpSSlPort(), app, stream, callIdParam); - streamInfoResult.setHls(addr, mediaInfo.getHttpPort(),mediaInfo.getHttpSSlPort(), app, stream, callIdParam); - streamInfoResult.setTs(addr, mediaInfo.getHttpPort(),mediaInfo.getHttpSSlPort(), app, stream, callIdParam); - streamInfoResult.setRtc(addr, mediaInfo.getHttpPort(),mediaInfo.getHttpSSlPort(), app, stream, callIdParam, isPlay); + streamInfoResult.setRtmp(addr, mediaServerItem.getRtmpPort(),mediaServerItem.getRtmpSSlPort(), app, stream, callIdParam); + streamInfoResult.setRtsp(addr, mediaServerItem.getRtspPort(),mediaServerItem.getRtspSSLPort(), app, stream, callIdParam); + streamInfoResult.setFlv(addr, mediaServerItem.getHttpPort(),mediaServerItem.getHttpSSlPort(), app, stream, callIdParam); + streamInfoResult.setFmp4(addr, mediaServerItem.getHttpPort(),mediaServerItem.getHttpSSlPort(), app, stream, callIdParam); + streamInfoResult.setHls(addr, mediaServerItem.getHttpPort(),mediaServerItem.getHttpSSlPort(), app, stream, callIdParam); + streamInfoResult.setTs(addr, mediaServerItem.getHttpPort(),mediaServerItem.getHttpSSlPort(), app, stream, callIdParam); + streamInfoResult.setRtc(addr, mediaServerItem.getHttpPort(),mediaServerItem.getHttpSSlPort(), app, stream, callIdParam, isPlay); - streamInfoResult.setTrack(track); + streamInfoResult.setMediaInfo(mediaInfo); return streamInfoResult; } + + @Override + public Boolean connectRtpServer(MediaServer mediaServerItem, String address, int port, String stream) { + JSONObject jsonObject = zlmresTfulUtils.connectRtpServer(mediaServerItem, address, port, stream); + logger.info("[TCP涓诲姩杩炴帴瀵规柟] 缁撴灉锛� {}", jsonObject); + return jsonObject.getInteger("code") == 0; + } + + @Override + public void getSnap(MediaServer mediaServerItem, String streamUrl, int timeoutSec, int expireSec, String path, String fileName) { + zlmresTfulUtils.getSnap(mediaServerItem, streamUrl, timeoutSec, expireSec, path, fileName); + } + + @Override + public MediaInfo getMediaInfo(MediaServer mediaServerItem, String app, String stream) { + JSONObject jsonObject = zlmresTfulUtils.getMediaInfo(mediaServerItem, app, "rtsp", stream); + if (jsonObject.getInteger("code") != 0) { + return null; + } + return MediaInfo.getInstance(jsonObject); + } + + @Override + public Boolean pauseRtpCheck(MediaServer mediaServerItem, String streamKey) { + JSONObject jsonObject = zlmresTfulUtils.pauseRtpCheck(mediaServerItem, streamKey); + return jsonObject.getInteger("code") == 0; + } + + @Override + public Boolean resumeRtpCheck(MediaServer mediaServerItem, String streamKey) { + JSONObject jsonObject = zlmresTfulUtils.resumeRtpCheck(mediaServerItem, streamKey); + return jsonObject.getInteger("code") == 0; + } } -- Gitblit v1.8.0