美文网首页程序员
2019-10-11RTMP整理

2019-10-11RTMP整理

作者: neuichimaru | 来源:发表于2019-10-11 16:16 被阅读0次

之前一直用的rtp,最近在用rtmp,相关学习整理如下:

RTMP协议规定,播放一个流媒体有两个前提步骤:
第一步,建立一个网络连接(NetConnection);
第二步,建立一个网络流(NetStream)。其中,网络连接代表服务器端应用程序和客户端之间基础的连通关系。网络流代表了发送多媒体数据的通道。服务器和客户端之间只能建立一个网络连接,但是基于该连接可以创建很多网络流。

播放一个RTMP协议的流媒体需要经过以下几个步骤:
握手,建立连接,建立流,播放。

RTMP连接都是以握手作为开始的。
建立连接阶段用于建立客户端与服务器之间的“网络连接”;
建立流阶段用于建立客户端与服务器之间的“网络流”;
播放阶段用于传输视音频数据。

  1. 握手(HandShake)

一个RTMP连接以握手开始,双方分别发送大小固定的三个数据块

a) 握手开始于客户端发送C0、C1块。服务器收到C0或C1后发送S0和S1。

b) 当客户端收齐S0和S1后,开始发送C2。当服务器收齐C0和C1后,开始发送S2。

c) 当客户端和服务器分别收到S2和C2后,握手完成。

  1. 建立网络连接(NetConnection)

a) 客户端发送命令消息中的“连接”(connect)到服务器,请求与一个服务应用实例建立连接。

b) 服务器接收到连接命令消息后,发送确认窗口大小(Window Acknowledgement Size)协议消息到客户端,同时连接到连接命令中提到的应用程序。

c) 服务器发送设置带宽()协议消息到客户端。

d) 客户端处理设置带宽协议消息后,发送确认窗口大小(Window Acknowledgement Size)协议消息到服务器端。

e) 服务器发送用户控制消息中的“流开始”(Stream Begin)消息到客户端。

f) 服务器发送命令消息中的“结果”(_result),通知客户端连接的状态。

  1. 建立网络流(NetStream)

a) 客户端发送命令消息中的“创建流”(createStream)命令到服务器端。

b) 服务器端接收到“创建流”命令后,发送命令消息中的“结果”(_result),通知客户端流的状态。

  1. 播放(Play)

a) 客户端发送命令消息中的“播放”(play)命令到服务器。

b) 接收到播放命令后,服务器发送设置块大小(ChunkSize)协议消息。

c) 服务器发送用户控制消息中的“streambegin”,告知客户端流ID。

d) 播放命令成功的话,服务器发送命令消息中的“响应状态” NetStream.Play.Start & NetStream.Play.reset,告知客户端“播放”命令执行成功。

e) 在此之后服务器发送客户端要播放的音频和视频数据。
也可通过抓包 看具体交互流程:


image.png

相关文章

  • 2019-10-11RTMP整理

    之前一直用的rtp,最近在用rtmp,相关学习整理如下: RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,...

  • 整理+整理+整理

    最近开启了整理狂魔的模式,各种资料整理,分类梳理,删删减减,颇有强迫症的赶脚,这是为了拖延正事才做的徒劳行为么? ...

  • 整理~整理~整理~

    整理过后,天晴了 乱了一段时间,把心放逐,让一切随风,但是离意却越差越远,面对诸多的不满意,通过发泄,自我调整,就...

  • 整理整理

    近两天状态不是很好,昨天原本计划好要写作业的,结果喝酒最终没有完成打卡,今天为此还是很焦虑,回家后为了消除情绪上的...

  • 整理整理

    在说点什么之前,先来讲讲一个叫康奈尔笔记法的小笔记法。 所谓的「康奈尔笔记法」,源自美国康奈尔笔记法故而得名,它是...

  • 整理整理

    今天突发奇想洗了洗地毯,结果清洗完地毯以后发现地板很脏,于是又拖了拖地,结果发现屋子又有点乱,然后就开始整理屋子,...

  • 整理整理

    最近已做好的事情: 完成了一篇论文,已投稿,发表应该问题已不大,前几天编辑说已过了二审,在等待三申,到现在没说让改...

  • 整理整理

    今天业余主要是把院长连线的与孩子人际关系的案例进行了一下整理和文字修改。 同时把前段时间整理的体验课的例子也整理完...

  • 整理整理

    家务真是越做越多。 不做的话就俩问题,脏和乱。做了就会冒出很多问题。 1、现在家里要面临被子没地方收的问题 解决方...

  • 整理整理github

    github:Reim nodejs写的简易留言板https://github.com/Reim/messageb...

网友评论

    本文标题:2019-10-11RTMP整理

    本文链接:https://www.haomeiwen.com/subject/gotxmctx.html