RTSP协议-RFC标准速读 - 弦外之音

/ 0评 / 0

RTSP 的标准是 RFC 2326,打开 rfc_search 网站,搜索 2326 编号即可。本文主要记录一下本人速读这个协议标准的一些重点。

RTSP 标准有 92页 pdf,但是借助 deepl,翻译成中文,中英文对照着看,还是可以读得比较快的。



RFC 标准的意义,这些标准文档,只是给你写代码的时候提供一些参考思路。

这些 RFC 标准的意义不是手把手教写一个完整能上线的系统,或者直接给代码。

而是定义一些标准,这些标准你可以只实现一部分标准。

对应开发 原生APP,原生桌面的程序员来说,RFC 就是相当于提供了一些逻辑思路。

而对于大平台而言,RFC 标准是革命性的,例如 web 平台,有标准,各个浏览器才能统一,然后更好地做分层设计。只有分层,生态才能有活力。

RFC 标准在平台层面可以有效减少程序员的开发工作

又例如操作系统领域, POSIX 标准 也是一个 RFC 标准,统一了API,这样程序在不同系统中的移植就会比较容易。

对于非平台性的开发者而已,RFC 的作用不是特别明显,只是提供了一些思路。不做平台的开发者,完全可以根据自身业务场景定制开发。


什么是平台性业务,什么是非平台性业务?

云厂商 做的就是平台性业务,程序员要按照标准实现一些功能,这边别人才好对接。平台性的技术只是整个产品中的一个环节。

抖音APP,钉钉视频会议,这些就是非平台性业务,他不需要对接任何人,产品前端,后端,传输,完全自己提供.


RTSP RFC 2326 标准有92页,所以他的文档已经讲得很详细,本文只讲下重点,

重点1:Data is carried out-of-band by a different protocol. (There is an exception to this.)

RTSP 控制指令跟流数据分开通道传输,这个应该是指UDP的实现,TCP 下,ZLMediaKit 3个协议 RTSP,RTP,RTCP 使用的同一个端口,没有分开通道。

RFC 上面那句话是说 RTSP 支持分开多通道。


重点2:Multi-server capable: Each media stream within a presentation can reside on a different server. The client automatically establishes several concurrent control sessions with the different media servers. Media synchronization is performed at the transport level.

客户端服务器可以通过 RTSP 协议沟通真正的传输流的IP跟端口,这样能很方便进行扩容,或者集群部署。例如视频会议,房间A放在服务器A,房间B放在服务器B。


这个 RFC 跟 HTTP 很类似,有超级多的方法跟一些定义,没什么好看的,就是最后 第 80页 SDP 可以仔细看看。

相关阅读:

1,《RTSP 标准文档》

2,《SIP 协议》

3,H.233 标准


由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1。QQ:2338195090。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注