修复CSEQ重置错误 #1449

pull/1489/head
648540858 2024-05-28 10:23:17 +08:00
parent de390d3982
commit c69b64c756
3 changed files with 18 additions and 29 deletions

View File

@ -18,6 +18,7 @@ import com.genersoft.iot.vmp.service.*;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.utils.MediaServerUtils;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import com.genersoft.iot.vmp.vmanager.bean.OtherPsSendInfo;
import com.genersoft.iot.vmp.vmanager.bean.OtherRtpSendInfo;
@ -26,12 +27,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.sip.InvalidArgumentException;
import javax.sip.SipException;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -101,7 +100,7 @@ public class MediaServiceImpl implements IMediaService {
}
if (userSetting.getPushAuthority()) {
// 对于推流进行鉴权
Map<String, String> paramMap = urlParamToMap(params);
Map<String, String> paramMap = MediaServerUtils.urlParamToMap(params);
// 推流鉴权
if (params == null) {
logger.info("推流鉴权失败: 缺少必要参数sign=md5(user表的pushKey)");
@ -210,24 +209,6 @@ public class MediaServiceImpl implements IMediaService {
return result;
}
private Map<String, String> urlParamToMap(String params) {
HashMap<String, String> map = new HashMap<>();
if (ObjectUtils.isEmpty(params)) {
return map;
}
String[] paramsArray = params.split("&");
if (paramsArray.length == 0) {
return map;
}
for (String param : paramsArray) {
String[] paramArray = param.split("=");
if (paramArray.length == 2) {
map.put(paramArray[0], paramArray[1]);
}
}
return map;
}
@Override
public boolean closeStreamOnNoneReader(String mediaServerId, String app, String stream, String schema) {
boolean result = false;

View File

@ -82,12 +82,8 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
@Override
public void resetAllCSEQ() {
String scanKey = VideoManagerConstants.SIP_CSEQ_PREFIX + userSetting.getServerId() + "_*";
List<Object> keys = RedisUtil.scan(redisTemplate, scanKey);
for (Object o : keys) {
String key = (String) o;
redisTemplate.opsForValue().set(key, 1);
}
String key = VideoManagerConstants.SIP_CSEQ_PREFIX + userSetting.getServerId();
redisTemplate.opsForValue().set(key, 1);
}
@Override

View File

@ -97,9 +97,9 @@ enable_ts=1
fmp4_demand=0
hls_demand=0
hls_save_path=./www
modify_stamp=0
modify_stamp=2
mp4_as_player=0
mp4_max_second=3600
mp4_max_second=300
mp4_save_path=./www
rtmp_demand=0
rtsp_demand=0
@ -163,4 +163,16 @@ pktBufSize=8192
port=9000
timeoutSec=5
[transcode]
acodec=pcma
decoder_h264=h264_qsv,h264_videotoolbox,h264_bm,libopenh264
decoder_h265=hevc_qsv,hevc_videotoolbox,hevc_bm
enable_ffmpeg_log=0
encoder_h264=h264_qsv,h264_videotoolbox,h264_bm,libx264,libopenh264
encoder_h265=hevc_qsv,hevc_videotoolbox,hevc_bm,libx265
filter=
suffix=transport
vcodec=H264
; } ---