常见的视频直播相关协议:
1、RTMP(Real
RTMP(real time messaging protocol)实时消息传输协议
RTMP 给予TCP协议 是一个协议族 包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种
RTMP 内部使用的格式为 FLV
基本原理: RTMP是基于TCP的三次握手之后的 它本身是基于TCP的可靠性连接
客户端与服务器端通过字段内容协商来完成可信度认证
client 客户端需要发三个包 C0 C1 C2
server 服务器端需要发送三个包 S0 S1 S2
握手方式:
客户端发送 C0 C1 到服务器端
服务器端发送 S0 S1 到客户端
客户端发送C2到服务器端 服务器端发送S2到客户端
2、RTSP(Real
Time Streaming Protocol,实时流传输协议
RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP提供了一个可扩展框架,数据源可以包括实时数据与已有的存储的数据。该协议目的在于控制多个数据发送连接,为选择发送通道如UDP、组播UDP与TCP提供途径,并为选择基于RTP上发送机制提供方法。
RTSP语法和运作跟HTTP/1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。代理服务器的缓存功能也同样适用于RTSP,并且因为RTSP具有重新导向功能,可根据实际负载情况来切换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。
3、RTCP(Real-time
Transport Control Protocol,实时传输控制协议
RTCP是RTP的配套协议,为RTP媒体流提供信道外的控制。RTCP和RTP一起协作将多媒体数据打包和发送,定期在多媒体流会话参与者之间传输控制数据。
RTCP的主要功能是为RTP所提供的服务质量(QoS)提供反馈,收集相关媒体连接的统计信息,例如传输字节数,传输分组数,丢失分组数,单向和双向网络延迟等等。网络应用程序可以利用RTCP所提供的信息来提高服务质量,比如限制流量或改用压缩比小的编解码器。
4、音视频同步:
以Audio为准 Video同步Audio
以Video为准 Audio同步Video
以外部时间为准AV同时同步
Command Msg
Command Msg 是RTMP里面的一个主要信息传递工具 常用在RTMP前期和后期处理
Command Msg 通过AMF金信传输的 主要分为两大块
net connect
net stream
他的交流方式是双向的 另外一端都必须返回一个_result或者_error
NetStream Msg
在直播流中 比较重要的只有play包
play包用来告诉Server正是播放音视频流 由于RTMP天然做多流分发的 如果遇到网络出现相应的波动 客户端可以根据的条件多次调用play命令