我是靠谱客的博主 醉熏飞机,这篇文章主要介绍【RTMP协议分析与抓包实测】传输协议RTMP基本通讯RTMP消息格式,现在分享给大家,希望可以做个参考。

传输协议

RTMP基本通讯

RTMP基于TCP之上传输

TCP三次握手,相关文章链接,TCP三次握手流程

进行握手

c- --> s 发送c0+c1

c ---> s 发送c2

s ---> c 发送s0+s1+s2

建立RTMP连接

真实建立连接的场景

c- --> s RTMP发送connect建立连接

s ---> c 协商(滑动窗口)大小以及(带宽大小)

s- --> c 设置块大小

s ---> c result

创建RTMP流

C ---> S  释放以前的流>>创建流

S ---> C  返回Status信息

推RTMP流

metaData存放音视频基本信息(视频宽高,帧率等;音视频采样率,通道数等等)

作用:1.S端不做解释,原封不动给订阅者转发,订阅者收到后进行解码器初始化。2.S端想要操作流可以做解码设置。

播RTMP流

C ---> S paly 指定播放具体频道的音视频

C ---> S set Buffer Size 设置缓冲区大小,使播放更加平滑

S ---> C Stream Begin 流开始

S ---> C onStatus 响应消息

S ---> C 服务端发送数据

RTMP消息格式

Basic Header基本头信息

基本头信息是动态变化的,占用大小主要和fmt的后6位数值有关,后面保存CSID(Chunk Stream ID)。

占一个字节,fmt占用两位,后面6位是(2 - 63)

占二个字节,fmt占用两位,后面6位是(0)

占四个字节,fmt占用两位,后面6位是(1)

RTMP消息类型,用于Message Header中的TypeID

Message Header消息头信息(可有可无,与Basic Header设置有关)

由fmt控制有无:

(1).TimeStamp  3字节 时间戳

(2).MsgLength  3字节 数据长度

(3).TypeID        1字节 消息类型

(4).StreamID    4字节

fmt:两个比特位的四种组合

00 ---> 包含(1)(2)(3)(4)

01 ---> 包含(1)(2)(3)

10 ---> 包含(1)

11 ---> 不要Message Header

Extended Timestamp扩展时间戳(可有可无,与Basic Header设置有关)

与Message Header中的TimeStamp的值有关,如果值为0xFFFFFF那么就存在扩展时间戳。

最后

以上就是醉熏飞机最近收集整理的关于【RTMP协议分析与抓包实测】传输协议RTMP基本通讯RTMP消息格式的全部内容,更多相关【RTMP协议分析与抓包实测】传输协议RTMP基本通讯RTMP消息格式内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部