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

你可能感兴趣的文章
Objective-C实现获取CPU温度(附完整源码)
查看>>
ok6410内存初始化
查看>>
OpenCV 中的图像转换
查看>>
opencv9-膨胀和腐蚀
查看>>
OpenCV与AI深度学习 | 使用Python和OpenCV实现火焰检测(附源码)
查看>>
OpenCV与AI深度学习 | 基于PyTorch实现Faster RCNN目标检测
查看>>
OpenMCU(一):STM32F407 FreeRTOS移植
查看>>
OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
查看>>
OpenPPL PPQ量化(5):执行引擎 源码剖析
查看>>
Openresty框架入门详解
查看>>
openshift搭建Istio企业级实战
查看>>
Openstack企业级云计算实战第二、三期培训即将开始
查看>>
OpenStack安装部署实战
查看>>
OpenStack的基本概念与架构详解
查看>>
openstack虚拟机迁移live-migration中libvirt配置
查看>>
ORACEL学习--理解over()函数
查看>>
Oracle dbms_job.submit参数错误导致问题(ora-12011 无法执行1作业)
查看>>
Oracle GoldenGate Director安装和配置(无图)
查看>>
oracle script
查看>>
Oracle SOA Suit Adapter
查看>>