实现级联点播RTP推送
This commit is contained in:
@@ -119,4 +119,8 @@ public class ZLMRESTfulUtils {
|
||||
public JSONObject closeRtpServer(Map<String, Object> param) {
|
||||
return sendPost("closeRtpServer",param);
|
||||
}
|
||||
|
||||
public JSONObject startSendRtp(Map<String, Object> param) {
|
||||
return sendPost("startSendRtp",param);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ public class ZLMRTPServerFactory {
|
||||
* @param tcp 是否为tcp
|
||||
* @return SendRtpItem
|
||||
*/
|
||||
public SendRtpItem createSendRtpItem(String ip, int port, String ssrc, String platformId, String channelId, boolean tcp){
|
||||
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) {
|
||||
@@ -119,9 +119,54 @@ public class ZLMRTPServerFactory {
|
||||
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推流请求成功,本地推流端口:" + 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状态
|
||||
logger.error("RTP推流失败: 请检查ZLM服务");
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user