| | |
| | | |
| | | Map<String, Object> param = new HashMap<>(); |
| | | int result = -1; |
| | | /** |
| | | * 不设置推流端口端则使用随机端口 |
| | | */ |
| | | if (StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){ |
| | | param.put("port", 0); |
| | | }else { |
| | | // 不设置推流端口端则使用随机端口 |
| | | if (!StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){ |
| | | int newPort = getPortFromportRange(mediaServerItem); |
| | | param.put("port", newPort); |
| | | } |
| | |
| | | int currentPort = mediaServerItem.getCurrentPort(); |
| | | if (currentPort == 0) { |
| | | String[] portRangeStrArray = mediaServerItem.getSendRtpPortRange().split(","); |
| | | portRangeArray[0] = Integer.parseInt(portRangeStrArray[0]); |
| | | portRangeArray[1] = Integer.parseInt(portRangeStrArray[1]); |
| | | if (portRangeStrArray.length != 2) { |
| | | portRangeArray[0] = 30000; |
| | | portRangeArray[1] = 30500; |
| | | }else { |
| | | portRangeArray[0] = Integer.parseInt(portRangeStrArray[0]); |
| | | portRangeArray[1] = Integer.parseInt(portRangeStrArray[1]); |
| | | } |
| | | } |
| | | |
| | | if (currentPort == 0 || currentPort++ > portRangeArray[1]) { |
| | |
| | | /** |
| | | * 调用zlm RESTful API —— startSendRtp |
| | | */ |
| | | public Boolean startSendRtpStream(MediaServerItem mediaServerItem, Map<String, Object>param) { |
| | | public JSONObject startSendRtpStream(MediaServerItem mediaServerItem, Map<String, Object>param) { |
| | | Boolean result = false; |
| | | JSONObject jsonObject = zlmresTfulUtils.startSendRtp(mediaServerItem, param); |
| | | if (jsonObject == null) { |
| | |
| | | } else { |
| | | logger.error("RTP推流失败: " + jsonObject.getString("msg")); |
| | | } |
| | | return result; |
| | | return jsonObject; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | public int totalReaderCount(MediaServerItem mediaServerItem, String app, String streamId) { |
| | | JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(mediaServerItem, app, "rtmp", streamId); |
| | | Integer code = mediaInfo.getInteger("code"); |
| | | if (mediaInfo == null) { |
| | | return 0; |
| | | } |
| | | if ( code < 0) { |
| | | logger.warn("查询流({}/{})是否有其它观看者时得到: {}", app, streamId, mediaInfo.getString("msg")); |
| | | return -1; |
| | | } |
| | | if ( code == 0 && ! mediaInfo.getBoolean("online")) { |
| | | logger.warn("查询流({}/{})是否有其它观看者时得到: {}", app, streamId, mediaInfo.getString("msg")); |
| | | return -1; |
| | | } |
| | | return mediaInfo.getInteger("totalReaderCount"); |
| | | } |
| | | |