博客
关于我
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/

你可能感兴趣的文章
PHP之APC缓存详细介绍(转)
查看>>
php之memcache,memcached
查看>>
php之引用
查看>>
PHP之数组和函数的基本教程
查看>>
UVa 10465 - Homer Simpson
查看>>
php九九乘法表加粗,PHP九九乘法表
查看>>
PHP二维数组将重复键值合并重组成三维数组
查看>>
PHP二维数组转换为一维数组
查看>>
PHP二维数组重组
查看>>
PHP交换两个变量值
查看>>
php代码执行完整流程介绍
查看>>
PHP代码格式化工具phpcf常见问题解决方案
查看>>
PHP使用3DES算法加密解密字符串
查看>>
PHP使用curl multi要注意的问题:每次使用curl multi同时并发多少请求合适
查看>>
php使用memcached扩展的一个BUG
查看>>
PHP内核介绍及扩展开发指南—基础知识
查看>>
PHP写日志fwrite和file_put_contents的区别与性能
查看>>
PHP函数
查看>>
PHP函数__autoload失效原因(与smarty有关)
查看>>
PHP函数操作数字和汉字互转(100以内)
查看>>