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

你可能感兴趣的文章
OkHttp源码解析(构建者模式、责任链模式、主线流程)
查看>>
OkHttp透明压缩,收获性能10倍,外加故障一枚
查看>>
OKR为什么到今天才突然火了?
查看>>
ol3 Demo2 ----地图搜索功能
查看>>
OLAP、OLTP的介绍和比较
查看>>
OLAP在大数据时代的挑战
查看>>
Vue.js 学习总结(12)—— 微前端实践思考与总结
查看>>
oldboy.16课
查看>>
OLEDB IMEX行数限制的问题
查看>>
ollama 如何删除本地模型文件?
查看>>
ollama-python-Python快速部署Llama 3等大型语言模型最简单方法
查看>>
Ollama怎么启动.gguf 大模型
查看>>
ollama本地部署DeepSeek(Window图文说明)
查看>>
ollama运行多模态模型如何进行api测试?
查看>>
OMG,此神器可一次定一周的外卖
查看>>
Omi 多端开发之 - omip 适配 h5 原理揭秘
查看>>
On Error GOTO的好处
查看>>
onclick事件的基本操作
查看>>
oncopy和onpaste
查看>>
onCreate中的savedInstanceState作用
查看>>