前言
本节主要讲解 RTSP 协议,通过 wireshark 抓包的方式对协议进行分析。
一、RTSP 亲手搭建直播点播
测试工具:VLC
数据源:文件或本地摄像头
测试功能:RTSP 直播点播
播放地址: rtsp://127.0.0.1:554/test
服务端: 推流
客户端: 拉流
1、数据源为视频文件
参考我之前的博客 “音视频开发常用工具” 下图部分
2、数据源为摄像头
①、搭建 RTSP 流媒体服务器
<1>、点击媒体 -> 流
<2>、选择捕获设备,视频设备我们选择笔记本电脑内置摄像头,电击串流
<3>、点击下一个
<4>、新目标选择 RTSP,点击添加
<5>、修改路径,并点击下一个
<6>、配置文件选择 Video - H.264 + MP3 (TS),点击下一个
<7>、点击流
<8>、可以看到进度条开始动了,这样一个 RTSP 流媒体服务器就搭建好了,目前正在进行推流
②、客户端拉流
<1>、再打开一个 VLC media player,选择媒体 -> 打开网络串流
<2>、网络 URL 修改为:rtsp://:8554/test2,点击播放
<3>、下图左边是服务端在推流,右边是客户端在拉流
上面两个例子实现了数据源分别是文件和摄像头时,搭建了 RTSP 直播点播功能
二、RTSP 协议简介
RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是 TCP/IP 协议体系中的一个应用层协议,由哥伦比亚大学、网景和 RealNetworks 公司提交的 IETF RFC 标准。该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP 是用来控制声音或影像的多媒体串流协议, 并允许同时多个串流需求控制。
RTSP 在体系结构上位于 RTP 和 RTCP 之上,它使用 TCP 或 UDP 完成数据传输。
HTTP 与 RTSP 相比,HTTP 请求由客户机发出,服务器作出响应;使用 RTSP 时,客户机和服务器都可以发出请求,即 RTSP 可以是双向的。
实时流媒体会话协议
- SDP(会话描述协议)Session Description Protocol
- RTP(实时传输协议)Realtime Transfer Protocol:音视频流
RTSP 是基于文本的协议,采用 ISO10646 字符集,使用 UTF-8 编码方案
行以 CRLF 中断( \r\n:10,13:0x0A,0x0D),包括消息类型、消息头、消息体和消息长。但接收者本身可将 CR 和 LF 解释成行终止符。基于文本的协议使其以自描述方式增加可选参数更容易,接口中采用 SDP 作为描述语言。
RTSP 是应用级协议, 控制实时数据的发送。
RTSP 提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如 UDP、组播 UDP 与 TCP 提供途径,并为选择基于 RTP 上发送机制提供方法。
RTSP 协议支持:
- 从媒体服务器上检索媒体
- 媒体服务器邀请进入会议
- 将媒体加到现成讲座中
RTSP协议抓包及讲解(二)https://developer.aliyun.com/article/1472296