RTMP学习(四)RTMP连接的建立与播放

RTMP连接的建立与播放




    RTMP连接的建立有三个步骤:

    1、握手。用于判别客户端、服务器是否存在。
    2、建立网络连接。注意不是tcp中的网络连接。
    3、建立流连接。建立流连接的目的是传输媒体数据。
    4、播放。



握手阶段


    握手阶段,双方分别发送大小固定的三个数据块.
    1、客户端发送数据块C0和C1。
    2、服务器接收到C0或C1中任意一个后,向客户端发送数据块S0和S1;如果服务器接收齐了C0和C1,那么服务器还可以继续向客户端发送数据块S2。
    3、客户端接收齐S0和S1后,向服务器发送数据块C2。
    4、如果服务器接收到了S2,客户端也接收到C2,那么握手完成!


客户端伪代码

// 客户端伪代码
S0 = null
S1 = null 
S2 = null
send C0 and C1
while(S0 == null || S1 == null)
{
	recv S0 and S1
}
send C2
recv S2

服务器端伪代码

// 服务器伪代码
C0 = null,C1 = null
while(C0 == null && C1 == null)
{
	recv C0 or C1
}
send S0,S1
while(C0 == null && C1 == null)
{
	recv C0 or C1
}
send S2
recv C2



建立网络连接阶段


    具体操作如下:
    1、客户端发送命令“connect”给服务器
    2、服务器接收到“connect”命令之后,发送消息“确认窗口大小(Window Acknowledgement Size)”给客户端,同时连接到“connect”命令中提到的应用程序
    3、服务器发送消息“设置带宽”给客户端
    4、客户端接收到消息“设置带宽”之后,发送消息“确认窗口大小”给服务器
    5、服务器发送消息“流开始”给客户端
    6、服务器发送消息“结果”给客户端,通知客户端连接的状态



建立流阶段


    具体操作如下:
    1、客户端发送命令“创建流”给服务器
    2、服务器接收到命令之后,发送“结果”给客户端




播放阶段


    具体操作如下:
    1、客户端发送命令“播放”给服务器
    2、服务器接收到命令之后,发送消息“设置块大小”给客户端
    3、服务器发送“stream begin”给客户端,告诉客户端 流的id
    4、播放命令成功的话,服务器发送“响应状态”给客户端,告诉客户端播放成功
    5、服务器发送音视频数据给客户端


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值