فهرست منبع

修复CSEQ重置错误 #1449

648540858 1 سال پیش
والد
کامیت
c69b64c756

+ 2 - 21
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java

@@ -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;

+ 2 - 6
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java

@@ -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

+ 14 - 2
打包/config/config.ini

@@ -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
+
 ; } ---