zoukankan      html  css  js  c++  java
  • 国标GB28181协议接入视频智能分析平台EasyCVR的设备用ws_flv为什么会有无法播放的情况?

    去年年末的时候,TSINGSEE青犀视频开发了EasyWasmPlayer播放器,为了让大家尽快享受到EasyWasmPlayer播放器的优质播放性能,我们在TSINGSEE青犀视频开发的视频平台内都添加了ws_flv的播放项。

    EasyCVR视频协议融合平台开启ws_flv出现一个问题,就是非GB28181协议接上来的设备请求播放时会出现无法播放的情况。

    通过浏览器调用接口返回结果分析得知,非GB28181的设备以ws_flv播放的时候都会返回rtmp的地址,所以前端播放器无法播放。

    GB28181协议设备以ws_flv流播放,返回的播放地址如下:

    Ehome设备接入请求播放返回的播放地址如下:

    所以此处我们需要对非GB28181接入设备添加ws_flv的播放协议区分。

    添加如下代码:

    if rtmpHost == "" {
           rtmpPort := dss.GetRTMPPort()
           rtspPort := dss.GetRTSPPort()
           if hostname == "" {
                  hostname = "{host}"
           }
           ret = fmt.Sprintf("rtmp://%s:%d/hls/stream_%d_%d", hostname, rtmpPort, channelID, streamMode)
           retMode = "SwitchMode"
           if strings.EqualFold(proto, "FLV") {
                  ret = fmt.Sprintf("/flv/hls/stream_%d_%d.flv", channelID, streamMode)
           }
           if strings.EqualFold(proto, "WS_FLV") {
                  ret = fmt.Sprintf("/ws_flv/hls/stream_%d_%d.flv", channelID, streamMode)
           }
           if strings.EqualFold(proto, "HLS") || utils.Conf().Section("base_config").Key("flash_stream_type").MustBool(false) {
                  ret = fmt.Sprintf("/hls/stream_%d_%d/stream_%d_%d_live.m3u8", channelID, streamMode, channelID, streamMode)
                  retMode = "HlsModel"
           }
           if strings.EqualFold(proto, "RTSP") {
                  ret = fmt.Sprintf("rtsp://%s:%d/stream_%d_%d", hostname, rtspPort, channelID, streamMode)
                  retMode = "HlsModel"
           }
    

    再次测试非GB28181接入的设备,当ws_flv播放的时候返回的播放地址正常。

    如果还想了解更多关与H265播放器或者EasyCVR安防视频平台的内容,欢迎联系我们。

  • 相关阅读:
    团队项目冲刺七
    团队项目冲刺六
    团队项目冲刺5
    团队项目冲刺4
    团队项目测试计划
    团队项目冲刺第三天进度和遇到问题
    团队项目冲刺第二天进度和问题
    博客园用户体验
    团队项目冲刺第一天进度和问题
    团队项目风险
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14272920.html
Copyright © 2011-2022 走看看