EasyCVR平台支持海量视频汇聚与管理、处理与分发、智能分析等视频能力,在接入协议上,不仅支持国标GB28181协议、RTSP/Onvif、RTMP等标准协议,还支持HIKSDK、大华SDK、海康Ehome等厂家私有协议与SDK。平台基于云边端一体化架构,将复杂多变的底层资源统一管理起来,并能合理调度资源、共享信息、数据交互,让系统变得更高效、稳定,实现各模块更好地协作。
EasyCVR平台支持通过GB/T28181、Ehome协议从海康、大华、宇视等摄像头、网络硬盘录像机NVR等设备中,按设备、通道、日期获取对应录像文件进行录像的检索与回放,无需安装各个安防厂商的视频播放插件。
有用户反馈,EasyCVR接入的Ehome协议的设备,出现了无法观看设备录像的情况,请求我们排查协助。今天和大家分享一下排查及解决过程。
在排查过程中发现,前端播放设备录像时,将请求发送到后端,但是后端没有转发给设备,因此导致设备录像无法观看。
添加如下代码,可将Ehome协议接入的设备查询出来的设备录像,在播放时传入对应的文件名称给设备,根据回调出来的流数据,推送给对应的内核地址,最后将回看的播放地址返回给前端。
代码语言:javascript复制f := func() (string, int, error) {
ret, err := dev.PlaybackStart(channel, smshost, playbackPort, name, offset)
if err == nil {
//更新播放信息
obj := &ehomedo.EhomeChannelPlayback{
ID: 0,
ChannelID: fmt.Sprintf("%d", channel),
DeviceID: devID,
FileName: name,
Offset: offset,
PlaybackHandle: -1,
SessionID: ret,
CreatedAt: utils.DateTime{},
UpdatedAt: utils.DateTime{},
}
ehomedo.GetChannelPlaybackDao().Update(obj)
//通道参数
channelInfo, err := ehomedo.GetChannelDao().Get(obj.ChannelID, devID)
修改后,再次尝试播放,设备录像已经显示正常。
EasyCVR优秀的视频能力表现在其丰富的视频功能、低延时传输、全终端兼容、支持多种网络环境等多方面,平台可实现的视频功能包括视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联等,可应用在智慧工厂、智慧工地、智慧安防、智慧校园、智慧水利等场景中。感兴趣的用户可以前往演示平台进行体验或部署测试。