rtmp协议

音视频开发 专栏收录该内容
16 篇文章 0 订阅

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. 消息分块:

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值