From f840c85666369d407ff08ceb6ba30b17aa9d0d4e Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: Wed, 10 Mar 2021 12:21:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=80=E5=A4=84=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E5=AF=BC=E8=87=B4=E6=AD=BB=E5=BE=AA=E7=8E=AF=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/impl/AckRequestProcessor.java | 5 +++ .../vmp/media/zlm/ZLMRTPServerFactory.java | 36 +++++-------------- 2 files changed, 14 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java index 7f58de5e..d93ba9cc 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java @@ -68,11 +68,16 @@ public class AckRequestProcessor extends SIPRequestAbstractProcessor { if (System.currentTimeMillis() - startTime < 30 * 1000) { if (zlmrtpServerFactory.isRtpReady(streamInfo.getStreamId())) { rtpPushed = true; + System.out.println("已获取设备推流,开始向上级推流"); zlmrtpServerFactory.startSendRtpStream(param); } else { + System.out.println("等待设备推流......."); Thread.sleep(2000); continue; } + } else { + rtpPushed = true; + System.out.println("设备推流超时,终止向上级推流"); } } catch (InterruptedException e) { e.printStackTrace(); 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 819c6a82..a25753e1 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 @@ -127,46 +127,28 @@ public class ZLMRTPServerFactory { } /** - * + * 调用zlm RESTful API —— startSendRtp */ public Boolean startSendRtpStream(Mapparam) { 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推流请求成功,本地推流端口:" + 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 { - // 检查ZLM状态 + if (jsonObject == null) { logger.error("RTP推流失败: 请检查ZLM服务"); + } else if (jsonObject.getInteger("code") == 0) { + result= true; + logger.error("RTP推流请求成功,本地推流端口:" + jsonObject.getString("local_port")); + } else { + logger.error("RTP推流失败: " + jsonObject.getString("msg")); } 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; - } + return (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online")); } }