最后一句话,开发rtsp之前要计算好带宽,连接数,码流大小这些数据。
海康威视视频流和复合流区别有以下几个方面,具体如下:
1服务器不同
海康威视视频流采用通用的RTSP服务器,如nginx、SRS或 Darwin Stream Server(原生版本),更有利于私有部署。
海康威视复合流采用通用的RTSP服务器,如nginx、SRS和 Darwin Stream Server(原生版本),更有利于私有部署。
2服务器不同
海康威视视频流支持H264的扩展SEI消息发送机制。
海康威视复合流支持H265的扩展SEI消息发送机制设定,换句话说,之前推送端支持的功能,都可以同步支持。
3获取数据方式不同
海康威视视频流通过采集端,获取原始的yuv/rgb数据,h264/h265编码打包成需要的格式,如按照rtmp或rtsp打包并发送数据;
海康威视复合流通过拉流端,通过rtsp或者rtmp协议,获取到数据,并进行音视频数据parser,然后,解码,解码后的原始数据。
1 RTSP连接的建立过程RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。
首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554 端口进行监听,然后把连接处理函数句柄(RTSPServer::incomingConnectionHandler)和socket句柄传给任务调度器(taskScheduler)。
任务调度器把socket句柄放入后面select调用中用到的socket句柄集(fReadSet)中,同时将socket句柄和 incomingConnectionHandler句柄关联起来。 接着,主程序开始进入任务调度器的主循环(doEventLoop),在主循环中调用系统函数select阻塞,等待网络连接。
当RTSP客户端输入( rtsp://19216801/1mpg)连接服务器时,select返回对应的scoket,进而根据前面保存的对应关系,可找到对应处理函数句柄,这里就是前面提到的incomingConnectionHandler了。在 incomingConnectionHandler中创建了RTSPClientSession,开始对这个客户端的会话进行处理。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)