| | |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.genersoft.iot.vmp.conf.MediaConfig; |
| | | 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; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.HashMap; |
| | |
| | | |
| | | private Logger logger = LoggerFactory.getLogger("ZLMRTPServerFactory"); |
| | | |
| | | @Value("${media.rtp.portRange}") |
| | | private String portRange; |
| | | @Autowired |
| | | private MediaConfig mediaConfig; |
| | | |
| | | @Autowired |
| | | private ZLMRESTfulUtils zlmresTfulUtils; |
| | |
| | | if (currentStreams == null) { |
| | | currentStreams = new HashMap<>(); |
| | | JSONObject jsonObject = zlmresTfulUtils.listRtpServer(); |
| | | JSONArray data = jsonObject.getJSONArray("data"); |
| | | if (data != null) { |
| | | for (int i = 0; i < data.size(); i++) { |
| | | JSONObject dataItem = data.getJSONObject(i); |
| | | currentStreams.put(dataItem.getString("stream_id"), dataItem.getInteger("port")); |
| | | if (jsonObject != null) { |
| | | JSONArray data = jsonObject.getJSONArray("data"); |
| | | if (data != null) { |
| | | for (int i = 0; i < data.size(); i++) { |
| | | JSONObject dataItem = data.getJSONObject(i); |
| | | currentStreams.put(dataItem.getString("stream_id"), dataItem.getInteger("port")); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | result= createRTPServer(streamId); |
| | | break; |
| | | default: |
| | | logger.error("创建RTP Server 失败: " + jsonObject.getString("msg")); |
| | | logger.error("创建RTP Server 失败 {}: " + jsonObject.getString("msg"), newPort); |
| | | break; |
| | | } |
| | | }else { |
| | | // 检查ZLM状态 |
| | | logger.error("创建RTP Server 失败: 请检查ZLM服务"); |
| | | logger.error("创建RTP Server 失败 {}: 请检查ZLM服务", newPort); |
| | | } |
| | | return result; |
| | | } |
| | |
| | | |
| | | private int getPortFromportRange() { |
| | | if (currentPort == 0) { |
| | | String[] portRangeStrArray = portRange.split(","); |
| | | String[] portRangeStrArray = mediaConfig.getRtpPortRange().split(","); |
| | | portRangeArray[0] = Integer.parseInt(portRangeStrArray[0]); |
| | | portRangeArray[1] = Integer.parseInt(portRangeStrArray[1]); |
| | | } |