EasyGBS接入高码流摄像头现场内存使用量非常高的分析
TSINGSEE青犀视频开发的视频平台都具备Windows和Linux的运行版本,可以根据需求自由选择。当遇到项目现场有流量较大的情况,大多数用户都比较担心对CPU的占用过大。在EasyGBS的一个现场,客户采用了高码流的摄像头级联到 EasyGBS 中,在运行中发现内存占用非常高,50 路被占用大概 3.021G,而正常是不应该占用这么多内存的。
在该现场中,可以看到系统整体大概会占用50%左右的内存(其中easydss为EasyGBS使用的流媒体分发软件)。
在其他现场并未发现该问题,因此询问该客户对应的码率及摄像头分辨率大小,客户采用的是1980X1080分辨率,理论情况下不会出现占用那么多的内存。后面确认码率为平均6M左右,因此判断是码率过大引起的。
因此从以下几个方面分析可能导致内存过大的原因:
1.rtmp gop 缓存导致
2.flv gop 缓存导致
3.支持 httpts 流播放导致
将对应的 rtmp gop 取消,关闭 httpts 模块,内存使用降低一部分。
将 flv gop 缓存取消后,内存再次降低。
因此在 EasyGBS 等产品中出现现场内存非常高的情况,可以采用将对应的缓存取消的方式来实现降低内存。因为缓存是将对应的数据缓存在内存中,码率很大或者分辨率很大,都会导致内存使用会很高。
取消缓存,会导致 flv 等流无法实现秒开的功能。因此可以针对不同的现场需求,设置是否可以启用缓存。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
2020-08-13 支持国标GB28181协议视频平台EasyGBS启动失败,如何解决权限问题?
2020-08-13 Linux系统运行EasyGBS国标GB28181视频平台报错,如何正确操作?
2020-08-13 【解决方案】智慧校园如何通过国标GB/T28181级联打造县-市-省三级架构视频综管平台?