海康SDK/大华SDK安防视频智能分析平台EasyCVR接入过多通道卡顿解决

本文主要是介绍海康SDK/大华SDK安防视频智能分析平台EasyCVR接入过多通道卡顿解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不管是网页直播还是手机直播,都不可避免会有卡顿的问题,作为视频平台的开发者,我们知道视频卡顿的原因有很多,包括时间戳问题以及网络环境问题。此外还有一种情况,就是在我们已经开发的视频平台EasyCVR中,接入过多通道设备,也会出现卡顿问题。

33.png

实际该卡顿问题和时间戳、网络等都没有必然联系,因此我们可以从sql语句检查该问题出现的原因。通过检查sql语句打印,我们发现无论接入多少设备通道,后端都会将所有的通道信息每个检查一遍,再返回给前端,这种逻辑直接导致了后端工作量的暴涨,因此带来了卡顿现象。

36.png

我们将代码重构,当前端查询设备时候,添加分页字段,start 和limit
秉着展示多少查询多少的原则进行修改,添加如下代码:

if params["start"] != "" && params["limit"] != "" {start, _ = strconv.Atoi(params["start"])limit, _ = strconv.Atoi(params["limit"])
}
ack := NewMsgAck()
ack.EasyDarwin.Header.MessageType = MSG_SC_SERVER_GET_CHANNELS_ACK
rows := make([]map[string]interface{}, 0)
db.SQLite.LogMode(true)
channelscount := cvrservice.GetDeviceService().GetChannels(params["device"], params["channel"], params["q"], 0, 0)
channels := cvrservice.GetDeviceService().GetChannels(params["device"], params["channel"], params["q"], uint(start), uint(limit))
tempdbDBChannel := make([]cvrdo.DBChannelInfo, 0)

再去请求查询通,此时生成的sql已经是携带分页参数过后的了。

34.png

同时检查接口响应速度也降低到200毫秒左右。

35.png

如果对EasyCVR有兴趣,欢迎联系我们获取测试账号进行测试,当然TSINGSEE青犀视频其他智能分析平台皆提供测试,更多详情可了解TSINGSEE青犀视频官方网站。

111.png

这篇关于海康SDK/大华SDK安防视频智能分析平台EasyCVR接入过多通道卡顿解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930713

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u