05-流媒体-RTMP协议介绍

news2024/11/25 2:15:23

05-流媒体-RTMP协议介绍

1.RTMP概述

RTMP是一种常见的流媒体协议,是基于TCP/IP协议模型的应用层协议,工作在TCP协议上,端口是1935。通过TCP三次握手保证传输的可靠。

2.握手

2.1 握手过程

RTMP基于传输层TCP连接后,通过RTMP握手协议来完成RTMP连接。客户端和服务端各发送相同的三个块,客户端发送C0、C1、C2,服务端发送S0、S1、S2。
只需要满足如下条件即可:

握手以客户端发送 C0 和 C1 块开始
客户端必须等待接收到 S1 才能发送 C2
客户端必须等待接收到 S2 才能发送任何其他数据
服务器必须等待接收到 C0 才能发送S0和S1,也可能是接收到 C1 后发送
服务器必须等待接收到 C1 才能发送S2
服务器必须等待接收到 C2 才能发送其他数据

抓取一个RTMP的包,如下图所示,我们一点点分析
在这里插入图片描述
实际实现中为了在保证握手的身份验证功能的基础上尽量减少通信的次数,一般的发送顺序如下:
客户端向服务端同时发送C0+C1
服务端确认版本号后,向客户端同时发送S0+S1+S2
客户端接收到S2后发送C2到服务端

Client                   Server
   |                       |
   |        C0, C1         |
   |---------------------->|
   |                       |
   |       S0,S1,S2        |
   |<----------------------|
   |                       |
   |          C2           |
   |---------------------->|

2.2 握手协议格式解析

(1)C0/S0格式:C0和S0都是1个字节,表示版本号,C0包中表示客户端请求的RTMP版本,在S0中表示服务器选择的RTMP版本,规范最新定义为3,如果服务器和客户端版本号不一致,则可能会终止交互或者降级。

 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|  version      |
+-+-+-+-+-+-+-+-+

(2)C1/S1格式
长度为1536字节

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|                     time(4 bytes)                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     zero(4 bytes)                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     random bytes                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     random bytes                              |
|                     (cont)                                    |
|                     ......                                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

time:时间戳,用于时间同步
zero:写0
random:1528个字节,用户区分出其响应C2/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1170890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

干货分享:基于 LSTM 的广告库存预估算法

近年来&#xff0c;随着互联网的发展&#xff0c;在线广告营销成为一种非常重要的商业模式。出于广告流量商业化售卖和日常业务投放精细化运营的目的&#xff0c;需要对广告流量进行更精准的预估&#xff0c;从而更精细的进行广告库存管理。 因此&#xff0c;携程广告纵横平台…

全新干货!一招教你迅速提升流量主收入!包你轻松月入过万

也不怕大家笑话&#xff0c;才哥以前收入每天才一块钱&#xff0c;连瓶水都买不了&#xff0c; 可是自从我开始接触老年粉私域后&#xff0c;一个搬运公众号的流量主收益两个月后就可以用“浴火重生”来形容了。 一个搬运公众号一天的流量主收益比我原创两年的个人公众号收益还…

【Linux】多路IO复用技术②——poll详解如何使用poll模型在本地主机实现简易的一对多服务器(附图解与代码实现)

在阅读本篇博客之前&#xff0c;建议大家先去看一下我之前写的这篇博客&#xff0c;否则你很可能会一头雾水 【Linux】多路IO复用技术①——select详解&如何使用select模型在本地主机实现简易的一对多服务器&#xff08;附图解与代码实现&#xff09;http://t.csdnimg.cn/…

数据库实验:SQL的数据更新

目录 实验目的实验内容实验要求实验步骤实验过程总结 再次书接上文&#xff0c;sql基础的增删改查 实验目的 (1) 掌握DBMS的数据查询功能 (2) 掌握SQL语言的数据更新功能 实验内容 (1) update 语句用于对表进行更新 (2) delete 语句用于对表进行删除 (3) insert 语句用于对表…

Postman接口测试工具,提高SpringBoot开发效率

文章目录 &#x1f33a;工具—postman⭐作用&#x1f3f3;️‍&#x1f308;安装&#x1f388;创建工作空间 &#x1f384;简单参数⭐原始方式&#x1f388;我们建立springboot项目&#xff0c;输入下面的代码&#x1f388;运行 ⭐SpringBoot方式 &#x1f384;实体参数&#x…

最新版星火官方搬运工具6.0,高级搬运,100%过原创,短视频上热门搬运软件黑科技【搬运脚本+使用技术教程】

软件介绍&#xff1a; 高级搬运&#xff0c;条条过原创 短视频暴力热门搬运黑科技 自研摄像头内录突破性技术6.0 无需任何繁琐准备工作安装即用 无需复杂售后培训看教程即可学会 直装直用自研技术更好卖 无需root 无需框架 更方便 无需xposed 无需vcam更安全 适配99%以…

【SoC基础】Arduino从零入门

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

C#知识总结 基础篇(下)

目录 5类和继承 5.1类继承 5.2访问继承的成员 5.3屏蔽基类的成员 5.4访问基类的成员 5.5虚方法与覆写方法 5.6构造函数的执行顺序 5.7成员访问修饰符 5.8抽象类 5.9密封类与静态类 6.表达式与运算符 6.1运算符和重载 7.结构 7.1结构体的感念。 7.2结构构造函数与…

为Web3生态创新赋能,ETH Hong Kong 2023圆满落幕

摘要&#xff1a;10月22日至24日&#xff0c;由以太坊原生zkEVM扩容方案Scroll与Web3技术风投公司Newman Group共同举办的首届以太坊香港盛会“ETH Hong Kong 2023”在数码港成功举行&#xff0c;、ABCDE和852Web3作为筹委会参与其中。本次活动三天内吸引了2500名与会者参与&am…

生活是自己的,尽情打扮、尽情可爱

充满创意色彩的撞色插肩卫衣 穿上它就是妥妥的时尚小达人 蓝橙紫三种色彩相互交织 胸前时尚字母元素罗纹收口 满满的设计感&#xff01;真的墙裂推荐哦&#xff01;

好用的文献引用方法(借助谷歌\火狐浏览器-需要vpn)

1 火狐浏览器-扩展-管理扩展-搜索“Google学术搜索按钮”-安装 2 vpn之后-在www.google.com谷歌官网-搜索论文题目- 点击扩展-点Google学术搜索按钮 3 直接得到结果-点击引用 4 得到引用bib

Selenium处理Cookie

01、cookie介绍 HTTP协议是无状态的协议。一旦数据交换完毕&#xff0c;客户端与服务器端的连接就会关闭&#xff0c;再次交换数据需要建立新的连接&#xff0c;这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后&#xff0c;第二次请求…

虚幻引擎:RPC:远端调用

1.如何区当前是服务器还是在客服端 2.如何修改一个actor的所有权 修改所有权必须 在服务器上进行修改,不允许在客户端进行修改

2024天津理工大学中环信息学院专升本机械设计自动化专业考试题型

天津理工大学中环信息学院2024年高职升本科机械设计制造及其自动化专业课各科考试题型 2024年天津理工大学中环信息学院高职升本科机械设计制造及其自动化专业课考试大纲已发布。机械设计制造及其自动化专业需考《机械设计》、《机械制图》。具体大纲已下发可进行查看。各科考试…

linux下安装Zabbix教程

笔记&#xff1a; 监控设备 对各种设备的统一管理 Esight 了解开源监控工具 eg Promerthos: Zabbix &#xff1a;集中式系统 大型企业 可视化,高大上、 查看日志 安装zibox软件 安装数据库 进入数据库 进入Zabbox 密码 password 账号Admin 密码zabbix 解决乱码问题 将…

数字城市运行监测主题指标设计思路探讨

随着信息技术的飞速发展&#xff0c;数字城市已成为我国城市发展的新趋势。城市运行监测作为数字城市建设的重要环节&#xff0c;通过实时采集、处理和分析城市各个方面的数据&#xff0c;为政府决策提供科学依据。在这一过程中&#xff0c;主题指标设计成为关键环节。本文结合…

【密评】商用密码应用安全性评估从业人员考核题库(二十-完结)

商用密码应用安全性评估从业人员考核题库&#xff08;二十-完结&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 4640 单项选择题 在测评过程中遇到的PEM编码格式&#xff0c…

基于STM32CubeMX和keil采用USART/UART实现非中断以及中断方式数据回环测试借助CH340以及XCOM

文章目录 前言1. 接口概述1.1 USART/UART接口1.2 串口通信参数1.3 波特率计算 2. 传输函数3. 回环测试3.1 上位机环境配置3.2 阻塞模式3.3 中断模式 4. STM32CubeMX配置4.1 时钟配置4.2 调试配置4.3 串口引脚配置4.4 工程配置 5. 测试效果6. 不借助上位机回环测试总结 前言 这…

HNU程序设计 练习五-函数(强化)

1.土地分割 【问题描述】 对于一块mn 的地块&#xff0c;需要将其划分为若干个相同正方形的方块&#xff0c;且每个方块的边长尽量地长。 【输入形式】 输入 m 和 n ( 1 ≤ m、 n ≤0.5109), 分别表示地块的长和宽。 【输出形式】 输出两个整数&#xff0c;表示划分以后的正方…

Docker的简单安装

安装环境 CentOS Linux release 8.1.1911 (Core)内核4.18.0-147.el8.x86_64Mini Installation 安装前的准备工作 切换国内源 由于centos源已经过期&#xff0c;所以切换为阿里云的yum源&#xff0c;第二个是docker的仓库 wget -O /etc/yum.repos.d/CentOS-Base.repo https:…