博客
关于我
RTMP协议之RTMP规范简单分析01
阅读量:233 次
发布时间:2019-03-01

本文共 940 字,大约阅读时间需要 3 分钟。

RTMP协议之RTMP规范简单分析

RTMP协议是一个互联网TCP/IP四层体系结构中应用层的协议。它的基本数据单元称为消息(Message)。在RTMP协议中,消息会被拆分成更小的单元,称为消息块(Chunk),以适应网络传输环境。

消息是RTMP协议的基本数据单元。不同种类的消息包含不同的Message Type ID,代表不同的功能。RTMP协议中规定了十多种消息类型,分别发挥着不同的作用。例如,Message Type ID在1-7的消息用于协议控制,这些消息一般是RTMP协议自身管理要使用的消息,用户一般情况下无需操作其中的数据。Message Type ID为8,9的消息分别用于传输音频和视频数据。Message Type ID为15-20的消息用于发送AMF编码的命令,负责用户与服务器之间的交互,比如播放,暂停等等。

消息的首部(Message Header)包含四个部分:Message Type ID标识消息类型,Payload Length标识消息长度,Timestamp标识消息的时间戳,Stream ID标识消息所属媒体流的唯一标识符。

在网络上传输数据时,消息会被拆分成更小的数据块,称为消息块(Chunk)。RTMP协议规定消息块首部(Chunk Header)包含三个主要部分:Chunk Basic Header,由Chunk Stream ID(CSID)和Chunk Type组成,Chunk Message Header用于标识消息块负载所属消息,Extended Timestamp仅在时间戳溢出时出现。

消息分块过程是指将消息负载(Message Body)分割成大小固定的数据块(默认为128字节,最后一个数据块可以小于此固定长度),并在首部加上消息块首部(Chunk Header),形成消息块。因此,消息块的大小是消息块首部大小加上128字节,或消息块首部大小加上最后一个小于128字节的数据块大小。

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

转载地址:http://vcfv.baihongyu.com/

你可能感兴趣的文章
org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
查看>>
org.tinygroup.serviceprocessor-服务处理器
查看>>
org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
查看>>
org/hibernate/validator/internal/engine
查看>>
SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
查看>>
ORM sqlachemy学习
查看>>
Ormlite数据库
查看>>
orm总结
查看>>
os.path.join、dirname、splitext、split、makedirs、getcwd、listdir、sep等的用法
查看>>
os.system 在 Python 中不起作用
查看>>
OSCACHE介绍
查看>>
SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
查看>>
OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
查看>>
OSChina 周四乱弹 ——程序员为啥要买苹果手机啊?
查看>>
OSError: no library called “cairo-2“ was foundno library called “cairo“ was foundno library called
查看>>
Osgi环境配置
查看>>
OSG学习:几何体的操作(二)——交互事件、Delaunay三角网绘制
查看>>
OSG学习:几何对象的绘制(三)——几何元素的存储和几何体的绘制方法
查看>>
OSG学习:几何对象的绘制(二)——简易房屋
查看>>
OSG学习:几何对象的绘制(四)——几何体的更新回调:旋转的线
查看>>