From cbd2bc8e99a20d1ff65fb1171961e86c790ab024 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 10 三月 2021 09:35:20 +0800 Subject: [PATCH] Merge pull request #63 from lawrencehj/wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 77 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java index f69ff0f..819c6a8 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java @@ -1,6 +1,8 @@ package com.genersoft.iot.vmp.media.zlm; import com.alibaba.fastjson.JSONObject; +import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem; +import com.genersoft.iot.vmp.gb28181.session.SsrcUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -92,4 +94,79 @@ return currentPort++; } } + + /** + * 鍒涘缓涓�涓帹娴� + * @param ip 鎺ㄦ祦ip + * @param port 鎺ㄦ祦绔彛 + * @param ssrc 鎺ㄦ祦鍞竴鏍囪瘑 + * @param platformId 骞冲彴id + * @param channelId 閫氶亾id + * @param tcp 鏄惁涓簍cp + * @return SendRtpItem + */ + public SendRtpItem createSendRtpItem(String ip, int port, String ssrc, String platformId, String deviceId, String channelId, boolean tcp){ + String playSsrc = SsrcUtil.getPlaySsrc(); + int localPort = createRTPServer(SsrcUtil.getPlaySsrc()); + if (localPort != -1) { + closeRTPServer(playSsrc); + }else { + logger.error("娌℃湁鍙敤鐨勭鍙�"); + return null; + } + SendRtpItem sendRtpItem = new SendRtpItem(); + sendRtpItem.setIp(ip); + sendRtpItem.setPort(port); + sendRtpItem.setSsrc(ssrc); + sendRtpItem.setPlatformId(platformId); + sendRtpItem.setDeviceId(deviceId); + sendRtpItem.setChannelId(channelId); + sendRtpItem.setTcp(tcp); + sendRtpItem.setLocalPort(localPort); + return sendRtpItem; + } + + /** + * + */ + public Boolean startSendRtpStream(Map<String, Object>param) { + Boolean result = false; + JSONObject jsonObject = zlmresTfulUtils.startSendRtp(param); + System.out.println(jsonObject); + if (jsonObject != null) { + switch (jsonObject.getInteger("code")){ + case 0: + result= true; + logger.error("RTP鎺ㄦ祦璇锋眰鎴愬姛锛屾湰鍦版帹娴佺鍙o細" + jsonObject.getString("local_port")); + break; + // case -300: // id宸茬粡瀛樺湪 + // result = false; + // break; + // case -400: // 绔彛鍗犵敤 + // result= false; + // break; + default: + logger.error("RTP鎺ㄦ祦澶辫触: " + jsonObject.getString("msg")); + break; + } + }else { + // 妫�鏌LM鐘舵�� + logger.error("RTP鎺ㄦ祦澶辫触: 璇锋鏌LM鏈嶅姟"); + } + return result; + } + + /** + * + */ + public Boolean isRtpReady(String streamId) { + JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo("rtp", "rtmp", streamId); + if (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online")) { + logger.info("璁惧RTP鎺ㄦ祦鎴愬姛"); + return true; + } else { + logger.info("璁惧RTP鎺ㄦ祦鏈畬鎴�"); + return false; + } + } } -- Gitblit v1.8.0