Simple GB28181 System

I. Deployment  / Architecture Block Diagram

1. single system

Simple GB28181 System_第1张图片

2. cluster system

Simple GB28181 System_第2张图片

 

 

II. Resources Used

1. sip server

https://freeswitch.com/

2. sip user agent

http://www.mirrorservice.org/pub/gnu/osip/

http://mirror.ossplanet.net/nongnu/exosip/

3. ps remux h264/h265/aac/g711

http://ffmpeg.org/

4. rtp mediastream

http://research.edm.uhasselt.be/jori/page/CS/Jrtplib.html

 

III. GB28181 SIP Signaling Channel

1. Install Freeswitch

https://www.cnblogs.com/dong1/p/10412847.html

 

2. Build libexosip2-5.1.0.tar.gz + libosip2-5.1.0.tar.gz + jrtplib3.11

https://www.cnblogs.com/dong1/p/10258344.html

 

IV. GB28181 RTP Media Channel

1. FreeSWITCH has 3 media handling mode

https://www.cnblogs.com/dong1/p/10693993.html

 

2. rtp mediastream send/recv

https://www.cnblogs.com/dong1/p/10492229.html

 

3. ps(h264/h265/aac/g711...) mediastream mux/remux

ffmpeg-4.1/doc/examples/remuxing.c

ffmpeg-4.1/doc/examples/transcoding.c

https://www.cnblogs.com/dong1/p/9575291.html

 

4. 另外也有人整理了个ps封装库,经验证是靠谱的

https://github.com/shenshuyu/es2ps

提供个测试demo,填EsFrame , 回调函数出ps

void PsMuxerCb(char* psData, unsigned long dataLen, unsigned int lastPackMark){

}

int main(int argc, char **argv) { EsFrame *frame = (EsFrame *)malloc(sizeof(EsFrame)); MuxerHandle m = create_ps_muxer(PsMuxerCb, NULL); input_es_frame(m, frame); release_ps_muxer(m); free(frame); return 0; }

 

5. 轻便的gb28181协议中的rtp+ps格式视频流的封装和解析

这个模块是用go语言开发的,后续服务器程序应该会全面转向go(少折腾)

https://github.com/max-min/streams

 

V. GB28181 Syetem Cluster

FreeSwitch Proxy + RTPProxy Media server

https://www.cnblogs.com/dong1/p/10529462.html

国标28181系统的宗旨就是统一管理内网设备。

国标28181系统服务器的级联是为了更好的管理分散的内网设备。

关于服务器级联,后一级的服务器可以接管前一级服务器下的设备(一级一级往后上报设备目录树),终端控制台可以访问任何一级服务器下的任何设备。

 

VI.  总结

所有的模块都是用的开源代码,而且都整理了demo贴在上面了,就差把整个系统整合起来了。

后面就懒得弄了,公司已经做了一套,暂时够用,上面这套方案是为大规模系统上线作的准备。

也有可能公安部拿出来炒了一把又觉得这套国标是个鸡肋又不用了也说不定,以前也不是没有过,没有厂商遵守的标准也就没什么意义。

目前只有深圳的某个大佬一个人用起来了,也折腾了几个月才完全弄好,他要是愿意拿出来共享,我再传上来。

 

虽然都是开源代码,但是整合整个系统还是需要点基础,至少要熟悉sip通信并且能定制ffmpeg和freeswitch.

 

你可能感兴趣的:(Simple GB28181 System)