交互过程
1、建立连接:
- 客户端发送OPTIONS请求:询问服务器支持的操作。
OPTIONS rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 1
- 服务器响应:返回支持的RTSP方法。
2、描述媒体:
- 客户端发送DESCRIBE请求:获取媒体流的描述信息。
DESCRIBE rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 2
Accept: application/sdp
- 服务器响应:返回SDP格式的媒体描述,包含流的格式、时长、编码、传输协议等。
RTSP/1.0 200 OK
CSeq: 2
Content-Type: application/sdp
Content-Length: ...
v=0
o=- 123456 123456 IN IP4 192.168.1.1
s=Example Stream
i=An example stream for RTSP
t=0 0
a=control:*
m=video 49170 RTP/AVP 96
c=IN IP4 239.255.255.255
a=rtpmap:96 H264/90000
3、设置会话:
- 客户端发送SETUP请求:为媒体流指定传输参数。
SETUP rtsp://example.com/media.mp4/trackID=0 RTSP/1.0
CSeq: 3
Transport: RTP/AVP;unicast;client_port=49170-49171
- 服务器响应:返回确认信息。
RTSP/1.0 200 OK
CSeq: 3
Transport: RTP/AVP;unicast;server_port=49172-49173
Session: 12345678
4、开始播放:
- 客户端发送PLAY请求:请求开始流传输。
PLAY rtsp://example.com/media.mp4 RTSP/1.0
CSeq: 4
Session: 12345678
- 服务器响应:开始通过RTP传输媒体流。
5、控制流:
- 客户端可以发送PAUSE请求:暂停流传输。
- 客户端发送TEARDOWN请求:结束会话,释放资源。
SDP(会话描述协议)
- SDP是描述多媒体会话的协议,通常用于RTSP和其他流媒体协议中。SDP包含以下信息:
- 版本信息(v=):协议版本。
- 会话信息(o=):创建者和会话ID。
- 流信息(m=):媒体类型(如音频、视频)、端口和传输协议。
- 编码信息(a=rtpmap):媒体编码格式和时钟频率。
- 连接信息(c=):连接地址。
- 其他属性(i=、t=、a=等):流的描述、时长、控制信息等。
- SDP的主要作用是为媒体流提供必要的元数据,确保客户端能够正确处理和播放媒体内容。