RTSP: Real Time Streaming Protocol Explained

本文来自: RTSP: Real Time Streaming Protocol Explained

在本文中我们将要学习RTSP.

RTSP是一种被设计用于网络通信系统的控制协议。RTSP协议提供了音频和视频的实时流框架。

RTSP 以极低的延迟提供对音频和视频流的高效管理,因此非常适合直播应用。

1.什么是RTSP

实时流协议。是一种控制流媒体服务器的网络控制协议。它非常适合通过互联网传输实时数据流,如音频、视频和其他多媒体文件。

不同于HTTP最初定位于下载内容,RTSP被设计用于直播。

2.历史背景: RTSP的诞生

RTSP于1998年被IETF开发。RTSP协议允许客户端(服务器或网页应用)控制流媒体服务器比如暂停、播放和停止媒体流。

因此,它是需要实时媒体传输和交互性的应用程序的首选协议:
在这里插入图片描述

3.RTSP的关键功能

(1) 会话控制功能:
第一,播放、暂停和停止命令: 通过RTSP客户端设备就能控制类似于传统CD/蓝光播放器之类的流媒体。交互性对于直播、电影租赁或任何视频流服务等应用来说非常重要。
第二,寻求功能: RTSP 还支持搜索功能,使用户能够转到媒体流中的特定点

以上功能依赖于RTSP协议的实现,直播所有者或点播流媒体服务提供商可以控制向观看流媒体的观众提供哪些功能。

(2) 低延迟
RTSP 从一开始就被设计为提供低延迟流媒体,这对于体育赛事或用户可能想要流式传输的其他现场活动等直播非常重要。

(3) 高效带宽利用
RTSP被设计用于高效宽带利用,这并不意味着它提供了低质量。利用RTSP你可以传送4k甚至8k的录像。
RTSP让客户端请求他们想要的数据,如果客户端只想要音频流,那么RTSP就不会向客户端推送视频流。

(4) 传输不可知
RTSP是传输不可知的,这意味着它可以和TCP、UDP或任何其他协议一起使用,虽然更倾向于UDP。
因此RTSP具备了在不同网络状况和需求下使用的灵活性。

(5) 可扩展性
RTSP支持可扩展的流媒体解决方案。不论你正在运行小的部署或更大的可扩展部署。RTSP可以处理多个媒体流。

(6) 支持不同的媒体类型
RTSP可以处理不同种类的媒体,包括音频、视频和文本。

(7) 互操作性
RTSP适用于各种编解码器和媒体格式,确保跨不同浏览器和设备的广泛兼容性。这有助于吸引更广泛的受众,这在您播放视频时非常重要。

(8) 可扩展性
该协议被设计为可扩展的,这意味着该协议允许随着时间的推移添加新的功能和改进。这意味着该协议非常活跃且处于开发中,并且能够应对未来的流媒体进步和技术。

(9) 对网络元素的控制
RTSP 可以与 NAT 和防火墙等网络元素进行交互,这些元素会无意中妨碍与互联网上的设备进行通信。

(10) 安全功能
RTSP拥有内在的安全功能,它拥有端到端的加密和认证机制。
由于RTSP的安全功能,流只能被经过认证的观众访问。

4.RTSP的关键组成

(1) RTSP服务器
会话管理: RTSP服务器管理流会话。它会在需要的时候建立、维护和终止会话。它也会跟踪正在进行的会话的状态,比如播放、暂停和停止。
媒体流: 服务器向客户端设备发送媒体流。
命令处理: 服务器处理RTSP命令请求诸如来自客户端设备的PLAY、PAUSE、STOP。这让客户端能够控制视频流。

(2) RTSP客户端
RTSP客户端是任何连接RTSP服务器并请求和控制媒体流的设备或应用。

会话控制: 客户端通过向RTSP服务器发送请求来启动流媒体会话。它也能通过适当的命令暂停和终止会话。
媒体播放: 客户端接收了媒体流并将其解码用以在设备上播放。客户端设备可以是任何东西,像 VLC 这样的软件应用程序、像 chrome 这样的网络浏览器、像 prime stick 这样的硬件设备等等。
用户接口: 为了让用户与媒体交互(包括播放和停止播放),客户端拥有内在的用户接口。

(3) RTSP命令:

RTSP定义了若干命令去控制服务器的媒体流。

SETUP: 启动会话并为流分配资源。它也决定使用的传输机制,比如RTP/UDP
PLAY: 在特定的时间点启动媒体流播放
PAUSE: 暂时停止媒体流的播放并释放资源,并记住媒体流停止的时间点以便从该点恢复播放。
TEARDOWN: 终止会话并释放与会话相关的资源。
DESCRIBE: 请求媒体流的描述,通常在会话描述协议中。详细描述可用的媒体流和它们的格式。
OPTIONS: 该功能向媒体服务器询问可用的方法和功能。
ANNOUNCE: 流媒体服务器使用它来通知客户端媒体流格式或会话状态的变化。

(4) 媒体传输协议

RTSP本身并不传输媒体流,而是依赖其他底层协议来传输流。这些协议包括:

RTP(实时传输协议):
RTP是在互联网中实时传输媒体流的基础协议。它提供了可用于时间戳、序列编号和确保数据包顺序正确同步的机制

RTCP(RTP控制协议):
该协议 RTCP 协议基本上与 RTP 协议一起工作,以便提供有关正在传输的媒体流质量的反馈,包括数据包丢失和抖动等指标。它有助于维护媒体流的质量。

(5) 会话描述协议(SDP)
SDP被用于以标准格式描述多媒体会话。它提供了可用于流媒体会话的媒体流的详细信息,其中包括以下信息:
媒体类型: 流可用的媒体类型,比如音频、视频
编解码器信息: 编解码器用于媒体编码,流行的编解码器包括用于视频的H.264、mp4等和用于音频的mp3或AAC。编解码器的信息由SDP提供。
网络信息: 网络信息包括IP地址、域名、端口号和其他信息。
时间信息: 媒体会话的起始时间。

(6) 传输层
TCP: TCP为RTSP消息提供了可靠的、基于连接的传输。TCP 协议确保设备的命令和服务器的响应按顺序传递
UDP: UDP提供了低开销、低延迟的传输。它更适合实时媒体,但弊端之一是它不能确保数据的传输和顺序。
HTTP隧道: RTSP 可以通过 HTTP 隧道传输,以穿越防火墙和 NAT 设备,从而确保在极其受限的网络中实现兼容性和交付

(7) 控制和反馈机制
RTSP 内置了许多安全机制,以确保安全流媒体的安全
会话标识符: 每一个流会话都有唯一的标识符,使你能够准确的测量和管理多个会话
状态管理: RTSP 保存有关流媒体会话当前状态的信息,如播放、暂停、停止等。
RTCP报告: 服务器和客户端设备不断交换有关数据包丢失、抖动和其他质量指标的信息,以促进流媒体和纠错

(8) 安全组件
RTSP 具有基本的安全机制,可以保护流媒体免受未经授权的访问

认证
RTSP拥有内在机制去识别和验证寻求媒体流的客户端的身份

加密
RTSP使用诸如SRTP之类的协议加密媒体流,由此避免了对媒体流非认证的访问和下载

访问控制
通过RTSP你可以创造访问控制策略来限制谁能访问媒体流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值