首页 > 其他分享 >国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案

国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案

时间:2023-08-15 17:02:14浏览次数:52  
标签:视频 stream EasyGBS 平台 国标 latestGetFrameTime 播放 设备

安防视频监控EasyGBS平台基于国标GB28181协议,支持多路设备接入,并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等多种格式的视频流。平台可为大数据等综合性监管平台提供极强的视频能力,已经在大量的项目中落地应用,如明厨亮灶、平安乡村、雪亮工程等。

国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案_国标GB28181协议

有用户反馈,在安防视频监控EasyGBS运行时,接入的设备刚开始可以正常播放,开启云端录像后,也没有停止和重播的操作,但是出现了视频流断流的现象。

技术人员立即对该反馈进行了抓包分析,排查得出是程序向设备发送了停止推流的请求。

国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案_国标GB28181协议_02

但是此时设备的状态确实处于正在播放的状态,如图:

国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案_视频监控_03

于是排查代码发现,当设备网络较差时,设备会断流,超过指定的时间30s(EasyGBS平台默认值),就会主动清除流媒体服务,但是redis中的流数据还在,而当设备在录像时,自动保活会从redis中取保活流数据,所以就会出现设备状态显示正在播放,但是流已经消失的情况。

解决方法如下:

在设备进行播放保活时,对流信息进行判断,添加一个最后的处理流时间,如果超过指定时间就自动重新拉流。

国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案_视频监控_04

if stream != nil {
		latestGetFrameTime := stream.LatestGetFrameTime
		if latestGetFrameTime != "" {
			lastStreamTime, err := time.ParseInLocation("2006-01-02 15:04:05", latestGetFrameTime, time.Local)
			if err != nil {
				log.Printf("stop stream [%s] lastStreamTime %s err [%s]", streamid, latestGetFrameTime, err.Error())
				StreamStop(streamid)
				stream = nil
			}
			d := time.Since(lastStreamTime)
			if int(d.Seconds()) >= 60 {
				log.Printf("stop stream [%s] lastStreamTime %s", streamid, latestGetFrameTime)
				StreamStop(streamid)
				stream = nil
			}
		}
	}

按照上述方法修改过后,录像及播放都恢复正常了。

国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案_视频监控_05

国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案_保活_06

国标视频云服务安防视频监控EasyGBS可提供流媒体接入、处理、转发等服务,支持内网、公网的监控设备通过国标GB/T28181协议进行视频监控直播。平台可实现的视频能力有:安防视频监控、实时直播、视频录像、语音对讲、云存储、检索及回放、告警、级联等。

国标GB28181视频平台EasyGBS国标平台设备播放断流现象的问题解决方案_国标平台_07

标签:视频,stream,EasyGBS,平台,国标,latestGetFrameTime,播放,设备
From: https://blog.51cto.com/u_16225017/7090746

相关文章

  • ThingsKit物联网平台可视化工具之组态导入导出
    概述组态导入导出的功能主要是允许用户将模板从一个可视化组态中移动到另一个ThingsKit平台的可视化组态中。主要表现在一下几个方面:数据共享:通过导入导出功能,用户可以将可视化组态中的数据分享给其他用户导入数据以在可视化组态中进行展示。数据迁移:当用户需要将可视化组态......
  • ThingsKit物联网平台可视化工具之组态多页面管理
    概述组态多页面管理是指对组态上的各个页面进行管理和组织的操作。通常情况下,一个组态可以包含多个页面,每个页面可以展示不同的数据、信息或结果。从长图可知,整个页面是由4个子页面构成:数据监控为一页;参数设置为一页;手动操作为一页;I/O监控为一页。多页面管理的实现多页面管......
  • 工业物联网解决方案:粮机设备远程运维管理平台
    随着数字化转型技术的发展与进步,远程运维管理已经成为各行各业不可或缺的一部分。特别是在粮食加工行业,粮机设备的运维管理对于企业的生产效率和成本控制具有至关重要的作用。为了更好地实现粮机设备的远程运维管理,数之能提供专业高效的工业物联网解决方案。 粮机设备远程运维管理......
  • ThingsKit物联网平台设备CoAP接入
    入门介绍CoAP是一种计算机协议,应用于物联网,基于REST架构。它是由IETF的CoRE工作组提出的,专门用于解决物联网中设备资源受限的问题。在物联网中,很多设备具有较少的内存空间和有限的计算能力,因此传统的HTTP协议并不适用于所有设备。为了解决这个问题,CoAP被设计成一种轻量级的协议,能......
  • ThingsKit物联网平台设备UDP接入
    入门介绍UDP基础知识UDP是UserDatagramProtocol(用户数据协议)的简称,是一种无连接的协议,该协议工作在OSI模型中的第四层(传输层),处于IP协议的上一层。传输层的功能就是建立“端口到端口”的通信,UDP提供面向事务的简单的不可靠信息传送服务。接下来来看UDP与TCP的区别:UDPTCP......
  • ThingsKit物联网平台可视化之制作大屏
    大屏是一种有效的可视化工具,可将收集到的数据以直观、生动的方式展示出来。通过创建交互式的数据大屏,决策者可以快速浏览关键指标,实时了解设备或业务运营状况。这有助于决策者更快地制定决策,并更好地理解数据驱动的洞察。新增大屏进入可视化大屏界面,点击“新增大屏”,在弹出的新......
  • ThingsKit物联网平台配置场景联动
    概述您可以通过本文了解定时触发类场景的配置方式。本示例基于ThingsKit平台提供的设备模拟数据场景,通过触发场景联动规则,自动打开空调。具体场景是将空调设备接入ThingsKit平台,创建场景联动:当温度高于28℃会触发开启空调的执行动作,物联网平台会下发打开空调的命令,空调收到命令......
  • ThingsKit物联网平台可视化之制作组态
    WEB组态的介绍什么是组态?组态是工业控制领域,利用组态软件将相关的工业控制数据进行离线处理,以达到工业控制的目的和要求,这个工作过程叫做组态!组态(Configure)的概念来自于20世纪70年代中期出现的第一代集散控制系统(DistributedControlSystem),可以理解为“配置”“设定”“......
  • ThingsKit物联网平台命令下发
    数据构建订阅平台Topic和下发数据格式如下v1/devices/me/rpc/request/+{"method":"methodThingskit","params":{"DO1":1}}:::info......
  • ThingsKit物联网平台数据上报
    为产品增加物模型通过MQTTX上报数据通过MQTTX模拟设备上报数据,消息Topic和上报格式如下:v1/gateway/telemetry构建上报数据{"9y02I19767e037iK":[{"temp":34.5,"wet":121.3}]}数据内容说明:Key说明......