|
|
@@ -3,6 +3,7 @@ package com.zd.alg.iot.vmp.gb28181.transmit.cmd.impl;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.zd.alg.iot.vmp.conf.SipConfig;
|
|
|
import com.zd.alg.iot.vmp.conf.UserSetup;
|
|
|
+import com.zd.alg.iot.vmp.gb28181.bean.MediaStream;
|
|
|
import com.zd.alg.iot.vmp.service.IMediaServerService;
|
|
|
import com.zd.alg.iot.vmp.service.bean.SSRCInfo;
|
|
|
import com.zd.alg.iot.vmp.storager.IRedisCatchStorage;
|
|
|
@@ -337,12 +338,11 @@ public class SIPCommander implements ISIPCommander {
|
|
|
* @param errorEvent sip错误订阅
|
|
|
*/
|
|
|
@Override
|
|
|
- public void playStreamCmd(MediaServerItem mediaServerItem, SSRCInfo ssrcInfo, Device device, String channelId, ZLMHttpHookSubscribe.Event event, SipSubscribe.Event errorEvent) {
|
|
|
+ public void playStreamCmd(MediaServerItem mediaServerItem, SSRCInfo ssrcInfo, Device device, String channelId, ZLMHttpHookSubscribe.Event event, SipSubscribe.Event errorEvent, Integer dpi) {
|
|
|
String streamId = ssrcInfo.getStreamId();
|
|
|
try {
|
|
|
if (device == null) return;
|
|
|
String streamMode = device.getStreamMode().toUpperCase();
|
|
|
- //logger.info("{} 分配的ZLM为: {} [{}:{}]", streamId, mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
|
|
|
// 添加订阅
|
|
|
JSONObject subscribeKey = new JSONObject();
|
|
|
subscribeKey.put("app", "rtp");
|
|
|
@@ -408,9 +408,12 @@ public class SIPCommander implements ISIPCommander {
|
|
|
content.append("a=connection:new\r\n");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ //验证1:获取码流
|
|
|
+ //content.append("a="+MediaStream.getMediaStreamA(dpi)+"\r\n");
|
|
|
content.append("y="+ssrcInfo.getSsrc()+"\r\n");//ssrc
|
|
|
-
|
|
|
+ //验证2:设置编码格式、分辨率、帧数、码率类型、码率大小、编码格式、码率大小
|
|
|
+ content.append("f="+MediaStream.getMediaStreamF(dpi)+"\r\n");
|
|
|
+ logger.info("【RTSP实时视频流请求】 请求参数:\r\n"+content.toString());
|
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
|
@@ -441,7 +444,7 @@ public class SIPCommander implements ISIPCommander {
|
|
|
*/
|
|
|
@Override
|
|
|
public void playbackStreamCmd(MediaServerItem mediaServerItem, SSRCInfo ssrcInfo, Device device, String channelId, String startTime, String endTime, ZLMHttpHookSubscribe.Event event
|
|
|
- , SipSubscribe.Event errorEvent) {
|
|
|
+ , SipSubscribe.Event errorEvent, Integer dpi) {
|
|
|
try {
|
|
|
logger.info("{} 分配的ZLM为: {} [{}:{}]", ssrcInfo.getStreamId(), mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
|
|
|
// 添加订阅
|
|
|
@@ -514,6 +517,8 @@ public class SIPCommander implements ISIPCommander {
|
|
|
}
|
|
|
}
|
|
|
content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc
|
|
|
+ //设置编码格式、分辨率、帧数、码率类型、码率大小、编码格式、码率大小
|
|
|
+ content.append("f="+MediaStream.getMediaStreamF(dpi)+"\r\n");
|
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|
|
|
: udpSipProvider.getNewCallId();
|
|
|
@@ -540,7 +545,7 @@ public class SIPCommander implements ISIPCommander {
|
|
|
*/
|
|
|
@Override
|
|
|
public void downloadStreamCmd(MediaServerItem mediaServerItem, SSRCInfo ssrcInfo, Device device, String channelId, String startTime, String endTime, String downloadSpeed, ZLMHttpHookSubscribe.Event event
|
|
|
- , SipSubscribe.Event errorEvent) {
|
|
|
+ , SipSubscribe.Event errorEvent, Integer dpi) {
|
|
|
try {
|
|
|
logger.info("{} 分配的ZLM为: {} [{}:{}]", ssrcInfo.getStreamId(), mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
|
|
|
|
|
|
@@ -615,7 +620,8 @@ public class SIPCommander implements ISIPCommander {
|
|
|
content.append("a=downloadspeed:" + downloadSpeed + "\r\n");
|
|
|
|
|
|
content.append("y=" + ssrcInfo.getSsrc() + "\r\n");//ssrc
|
|
|
-
|
|
|
+ //设置编码格式、分辨率、帧数、码率类型、码率大小、编码格式、码率大小
|
|
|
+ content.append("f="+MediaStream.getMediaStreamF(dpi)+"\r\n");
|
|
|
String tm = Long.toString(System.currentTimeMillis());
|
|
|
|
|
|
CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
|