64路NVR网络模块设计

  • Post author:
  • Post category:其他


之前做的NVR 网络模块,记录一下。

网络设施越来越完善,支持千兆的路由器很常见。安防行业对视频的质量要求也越来越高,因此,要求音视频的码率也越来越大。

我们的项目要求支持64个通道,每路接入主子码流,按每路主码流 4Mb/s,子码流 1Mb/s的最大码率来设计。64路总码率=64*5Mbs=320Mbs。

接入64个通道的难点在于稳定性,包括CPU占用率,线程数,连接数,内存使用,掉线率等方面的稳定性。

每个通道需要两个连接,一个用于信令控制,一个用于媒体数据传输,类似于RTSP协议。64*2=128个连接。为了防止内存碎片,设计内存池作为网络模块的内存机制。网络模式采用epoll异步设计,异步的优势在于CPU占用率很低,要求使用的线程数很少,同时epoll没有连接数限制。

网络模块完成后,先通过模拟客户端,每个客户端发送5Mb/s数据,总共64个模拟客户端一起发送。经过一周压力测试,网络模块在掉线率,系统资源消耗等方面是非常稳定的。

模拟测试之后,再接入64路IPC,效果和模拟测试是一样的。



版权声明:本文为wind199原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。