EasyCVR视频融合云服务支持多协议、多类型设备接入,在云端进行统一视频智能分析与视频大数据管理,完成全终端、全平台覆盖分发,实现"云、边、端"一体化协同。设备层通过RTSP/Onvif、GB/T28181、Ehome协议、SDK等将网络摄像头统一接入到EasyCVR,进行实时监控。
根据用户反馈,EasyCVR开启了多端口,出现了首次播放之后便再无法播放的情况。本文我们来分享一下排查与解决办法。
我们在排查中发现,首次播放之后,再次点击视频播放时,没有走到流列表的缓存中,导致返回空的播放地址。
添加如下代码,在多端口开启的Ehome播放中,添加设备通道id名称,然后在二次播放时,根据名称查询返回播放地址。
ehomedo.GetChannelRealplayDao().Update(obj)
//通道参数
channelInfo, err := ehomedo.GetChannelDao().Get(fmt.Sprintf("%d", obj.ChannelID), devID)
if err != nil {
return fmt.Errorf("%s-%d-%d not found", devID, channel, streamType)
}
stream := ehomestream.NewEHomeStream(channelInfo.Index)
//[v1.0.25]:主子码流
stream.StreamType = streamType
//[v1.0.25]音频
stream.Audio = channelInfo.Audio
stream.Name = fmt.Sprintf("%s_%d_%d", devID, channel, streamType)
if channelInfo.CDN != "" {
添加后测试,已经能够正常播放了。
EasyCVR作为TSINGSEE青犀视频开发的视频协议融合平台,目前也正在扩展智能分析等相关功能,如果大家还想了解更多或者进行实际的部署测试,欢迎直接下载。