rtmp协议

rtmp协议simplertmpserver:https://github.com/winlinvip/simple-rtmp-serverRTMP协议:播放一个RTMP协议的流媒体需要经过以下几个步骤:握手,建立连接,建立流,播放。1.RTMP连接都是以握手作为开始的;2.建立连接阶段用于建立客户端与服务器之间的“网络连接”;3.建立流阶段用于建立客户端与服务器之间的“网络流”;4.播放阶段用于传输视音频数据。在一条TCP连接中,包含着几条MessageSt..

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最基本的数据单元,包括消息头和消息负载:

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):

rtmp协议

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

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

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

 

3. 消息分块:

rtmp协议

 

今天的文章rtmp协议分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/11441.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注