赞
踩
RTMP(Real-Time Messaging Protocol,实时消息传输协议)是一种用于音视频和数据在互联网进行实时传输的协议,最初由Macromedia(现Adobe)开发,用于与Adobe Flash Player进行通信。RTMP被广泛用于流媒体传输,特别是在直播和点播视频领域。以下是RTMP协议的详细介绍:
RTMP协议是基于TCP的协议,通过分段传输数据以实现低延迟的实时传输。其主要功能是支持多路复用和流控制,使音视频数据可以同步传输并在接收端及时播放。
RTMP协议将数据分为消息(Message)和消息流(Message Stream),并在较低层次上定义了Chunk(块)的概念。
RTMP协议的通信过程分为以下几个阶段:
握手过程 官方文档示例如下:
RTMP 真实握手过程:
官方文档仅供参考:
实际抓包分析:
官方文档,仅供参考:
通过抓包分析:
推流过程如下:
拉流过程如下:Buffer Size 播放越平滑,不易出现卡顿,但是延迟相对会较高
总体框图如下:
RTMP消息格式主要由以下几个部分组成:
RTMP协议使用Chunk来分割和传输数据。Chunk是RTMP数据传输的基本单位,一个消息可以被分割成多个Chunk传输。每个Chunk包含以下几个部分:
Basic Header由1到3个字节组成:
第1字节
:格式(Format)和Chunk Stream ID(CSID)。
如果CSID为0,则需要使用1个额外字节表示CSID(范围为64-319)。如果CSID为1,则需要使用2个额外字节表示CSID(范围为64-65599)。
Message Header的长度取决于Basic Header中的Format字段,可能为0、3、7或11字节:
Extended Timestamp(4字节):仅当时间戳或时间戳差值超过24位时使用。
RTMP消息包含消息头和消息体,消息头定义了消息的元数据,消息体包含实际的数据。
消息头包含以下字段:
消息体是实际的数据内容,其长度由消息头中的Message Length字段指定。
RTMP定义了多种消息类型,每种类型都有特定的用途:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。