为什么使用GB28181而不是直接rtsp拉流

1、GB sip和rtsp

实际上,sip协议和rtsp协议大同小异,并没有什么本质上得不同,那为什么我们不使用rtsp 而转而使用GB28181国标得sip协议?原因是:使用得方向不同,我们使用rtsp拉流是作为客户端,这时摄像机是服务端,而使用国标sip,摄像机是客户端,我们得服务器是服务端,方向不同,所以更好得方式是使用接收推流,当然,世事无绝对,由于某些场合得需求,是使用rtsp拉流比较合适得。

2、rtsp连接得问题

并不是rtsp 协议自身有问题,rtsp协议是非常成熟得,和sip一样,两者使用得相同得子协议为:
1 RTP协议
2 SDP协议
    rtp当然包括rtcp 等协议,rtsp和sip协议属于信令,而实际传输离不了RTP,终究是实时传输协议来进行传输层得工作。
    七层协议里,传输层有两种协议主导,1 tcp 2 udp,而rtp既可以使用tcp,也可以使用udp,两者工作得方式不同,看情况来进行选择。既然两者内部使用相同得协议,那又有多大得区别呢?说重点,这是rtsp连接得问题就在于:

  • 资源消耗较多
  • 再其他连接再需要启动一个服务
  • 无法在外网直接拉内网得资源

而接受推流得方式本身就是服务模式,没有拉流动作,主动接受流,所以优点体现在此。
为什么使用GB28181而不是直接rtsp拉流_第1张图片
上图使用sip进行接收数据流协议,接受推流得方式无论是单点和多点接收比较容易扩展,rtsp连接需要更多得资源,包含断线重连。

3、总结

所以情况如下:
     少量连接使用rtsp进行测试,在大量连接得情况下,rtsp客户端需要做得比较完善,一般来讲,几十个乃至几百个摄像头如果使用rtsp连接,代码是比较难控制得,很多程序员使用一路多个线程控制,系统资源会吃很多。在程序员编程良好得情况下,依然多出拉得资源。

     大量连接最好使用接收推流得方式,使用异步服务器来接收数据,再分流进行各种工作。

你可能感兴趣的:(音视频和c++,java,物联网,音视频,c++,GB28181,rtsp)