648540858
2024-05-28 c69b64c756770067c8c89d1f2f2fb80d4a88031f
修复CSEQ重置错误 #1449
3个文件已修改
47 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
打包/config/config.ini 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
@@ -18,6 +18,7 @@
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.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 @@
            }
            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)");
@@ -208,24 +207,6 @@
            }
        }
        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
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -82,12 +82,8 @@
    @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
´ò°ü/config/config.ini
@@ -97,9 +97,9 @@
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 @@
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
; } ---