添加拉流代理与国标关联, 支持代理rtsp/rtmp/...,转发到国标
This commit is contained in:
@@ -96,7 +96,7 @@ public class ZLMRTPServerFactory {
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建一个推流
|
||||
* 创建一个国标推流
|
||||
* @param ip 推流ip
|
||||
* @param port 推流端口
|
||||
* @param ssrc 推流唯一标识
|
||||
@@ -122,6 +122,39 @@ public class ZLMRTPServerFactory {
|
||||
sendRtpItem.setDeviceId(deviceId);
|
||||
sendRtpItem.setChannelId(channelId);
|
||||
sendRtpItem.setTcp(tcp);
|
||||
sendRtpItem.setApp("rtp");
|
||||
sendRtpItem.setLocalPort(localPort);
|
||||
return sendRtpItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建一个直播推流
|
||||
* @param ip 推流ip
|
||||
* @param port 推流端口
|
||||
* @param ssrc 推流唯一标识
|
||||
* @param platformId 平台id
|
||||
* @param channelId 通道id
|
||||
* @param tcp 是否为tcp
|
||||
* @return SendRtpItem
|
||||
*/
|
||||
public SendRtpItem createSendRtpItem(String ip, int port, String ssrc, String platformId, String app, String stream, 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.setApp(app);
|
||||
sendRtpItem.setStreamId(stream);
|
||||
sendRtpItem.setPlatformId(platformId);
|
||||
sendRtpItem.setChannelId(channelId);
|
||||
sendRtpItem.setTcp(tcp);
|
||||
sendRtpItem.setLocalPort(localPort);
|
||||
return sendRtpItem;
|
||||
}
|
||||
@@ -152,13 +185,21 @@ public class ZLMRTPServerFactory {
|
||||
return (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询待转推的流是否就绪
|
||||
*/
|
||||
public Boolean isStreamReady(String app, String streamId) {
|
||||
JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(app, "rtmp", streamId);
|
||||
return (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询转推的流是否有其它观看者
|
||||
* @param streamId
|
||||
* @return
|
||||
*/
|
||||
public int totalReaderCount(String streamId) {
|
||||
JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo("rtp", "rtmp", streamId);
|
||||
public int totalReaderCount(String app, String streamId) {
|
||||
JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(app, "rtmp", streamId);
|
||||
return mediaInfo.getInteger("totalReaderCount");
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.genersoft.iot.vmp.conf.MediaServerConfig;
|
||||
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyDto;
|
||||
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
|
||||
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||
//import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
|
||||
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
|
||||
@@ -165,8 +165,8 @@ public class ZLMRunner implements CommandLineRunner {
|
||||
// 更新流列表
|
||||
zlmMediaListManager.updateMediaList();
|
||||
// 恢复流代理
|
||||
List<StreamProxyDto> streamProxyListForEnable = storager.getStreamProxyListForEnable(true);
|
||||
for (StreamProxyDto streamProxyDto : streamProxyListForEnable) {
|
||||
List<StreamProxyItem> streamProxyListForEnable = storager.getStreamProxyListForEnable(true);
|
||||
for (StreamProxyItem streamProxyDto : streamProxyListForEnable) {
|
||||
logger.info("恢复流代理," + streamProxyDto.getApp() + "/" + streamProxyDto.getStream());
|
||||
streamProxyService.addStreamProxyToZlm(streamProxyDto);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.genersoft.iot.vmp.media.zlm.dto;
|
||||
|
||||
public class StreamProxyDto {
|
||||
import com.genersoft.iot.vmp.gb28181.bean.GbStream;
|
||||
|
||||
public class StreamProxyItem extends GbStream {
|
||||
|
||||
private String type;
|
||||
private String app;
|
||||
private String stream;
|
||||
@@ -109,4 +112,6 @@ public class StreamProxyDto {
|
||||
public void setEnable_mp4(boolean enable_mp4) {
|
||||
this.enable_mp4 = enable_mp4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user