[网络基础知识]rtmp协议消息简介

本文介绍了RTMP协议的基本概念,包括消息的构成和消息块的拆分过程。RTMP协议中的消息由Message Header和Message Body组成,不同类型的消息有不同的功能。消息在传输时被拆分为固定大小的消息块,适合在网络中传输。接收端再将消息块重组恢复原始数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

RTMP协议是一个互联网TCP/IP体系结构中应用层的协议. RTMP协议中基本的数据单元称为消息(Message). 当RTMP协议在互联网中传输数据的时候, 消息(Message)会被拆分成更小的单元, 称为消息块(Chunk).

消息

消息是RTMP协议中基本的数据单元. 消息由Message HeaderMessage Body组成.消息的报文结构如图:

rtmp消息

说明:消息首部(Message Header)有四部分组成:

  1. 消息类型: Message Type ID,
  2. 消息长度: Payload Length,
  3. 时间戳的: Timestamp,
  4. 消息所属媒体流: Stream ID.

不同种类的消息包含不同的Message Type ID, 代表不同的功能. RTMP协议中一共规定了十多种消息类型, 分别发挥着不同的作用. 例如:

  1. Message Type ID在1-7的消息用于协议控制, 这些消息一般是RTMP协议自身管理要使用的消息, 用户一般情况下无需操作其中的数据.
  2. Message Type ID为8, 9的消息分别用于传输音频和视频数据.
  3. Message Type ID为15-20的消息用于发送AMF编码的命令, 负责用户与服务器之间的交互, 比如播放, 暂停等等.

消息分块

RTMP传输媒体数据的过程中, 发送端首先把媒体数据封装成消息, 然后把消息分割成消息块, 最后将分割后的消息块通过TCP协议发送出去. 接收端在通过TCP协议收到数据后, 首先把消息块重新组合成消息, 然后通过对消息进行解封装处理就可以恢复出媒体数据.

在消息被分割成几个消息块的过程中, 消息负载部分(Message Body) 被分割成大小固定的数据块(默认是128字节, 最后一个数据块可以小于该固定长度), 并在其首部加上消息块首部(Chunk Header), 就组成了相应的消息块.

消息分块过程如图下图所示, 一个大小为307字节的消息块 被分割成128字节的消息块(除了最后一个):

rtmp消息分块

消息块

在网络上传输数据时, 消息需要被拆分成较小的数据块, 才适合在相应的网络环境上传输.消息块的报文结构如图:

rtmp消息块

说明:

RTMP协议中规定, 消息在网络上传输时被拆分成消息块(Chunk). 消息块首部(Chunk Header)有三部分组成:

  1. 用于标识本块的Chunk Basic Header,
  2. 用于标识本块负载所属消息的Chunk Message Header
  3. 当时间戳溢出时才出现的Extended Timestamp.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值