rtmp协议

simple rtmp server:

https://github.com/winlinvip/simple-rtmp-server

 

RTMP协议:

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

1. RTMP连接都是以握手作为开始的;

2. 建立连接阶段用于建立客户端与服务器之间的网络连接

3. 建立流阶段用于建立客户端与服务器之间的网络流

4. 播放阶段用于传输视音频数据。

 

在一条TCP 连接中,包含着几条Message Stream,绝大部分情况下是Control Msg Stream Media Msg Stream

而这些Msg Stream 由一段一段的Chunk Stream 组成,每个Chunk Stream 都带有一个Message Stream ID 以标识这个Chunk Stream 是属于哪一个Msg Stream

设想一段用rtmp播放的视频,应该包含两条message stream,一条command,一条media;而media stream中又包含了两条chunk stream,一条video,一条audio

 

RTMP消息:

1. 消息是RTMP最基本的数据单元,包括消息头和消息负载:

message type分为:

user control message4);

command message(20 for AMF0, 17 for AMF3)

data message(18 for AMF015 for AMF3);

shared object message(19 for AMF0, 16 for AMF3)

audio message8

video message9

aggregate message22

 

2. 消息负载一般被分为固定大小的chunk(默认128bytes):

chunk basic header有三种,分别为1byte2bytes,和3bytes;根据chunk stream id的不同选择使用。

chunk message header有四种,分别为11bytes7bytes3bytes0bytes,头里包含有stream id

extended timstamp,当chunk message header里面的timestamp超过三字节范围时,补充使用。

 

3. 消息分块:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值