rtmp学习(二)

 

用于Flash播放器和服务器之间传输音频、视频、数据

RTMP协议本身既可以传输多媒体数据,也可以控制多媒体播放

RTMP是应用层协议

 

 消息(基本数据单元)

Message Type ID(1-7用于协议控制,RTMP协议自身管理使用,控制协议的stream id必须是0,chunk stream id必须是2,8传输音频数据,9传输视频数据,15-20用于发送AMF编码,负责用户与服务器之间的交互,比如播放暂停等) 

消息块

Chunk Basic Header用于标识本块

Chunk Message Header用于标识本块负载所属消息

Extended TimeStamp当时间戳溢出时出现

Chunk Data默认大小:音频64bytes,视频128byte

           1-3字节

1、发送端把数据封装成消息2、把消息分割成消息块3、把消息块通过TCP协议发出去4、接收端把消息块重组成消息5、对消息进行解封装会付出媒体数据

Chunk Basic

fmt(2bit)

  fmt == 0,Chunk Message Header为11个字节

  fmt == 1,Chunk Message Header为7个字节

  fmt == 2,Chunk Message Header为3个字节

  fmt == 3,Chunk Message Header为0个字节

cs id(6bit)

  cs id >= 2,Chunk Basic Header为一个字节

  cs id == 0,Chunk Basic Heaser为两个字节,chunk stream id = 64 + 第二个字节值

  cs id == 1,Chunk Basic Heaser为三个字节,chunk stream id = 64 +  第二个字节值 + 第三个字节值 << 8

 

Chunk Message Header

timestamp or timestamp delta(3bytes)

  timestamp delta表示上个chunk和当前chunk的时间戳差。如果大于16777215使用扩展时间字段

message length(3bytes)

  message body的长度,而不是chunk data的长度

message type id(1bytes)

  1:set chunk size                    设置chunk的最大size

  2:abort ,essage                     携带的内容是chunk stream id,通知听复制接收这个chunk stream的消息内容

  3:acknowledgement

  5:set peer bandwidth                  设置对端输出带宽

  8:Audio Data

  9:Video Data

  17,20:connect、createStream、publish、play、pause   命令消息

        publish--->发布一个流到server,需要onStatus响应

  16,19:

  15,18:

message stream id(4bytes)

  字节序是小端序,该值可以是任意值,不同的消息流服用成相同的chunk stream

 

转载于:https://www.cnblogs.com/dandancheng/p/8000021.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值