RTMP流媒体播放过程(转)

本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程。服务器

注意:RTMP中的逻辑结构网络

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

 

1 简要介绍翻译

播放一个RTMP协议的流媒体须要通过如下几个步骤:握手,创建链接,创建流,播放。RTMP链接都是以握手做为开始的。创建链接阶段用于创建客户端与服务器之间的“网络链接”;创建流阶段用于创建客户端与服务器之间的“网络流”;播放阶段用于传输视音频数据。视频

2 握手(HandShake)blog

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

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

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

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

 

握手

 

 

3创建网络链接(NetConnection)

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

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

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

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

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

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

创建链接

4创建网络流(NetStream)

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

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

创建流

 

5 播放(Play)

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

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

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

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

e)        在此以后服务器发送客户端要播放的音频和视频数据。

RTMP协议规范(中文翻译):http://download.csdn.net/detail/leixiaohua1020/6563059

转:http://blog.csdn.net/leixiaohua1020/article/details/11704355

相关文章
相关标签/搜索