流媒体服务器二:RTMP协议详解 以及 RTMP学习到什么程度算是合格?

一个问题?

在上一节我们使用SRS搭建了RTMP环境,那么在企业开发中,是否使用第三方的RTMP服务器(例如上一节的SRS)就可以了呢?或者说:作为一个音视频开发人员,就会配置就OK了呢?实际上不是的,一些稍微大的企业都是会自己开发RTMP服务器的,那么这就要求我们对于RTMP协议有深刻的理解,然后基于这些协议的理解自己有一定的能力开发RTMP协议。

下面我们就详细的学习一下RTMP协议。

二 RTMP协议详解

1.RTMP 协议是个啥?我们要学哪些知识点?

RTMP 是 Real Time Messaging Protocol( 实时消息传输协议) 的首字母缩写。该协议基于 TCP,是一个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。

RTMP 与 HTTP 一样, 都属于 TCP/IP 四层模型的应用层。

上述红色部分的含义如下图:

我们在开发android程序的时候,使用OKHTTP开源库,封装了socket完成http数据的开发。

librtmp 这个开源库,封装了socket建立TCP通讯,并实现了RTMP数据的收发。

因此这里我们要学习RTMP协议外,还需要学习一下librtmp这个开源库的很多具体的api,这样才能更好的理解和使用 RTMP

RTMP 协议传输时会对数据格式化,而实际传输的时候为了更好地实现多路复用、分包和信息的公平性,发送端会把 Message 划分为带有 Message ID 的 Chunk,每个 Chunk 可能是一个单独的 Message,也可能是 Message 的一部分,在接收端会根据 Chunk 中包含的 data 的长度,message id 和 message 的长度把 chunk 还原成完整的 Message,从而实现信息的收发。 (Message, Chunk)

相关推荐
野犬寒鸦1 分钟前
从零起步学习并发编程 || 第三章:JMM(Java内存模型)详解及对比剖析
java·服务器·开发语言·分布式·后端·学习·spring
HyperAI超神经5 分钟前
覆盖天体物理/地球科学/流变学/声学等19种场景,Polymathic AI构建1.3B模型实现精确连续介质仿真
人工智能·深度学习·学习·算法·机器学习·ai编程·vllm
AI周红伟7 分钟前
周红伟:大模型的微调和 腾讯姚顺雨 刚发布“上下文学习”论文,的区别和联系
学习
近津薪荼23 分钟前
递归专题(4)——两两交换链表中的节点
数据结构·c++·学习·算法·链表
-Springer-27 分钟前
STM32 学习 —— 个人学习笔记2-1(软件安装)
笔记·stm32·学习
I'mChloe34 分钟前
机器学习核心分支:深入解析非监督学习
人工智能·学习·机器学习
鱼很腾apoc40 分钟前
【实战篇】 第14期 算法竞赛_数据结构超详解(下)
c语言·开发语言·数据结构·学习·算法·青少年编程
Gain_chance41 分钟前
32-学习笔记尚硅谷数仓搭建-DWD层首日数据装载脚本及每日数据装载脚本
大数据·数据仓库·hive·笔记·学习
中二病码农不会遇见C++学姐1 小时前
.env 文件是干啥的?为什么不能提交到 Git?
git·学习
近津薪荼1 小时前
递归专题(3)——反转链表
数据结构·c++·学习·算法·链表