播放地址携带流来源信息
parent
e0f9c93b0f
commit
e5c3f82d54
|
@ -4,11 +4,12 @@ import com.genersoft.iot.vmp.media.bean.MediaInfo;
|
||||||
import com.genersoft.iot.vmp.media.bean.MediaServer;
|
import com.genersoft.iot.vmp.media.bean.MediaServer;
|
||||||
import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
|
import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Data
|
||||||
@Schema(description = "流信息")
|
@Schema(description = "流信息")
|
||||||
public class StreamInfo implements Serializable, Cloneable{
|
public class StreamInfo implements Serializable, Cloneable{
|
||||||
|
|
||||||
|
@ -91,100 +92,15 @@ public class StreamInfo implements Serializable, Cloneable{
|
||||||
@Schema(description = "产生源类型,包括 unknown = 0,rtmp_push=1,rtsp_push=2,rtp_push=3,pull=4,ffmpeg_pull=5,mp4_vod=6,device_chn=7")
|
@Schema(description = "产生源类型,包括 unknown = 0,rtmp_push=1,rtsp_push=2,rtp_push=3,pull=4,ffmpeg_pull=5,mp4_vod=6,device_chn=7")
|
||||||
private int originType;
|
private int originType;
|
||||||
|
|
||||||
|
@Schema(description = "originType的文本描述")
|
||||||
|
private String originTypeStr;
|
||||||
|
|
||||||
@Schema(description = "转码后的视频流")
|
@Schema(description = "转码后的视频流")
|
||||||
private StreamInfo transcodeStream;
|
private StreamInfo transcodeStream;
|
||||||
|
|
||||||
@Schema(description = "使用的WVP ID")
|
@Schema(description = "使用的WVP ID")
|
||||||
private String serverId;
|
private String serverId;
|
||||||
|
|
||||||
public void setFlv(StreamURL flv) {
|
|
||||||
this.flv = flv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHttps_flv(StreamURL https_flv) {
|
|
||||||
this.https_flv = https_flv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWs_flv(StreamURL ws_flv) {
|
|
||||||
this.ws_flv = ws_flv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWss_flv(StreamURL wss_flv) {
|
|
||||||
this.wss_flv = wss_flv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFmp4(StreamURL fmp4) {
|
|
||||||
this.fmp4 = fmp4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHttps_fmp4(StreamURL https_fmp4) {
|
|
||||||
this.https_fmp4 = https_fmp4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWs_fmp4(StreamURL ws_fmp4) {
|
|
||||||
this.ws_fmp4 = ws_fmp4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWss_fmp4(StreamURL wss_fmp4) {
|
|
||||||
this.wss_fmp4 = wss_fmp4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHls(StreamURL hls) {
|
|
||||||
this.hls = hls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHttps_hls(StreamURL https_hls) {
|
|
||||||
this.https_hls = https_hls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWs_hls(StreamURL ws_hls) {
|
|
||||||
this.ws_hls = ws_hls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWss_hls(StreamURL wss_hls) {
|
|
||||||
this.wss_hls = wss_hls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTs(StreamURL ts) {
|
|
||||||
this.ts = ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHttps_ts(StreamURL https_ts) {
|
|
||||||
this.https_ts = https_ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWs_ts(StreamURL ws_ts) {
|
|
||||||
this.ws_ts = ws_ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWss_ts(StreamURL wss_ts) {
|
|
||||||
this.wss_ts = wss_ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRtmp(StreamURL rtmp) {
|
|
||||||
this.rtmp = rtmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRtmps(StreamURL rtmps) {
|
|
||||||
this.rtmps = rtmps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRtsp(StreamURL rtsp) {
|
|
||||||
this.rtsp = rtsp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRtsps(StreamURL rtsps) {
|
|
||||||
this.rtsps = rtsps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRtc(StreamURL rtc) {
|
|
||||||
this.rtc = rtc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRtcs(StreamURL rtcs) {
|
|
||||||
this.rtcs = rtcs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRtmp(String host, int port, int sslPort, String app, String stream, String callIdParam) {
|
public void setRtmp(String host, int port, int sslPort, String app, String stream, String callIdParam) {
|
||||||
String file = String.format("%s/%s%s", app, stream, callIdParam);
|
String file = String.format("%s/%s%s", app, stream, callIdParam);
|
||||||
if (port > 0) {
|
if (port > 0) {
|
||||||
|
@ -351,205 +267,6 @@ public class StreamInfo implements Serializable, Cloneable{
|
||||||
|
|
||||||
private TransactionInfo transactionInfo;
|
private TransactionInfo transactionInfo;
|
||||||
|
|
||||||
public String getApp() {
|
|
||||||
return app;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApp(String app) {
|
|
||||||
this.app = app;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDeviceId() {
|
|
||||||
return deviceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeviceId(String deviceId) {
|
|
||||||
this.deviceId = deviceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getChannelId() {
|
|
||||||
return channelId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChannelId(Integer channelId) {
|
|
||||||
this.channelId = channelId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStream() {
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStream(String stream) {
|
|
||||||
this.stream = stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIp() {
|
|
||||||
return ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIp(String ip) {
|
|
||||||
this.ip = ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getFlv() {
|
|
||||||
return flv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getHttps_flv() {
|
|
||||||
return https_flv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getWs_flv() {
|
|
||||||
return ws_flv;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public StreamURL getWss_flv() {
|
|
||||||
return wss_flv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getFmp4() {
|
|
||||||
return fmp4;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public StreamURL getHttps_fmp4() {
|
|
||||||
return https_fmp4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getWs_fmp4() {
|
|
||||||
return ws_fmp4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getWss_fmp4() {
|
|
||||||
return wss_fmp4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getHls() {
|
|
||||||
return hls;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public StreamURL getHttps_hls() {
|
|
||||||
return https_hls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getWs_hls() {
|
|
||||||
return ws_hls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getWss_hls() {
|
|
||||||
return wss_hls;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getTs() {
|
|
||||||
return ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public StreamURL getHttps_ts() {
|
|
||||||
return https_ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public StreamURL getWs_ts() {
|
|
||||||
return ws_ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public StreamURL getWss_ts() {
|
|
||||||
return wss_ts;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public StreamURL getRtmp() {
|
|
||||||
return rtmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getRtmps() {
|
|
||||||
return rtmps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getRtsp() {
|
|
||||||
return rtsp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getRtsps() {
|
|
||||||
return rtsps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getRtc() {
|
|
||||||
return rtc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamURL getRtcs() {
|
|
||||||
return rtcs;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MediaServer getMediaServer() {
|
|
||||||
return mediaServer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMediaServer(MediaServer mediaServer) {
|
|
||||||
this.mediaServer = mediaServer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MediaInfo getMediaInfo() {
|
|
||||||
return mediaInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMediaInfo(MediaInfo mediaInfo) {
|
|
||||||
this.mediaInfo = mediaInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStartTime() {
|
|
||||||
return startTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStartTime(String startTime) {
|
|
||||||
this.startTime = startTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEndTime() {
|
|
||||||
return endTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEndTime(String endTime) {
|
|
||||||
this.endTime = endTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getProgress() {
|
|
||||||
return progress;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProgress(double progress) {
|
|
||||||
this.progress = progress;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isPause() {
|
|
||||||
return pause;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPause(boolean pause) {
|
|
||||||
this.pause = pause;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TransactionInfo getTransactionInfo() {
|
|
||||||
return transactionInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTransactionInfo(TransactionInfo transactionInfo) {
|
|
||||||
this.transactionInfo = transactionInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamInfo getTranscodeStream() {
|
|
||||||
return transcodeStream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTranscodeStream(StreamInfo transcodeStream) {
|
|
||||||
this.transcodeStream = transcodeStream;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StreamInfo clone() {
|
public StreamInfo clone() {
|
||||||
|
@ -625,48 +342,4 @@ public class StreamInfo implements Serializable, Cloneable{
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*=========================设备主子码流逻辑START====================*/
|
|
||||||
@Schema(description = "是否为子码流(true-是,false-主码流)")
|
|
||||||
private boolean subStream;
|
|
||||||
|
|
||||||
public boolean isSubStream() {
|
|
||||||
return subStream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubStream(boolean subStream) {
|
|
||||||
this.subStream = subStream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DownloadFileInfo getDownLoadFilePath() {
|
|
||||||
return downLoadFilePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDownLoadFilePath(DownloadFileInfo downLoadFilePath) {
|
|
||||||
this.downLoadFilePath = downLoadFilePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getOriginType() {
|
|
||||||
return originType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginType(int originType) {
|
|
||||||
this.originType = originType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getServerId() {
|
|
||||||
return serverId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setServerId(String serverId) {
|
|
||||||
this.serverId = serverId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCallId() {
|
|
||||||
return callId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCallId(String callId) {
|
|
||||||
this.callId = callId;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,6 @@ import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.MobilePosition;
|
import com.genersoft.iot.vmp.gb28181.bean.MobilePosition;
|
||||||
import com.genersoft.iot.vmp.gb28181.bean.Platform;
|
import com.genersoft.iot.vmp.gb28181.bean.Platform;
|
||||||
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
|
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
|
||||||
import com.genersoft.iot.vmp.gb28181.event.record.RecordEndEvent;
|
|
||||||
import com.genersoft.iot.vmp.gb28181.event.device.RequestTimeoutEvent;
|
|
||||||
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
|
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
|
||||||
import com.genersoft.iot.vmp.gb28181.event.subscribe.mobilePosition.MobilePositionEvent;
|
import com.genersoft.iot.vmp.gb28181.event.subscribe.mobilePosition.MobilePositionEvent;
|
||||||
import com.genersoft.iot.vmp.media.bean.MediaServer;
|
import com.genersoft.iot.vmp.media.bean.MediaServer;
|
||||||
|
|
|
@ -78,60 +78,6 @@ public class SIPCommander implements ISIPCommander {
|
||||||
@Autowired
|
@Autowired
|
||||||
private MessageSubscribe messageSubscribe;
|
private MessageSubscribe messageSubscribe;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云台方向放控制,使用配置文件中的默认镜头移动速度
|
|
||||||
*
|
|
||||||
* @param device 控制设备
|
|
||||||
* @param channelId 预览通道
|
|
||||||
* @param leftRight 镜头左移右移 0:停止 1:左移 2:右移
|
|
||||||
* @param upDown 镜头上移下移 0:停止 1:上移 2:下移
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void ptzdirectCmd(Device device, String channelId, int leftRight, int upDown) throws InvalidArgumentException, ParseException, SipException {
|
|
||||||
ptzCmd(device, channelId, leftRight, upDown, 0, sipConfig.getPtzSpeed(), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云台方向放控制
|
|
||||||
*
|
|
||||||
* @param device 控制设备
|
|
||||||
* @param channelId 预览通道
|
|
||||||
* @param leftRight 镜头左移右移 0:停止 1:左移 2:右移
|
|
||||||
* @param upDown 镜头上移下移 0:停止 1:上移 2:下移
|
|
||||||
* @param moveSpeed 镜头移动速度
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void ptzdirectCmd(Device device, String channelId, int leftRight, int upDown, int moveSpeed) throws InvalidArgumentException, ParseException, SipException {
|
|
||||||
ptzCmd(device, channelId, leftRight, upDown, 0, moveSpeed, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云台缩放控制,使用配置文件中的默认镜头缩放速度
|
|
||||||
*
|
|
||||||
* @param device 控制设备
|
|
||||||
* @param channelId 预览通道
|
|
||||||
* @param inOut 镜头放大缩小 0:停止 1:缩小 2:放大
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void ptzZoomCmd(Device device, String channelId, int inOut) throws InvalidArgumentException, ParseException, SipException {
|
|
||||||
ptzCmd(device, channelId, 0, 0, inOut, 0, sipConfig.getPtzSpeed());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 云台缩放控制
|
|
||||||
*
|
|
||||||
* @param device 控制设备
|
|
||||||
* @param channelId 预览通道
|
|
||||||
* @param inOut 镜头放大缩小 0:停止 1:缩小 2:放大
|
|
||||||
* @param zoomSpeed 镜头缩放速度
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void ptzZoomCmd(Device device, String channelId, int inOut, int zoomSpeed) throws InvalidArgumentException, ParseException, SipException {
|
|
||||||
ptzCmd(device, channelId, 0, 0, inOut, 0, zoomSpeed);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 云台指令码计算
|
* 云台指令码计算
|
||||||
*
|
*
|
||||||
|
|
|
@ -80,7 +80,7 @@ public class MediaInfo {
|
||||||
Boolean online = jsonObject.getBoolean("online");
|
Boolean online = jsonObject.getBoolean("online");
|
||||||
Integer originType = jsonObject.getInteger("originType");
|
Integer originType = jsonObject.getInteger("originType");
|
||||||
String originUrl = jsonObject.getString("originUrl");
|
String originUrl = jsonObject.getString("originUrl");
|
||||||
String originTypeStr = jsonObject.getString("originUrl");
|
String originTypeStr = jsonObject.getString("originTypeStr");
|
||||||
Long aliveSecond = jsonObject.getLong("aliveSecond");
|
Long aliveSecond = jsonObject.getLong("aliveSecond");
|
||||||
String params = jsonObject.getString("params");
|
String params = jsonObject.getString("params");
|
||||||
Long bytesSpeed = jsonObject.getLong("bytesSpeed");
|
Long bytesSpeed = jsonObject.getLong("bytesSpeed");
|
||||||
|
|
|
@ -807,6 +807,7 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServer, String app, String stream, MediaInfo mediaInfo, String addr, String callId, boolean isPlay) {
|
public StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServer, String app, String stream, MediaInfo mediaInfo, String addr, String callId, boolean isPlay) {
|
||||||
|
System.out.println(callId);
|
||||||
StreamInfo streamInfoResult = new StreamInfo();
|
StreamInfo streamInfoResult = new StreamInfo();
|
||||||
streamInfoResult.setStream(stream);
|
streamInfoResult.setStream(stream);
|
||||||
streamInfoResult.setApp(app);
|
streamInfoResult.setApp(app);
|
||||||
|
@ -822,7 +823,22 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
streamInfoResult.setMediaServer(mediaServer);
|
streamInfoResult.setMediaServer(mediaServer);
|
||||||
String callIdParam = ObjectUtils.isEmpty(callId)?"":"?callId=" + callId;
|
StringBuilder callIdParamBuilder = new StringBuilder();;
|
||||||
|
if (!ObjectUtils.isEmpty(callId) || (mediaInfo != null && !ObjectUtils.isEmpty(mediaInfo.getOriginTypeStr()))) {
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
if (!ObjectUtils.isEmpty(callId)) {
|
||||||
|
stringBuilder.append("callId=").append(callId);
|
||||||
|
}
|
||||||
|
if (mediaInfo != null && !ObjectUtils.isEmpty(mediaInfo.getOriginTypeStr())) {
|
||||||
|
if (!ObjectUtils.isEmpty(callId)) {
|
||||||
|
stringBuilder.append("&");
|
||||||
|
}
|
||||||
|
stringBuilder.append("originTypeStr=").append(mediaInfo.getOriginTypeStr());
|
||||||
|
}
|
||||||
|
callIdParamBuilder.append("?").append(stringBuilder);
|
||||||
|
}
|
||||||
|
String callIdParam = callIdParamBuilder.toString();
|
||||||
|
|
||||||
streamInfoResult.setRtmp(addr, mediaServer.getRtmpPort(),mediaServer.getRtmpSSlPort(), app, stream, callIdParam);
|
streamInfoResult.setRtmp(addr, mediaServer.getRtmpPort(),mediaServer.getRtmpSSlPort(), app, stream, callIdParam);
|
||||||
streamInfoResult.setRtsp(addr, mediaServer.getRtspPort(),mediaServer.getRtspSSLPort(), app, stream, callIdParam);
|
streamInfoResult.setRtsp(addr, mediaServer.getRtspPort(),mediaServer.getRtspSSLPort(), app, stream, callIdParam);
|
||||||
|
|
||||||
|
|
|
@ -197,6 +197,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServer, String app, String stream, MediaInfo mediaInfo, String callId, boolean isPlay) {
|
public StreamInfo getStreamInfoByAppAndStream(MediaServer mediaServer, String app, String stream, MediaInfo mediaInfo, String callId, boolean isPlay) {
|
||||||
|
System.out.println(callId);
|
||||||
StreamInfo streamInfoResult = new StreamInfo();
|
StreamInfo streamInfoResult = new StreamInfo();
|
||||||
streamInfoResult.setServerId(userSetting.getServerId());
|
streamInfoResult.setServerId(userSetting.getServerId());
|
||||||
streamInfoResult.setStream(stream);
|
streamInfoResult.setStream(stream);
|
||||||
|
@ -204,7 +205,23 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||||
String addr = mediaServer.getStreamIp();
|
String addr = mediaServer.getStreamIp();
|
||||||
streamInfoResult.setIp(addr);
|
streamInfoResult.setIp(addr);
|
||||||
streamInfoResult.setMediaServer(mediaServer);
|
streamInfoResult.setMediaServer(mediaServer);
|
||||||
String callIdParam = ObjectUtils.isEmpty(callId)?"":"?callId=" + callId;
|
|
||||||
|
StringBuilder callIdParamBuilder = new StringBuilder();;
|
||||||
|
if (!ObjectUtils.isEmpty(callId) || (mediaInfo != null && !ObjectUtils.isEmpty(mediaInfo.getOriginTypeStr()))) {
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
if (!ObjectUtils.isEmpty(callId)) {
|
||||||
|
stringBuilder.append("callId=").append(callId);
|
||||||
|
}
|
||||||
|
if (mediaInfo != null && !ObjectUtils.isEmpty(mediaInfo.getOriginTypeStr())) {
|
||||||
|
if (!ObjectUtils.isEmpty(callId)) {
|
||||||
|
stringBuilder.append("&");
|
||||||
|
}
|
||||||
|
stringBuilder.append("originTypeStr=").append(mediaInfo.getOriginTypeStr());
|
||||||
|
}
|
||||||
|
callIdParamBuilder.append("?").append(stringBuilder);
|
||||||
|
}
|
||||||
|
String callIdParam = callIdParamBuilder.toString();
|
||||||
|
|
||||||
streamInfoResult.setRtmp(addr, mediaServer.getRtmpPort(),mediaServer.getRtmpSSlPort(), app, stream, callIdParam);
|
streamInfoResult.setRtmp(addr, mediaServer.getRtmpPort(),mediaServer.getRtmpSSlPort(), app, stream, callIdParam);
|
||||||
streamInfoResult.setRtsp(addr, mediaServer.getRtspPort(),mediaServer.getRtspSSLPort(), app, stream, callIdParam);
|
streamInfoResult.setRtsp(addr, mediaServer.getRtspPort(),mediaServer.getRtspSSLPort(), app, stream, callIdParam);
|
||||||
String flvFile = String.format("%s/%s.live.flv%s", app, stream, callIdParam);
|
String flvFile = String.format("%s/%s.live.flv%s", app, stream, callIdParam);
|
||||||
|
@ -218,6 +235,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||||
streamInfoResult.setMediaInfo(mediaInfo);
|
streamInfoResult.setMediaInfo(mediaInfo);
|
||||||
if (mediaInfo != null) {
|
if (mediaInfo != null) {
|
||||||
streamInfoResult.setOriginType(mediaInfo.getOriginType());
|
streamInfoResult.setOriginType(mediaInfo.getOriginType());
|
||||||
|
streamInfoResult.setOriginTypeStr(mediaInfo.getOriginTypeStr());
|
||||||
}
|
}
|
||||||
return streamInfoResult;
|
return streamInfoResult;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.genersoft.iot.vmp.media.zlm.dto.hook;
|
package com.genersoft.iot.vmp.media.zlm.dto.hook;
|
||||||
|
|
||||||
import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
|
import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -8,6 +10,8 @@ import java.util.Map;
|
||||||
/**
|
/**
|
||||||
* @author lin
|
* @author lin
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
public class OnStreamChangedHookParam extends HookParam{
|
public class OnStreamChangedHookParam extends HookParam{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -109,19 +113,12 @@ public class OnStreamChangedHookParam extends HookParam{
|
||||||
*/
|
*/
|
||||||
private Map<String, String> paramMap;
|
private Map<String, String> paramMap;
|
||||||
|
|
||||||
public boolean isRegist() {
|
|
||||||
return regist;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRegist(boolean regist) {
|
|
||||||
this.regist = regist;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是docker部署, docker部署不会自动更新zlm使用的端口,需要自己手动修改
|
* 是否是docker部署, docker部署不会自动更新zlm使用的端口,需要自己手动修改
|
||||||
*/
|
*/
|
||||||
private boolean docker;
|
private boolean docker;
|
||||||
|
|
||||||
|
@Data
|
||||||
public static class MediaTrack {
|
public static class MediaTrack {
|
||||||
/**
|
/**
|
||||||
* 音频通道数
|
* 音频通道数
|
||||||
|
@ -197,128 +194,9 @@ public class OnStreamChangedHookParam extends HookParam{
|
||||||
* 丢帧率
|
* 丢帧率
|
||||||
*/
|
*/
|
||||||
private float loss;
|
private float loss;
|
||||||
|
|
||||||
public int getChannels() {
|
|
||||||
return channels;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChannels(int channels) {
|
|
||||||
this.channels = channels;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCodec_id() {
|
|
||||||
return codec_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodec_id(int codec_id) {
|
|
||||||
this.codec_id = codec_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodec_id_name() {
|
|
||||||
return codec_id_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodec_id_name(String codec_id_name) {
|
|
||||||
this.codec_id_name = codec_id_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCodec_type() {
|
|
||||||
return codec_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodec_type(int codec_type) {
|
|
||||||
this.codec_type = codec_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isReady() {
|
|
||||||
return ready;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReady(boolean ready) {
|
|
||||||
this.ready = ready;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getSample_bit() {
|
|
||||||
return sample_bit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSample_bit(int sample_bit) {
|
|
||||||
this.sample_bit = sample_bit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getSample_rate() {
|
|
||||||
return sample_rate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSample_rate(int sample_rate) {
|
|
||||||
this.sample_rate = sample_rate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getFps() {
|
|
||||||
return fps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFps(float fps) {
|
|
||||||
this.fps = fps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getHeight() {
|
|
||||||
return height;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHeight(int height) {
|
|
||||||
this.height = height;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getWidth() {
|
|
||||||
return width;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWidth(int width) {
|
|
||||||
this.width = width;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getFrames() {
|
|
||||||
return frames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFrames(int frames) {
|
|
||||||
this.frames = frames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getKey_frames() {
|
|
||||||
return key_frames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKey_frames(int key_frames) {
|
|
||||||
this.key_frames = key_frames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getGop_size() {
|
|
||||||
return gop_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGop_size(int gop_size) {
|
|
||||||
this.gop_size = gop_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getGop_interval_ms() {
|
|
||||||
return gop_interval_ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGop_interval_ms(int gop_interval_ms) {
|
|
||||||
this.gop_interval_ms = gop_interval_ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getLoss() {
|
|
||||||
return loss;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLoss(float loss) {
|
|
||||||
this.loss = loss;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
public static class OriginSock{
|
public static class OriginSock{
|
||||||
private String identifier;
|
private String identifier;
|
||||||
private String local_ip;
|
private String local_ip;
|
||||||
|
@ -326,204 +204,10 @@ public class OnStreamChangedHookParam extends HookParam{
|
||||||
private String peer_ip;
|
private String peer_ip;
|
||||||
private int peer_port;
|
private int peer_port;
|
||||||
|
|
||||||
public String getIdentifier() {
|
|
||||||
return identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIdentifier(String identifier) {
|
|
||||||
this.identifier = identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLocal_ip() {
|
|
||||||
return local_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLocal_ip(String local_ip) {
|
|
||||||
this.local_ip = local_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getLocal_port() {
|
|
||||||
return local_port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLocal_port(int local_port) {
|
|
||||||
this.local_port = local_port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPeer_ip() {
|
|
||||||
return peer_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPeer_ip(String peer_ip) {
|
|
||||||
this.peer_ip = peer_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPeer_port() {
|
|
||||||
return peer_port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPeer_port(int peer_port) {
|
|
||||||
this.peer_port = peer_port;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private StreamContent streamInfo;
|
private StreamContent streamInfo;
|
||||||
|
|
||||||
public String getApp() {
|
|
||||||
return app;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApp(String app) {
|
|
||||||
this.app = app;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStream() {
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStream(String stream) {
|
|
||||||
this.stream = stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getTotalReaderCount() {
|
|
||||||
return totalReaderCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTotalReaderCount(int totalReaderCount) {
|
|
||||||
this.totalReaderCount = totalReaderCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int getOriginType() {
|
|
||||||
return originType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginType(int originType) {
|
|
||||||
this.originType = originType;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getOriginTypeStr() {
|
|
||||||
return originTypeStr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginTypeStr(String originTypeStr) {
|
|
||||||
this.originTypeStr = originTypeStr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOriginUrl() {
|
|
||||||
return originUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginUrl(String originUrl) {
|
|
||||||
this.originUrl = originUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getCreateStamp() {
|
|
||||||
return createStamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateStamp(Long createStamp) {
|
|
||||||
this.createStamp = createStamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getAliveSecond() {
|
|
||||||
return aliveSecond;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAliveSecond(Long aliveSecond) {
|
|
||||||
this.aliveSecond = aliveSecond;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MediaTrack> getTracks() {
|
|
||||||
return tracks;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTracks(List<MediaTrack> tracks) {
|
|
||||||
this.tracks = tracks;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSchema() {
|
|
||||||
return schema;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSchema(String schema) {
|
|
||||||
this.schema = schema;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginSock(OriginSock originSock) {
|
|
||||||
this.originSock = originSock;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getBytesSpeed() {
|
|
||||||
return bytesSpeed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBytesSpeed(Long bytesSpeed) {
|
|
||||||
this.bytesSpeed = bytesSpeed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVhost() {
|
|
||||||
return vhost;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVhost(String vhost) {
|
|
||||||
this.vhost = vhost;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OriginSock getOriginSock() {
|
|
||||||
return originSock;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isDocker() {
|
|
||||||
return docker;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDocker(boolean docker) {
|
|
||||||
this.docker = docker;
|
|
||||||
}
|
|
||||||
|
|
||||||
public StreamContent getStreamInfo() {
|
|
||||||
return streamInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStreamInfo(StreamContent streamInfo) {
|
|
||||||
this.streamInfo = streamInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSeverId() {
|
|
||||||
return severId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSeverId(String severId) {
|
|
||||||
this.severId = severId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCallId() {
|
|
||||||
return callId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCallId(String callId) {
|
|
||||||
this.callId = callId;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Map<String, String> getParamMap() {
|
|
||||||
return paramMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParamMap(Map<String, String> paramMap) {
|
|
||||||
this.paramMap = paramMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParams() {
|
|
||||||
return params;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParams(String params) {
|
|
||||||
this.params = params;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "OnStreamChangedHookParam{" +
|
return "OnStreamChangedHookParam{" +
|
||||||
|
|
Loading…
Reference in New Issue