网站建设程序招聘,网站ui设计例子,黑马程序员线上课程,销售管理软件排名文章目录 RTMP播放基本流程TCP握手过程RTMP握手过程connect连接createStream 创建流play 播放命令deleteStream删除流RTMP数据组成 RTMP(Real Time Messaging Protocol)是一个应用层协议#xff0c;主要用于在Flash player和服务器之间传输视频、音频、控制命令等内容。 该协议… 文章目录 RTMP播放基本流程TCP握手过程RTMP握手过程connect连接createStream 创建流play 播放命令deleteStream删除流RTMP数据组成 RTMP(Real Time Messaging Protocol)是一个应用层协议主要用于在Flash player和服务器之间传输视频、音频、控制命令等内容。 该协议的突出优点是: 低延时。 RTMP基于TCP(tcp默认使用端口1935)
RTMP播放基本流程
TCP三次握手RTMP握手connect连接createStream创建流play 播放流deleteStream删除流
TCP握手过程
流顺序 c–客户端 s–服务端 c – s s–c c–s
RTMP握手过程
c–s s–c c–s 一般的发送顺序如下 1.客户端向服务端同时发送C0C1 2. 服务端确认版本号后向客户端同时发送S0S1S2 3. 客户端接收到S2后发送C2到服务端
C0: 客户端版本 C1: 服务器版本 当前版本为3 C1 和 S1数据包长度为1536字节C2 和 S2 数据包长度都是 1536 字节基本就是 S1 和 C1 的副本。
connect连接
c–s
不同的 Application Instance可根据功能等进行区分比如直播可以用live来表示点播回放可以用vod来表示 如 rtmp://192.168.152.21/lrun/s1 run: 为Application Instance s1: 为房间号
createStream 创建流
c–s s–c 服务器返回的stream ID为1为后续的视频或者音频ID createStream命令用于创建逻辑通道该通道用于传输视频、音频、metadata在服务器的响应报文中会返回 用于唯一的标示该Stream
play 播放命令
客户端发送play命令来播放指定流。开始传输音视频数据。 如果发送play命令后想要立即播放需要清空play队列中的其它流并将reset置为true
deleteStream删除流
客户端发送删除流指定Stream ID, 服务器不对次消息回应
RTMP数据组成
发送 接收 组成 Messgae消息主要分为三类: 协议控制消息、数据消息、命令消息等 协议控制消息: Type ID 1 2 3 5 6 数据消息: Message Type ID 8 9 18 8: Audio 音频数据 9: Video 视频数据 18: Metadata 包括音视频编码、视频宽高等信息。 命令消息:Message Type ID 17,20
Message StreamID是音视频流的唯一ID, 一路流如果既有音频包又有视频包那么这路流音频包的StreamID和他视频包的StreamID相同
默认的Chunk Size是128字节, 实际发送多为一个Message包含一个Chunk
RTMP消息优先级在RTMP中消息(Message)主要分为两大类控制消息和数据消息。分优先级优先级高的先行。优先级低的不能阻塞优先级高的。