RTMP是基于TCP协议的多媒体传输协议,因此RTMP服务器本质上是一个TCP服务器,它的逻辑结构基本上和普通的TCP服务器是类似的。我们视频直播点播流媒体服务器能够通过RTMP协议进行推流分发。

java rtmp 推流 延迟很大 web rtmp推流_视频直播点播

 

正常来说,轻量级RTMP多媒体视频服务器的设计需要考虑以下几点:

第一,视频的清晰度。

在保证提供清晰视频监控的前提下,需要考虑网络传输的带宽,编码质量的好坏,不同的设置会导致不同的传输的效果。视频压缩所选取的编码库以及网络状况的好坏会对视频的清晰度造成显著的影响。

第二,视频传输的连续性。

采集视频模块需要连续稳定的保持采集,压缩编码模块的稳定压缩,传输模块的稳定传输,是保持视频监控图像的连续性的关键所在。

第三,视频传输的实时性。

获取实时性的视频流,在硬件能力达到实时编码的前提下,需要控制数据实时的发送、到达、被处理,还需设置获取帧率与延迟的关系,保证传输编码打包好的FLV数据的速率与原始采集端采集YUV数据的速率一致。

java rtmp 推流 延迟很大 web rtmp推流_视频流媒体服务器_02

 

网络服务器模块的实现支持Flash播放协议,并实现输出H264直播流的RTMP服务器功能。首先,双方运行之后,客户端会向服务器发送握手的请求,服务器收到握手请求后,会依据RTMP协议的要求,完成检测版本号等操作,最后完成握手。

 

java rtmp 推流 延迟很大 web rtmp推流_视频流媒体服务器_03

在完成握手之后,客户端会继续向服务器发送连接的请求,服务器的服务层收到此消息后,会对其进行解析,此消息包含与服务器建立一个RTMP连接的请求,服务器按照消息中参数的数据,与客户端建立这个连接。在完成RTMP连接之后,客户端会继续向服务器发送创建流的请求,流可以传输音视频数据。服务器完成流创建之后,会发送消息给客户端。最后,客户端向服务器发送播放的命令。