GB28181 服务器开发中遇到问题整理

car-eye GB28181平台中 web和视频服务器开发已经开始进入到发布版本阶段。在平台开过程中遇到过很多问题,下面整理下分享给各位开发者,同时也作为备份。

1. 平台框架和通信。

一般来说我们做一个平台的用户界面,通常用java,C#这些工具,而视频服务通常采用C++或go这类语言。所以基本要一个通信来实现数据共享和业务串联。通常的通信不外乎是采用底层的TCP通信,上层的http通信等。在JB28181项目中我们采用了mq消息队列作为通信方式。之所以采用这个中间件是因为MQ在各种操作系统,语言都有自己成熟的版本。同时他比开发基于TCP协议的通信协议要简单,又比如http协议这类协议要实时性好。

2. 流媒体服务器和SIP服务器模型

为了加快开发速度,我们采用了第三方的rtmp服务器作为拉流服务器,在JB28181服务器中同时开发支持ws-flv拉流方式。

成熟的nginx-RTMP服务器在其基础上进行扩展实现了多种的视频流格式的拉取。如rtmp,http-flv,ws-flv,hls等。满足不同客户端的播放需要。这部分和JT1078视频服务器基本是保持一致的

3. SIP服务器的诸多疑问

一. RTP数据流的分发,采用多个端口接收设备流还是一个端口

设备一般采用UDP协议来发送数据到视频服务器。采用一个端口的好处是服务器的管理更加方便。采用多个端口的时候

处理起来更加方便,我们目前采用端口段的方式,动态分配端口给需要上传视频服务器

二. 音频流处理

GB28181的设备音频流通常使用G711.A 或者G726的这些格式。这在移动端,web网页播放会有问题。所以采用ffmpeg或者海思库将音频格式转化再发送到RTMP服务器

三 针对公网的设备通信

一般来说28181-2016版本是支持TCP协议的。如果是2011版本只支持UDP协议,建议将数据通信转发下。尤其是服务器级联的时候,数据应该从本地服务器转发到上级视频服务器。

car-eye JB28181和JT1078 视频服务器在不断升级和优化当中。有关开源代码和平台体验请参考获取

https://github.com/Car-eye-team

 

 

 

 

 

 

 

 

你可能感兴趣的:(car-eye,云平台,流媒体)