成熟网站开发单位,ico网站图标,网站开发属于购销合同,外贸网站做哪些语言RTSP#xff08;Real Time Streaming Protocol#xff09;协议全解析
一、协议概述 定位#xff1a;应用层协议#xff0c;用于控制流媒体服务器#xff08;播放、暂停、录制#xff09;#xff0c;媒体传输由 RTP/RTCP 实现。 特点#xff1a; 基于文本#xff08;…RTSPReal Time Streaming Protocol协议全解析
一、协议概述 定位应用层协议用于控制流媒体服务器播放、暂停、录制媒体传输由 RTP/RTCP 实现。 特点 基于文本类似 HTTP支持 TCP/UDP默认端口 554。无状态协议通过 Session 头维护会话状态。 核心命令 方法用途OPTIONS查询服务器支持的方法DESCRIBE获取媒体描述SDP 格式SETUP建立传输通道协商 RTP/RTCP 参数PLAY/PAUSE控制媒体播放TEARDOWN终止会话 二、核心命令详解含 TCP/UDP 场景对比
1. DESCRIBE
用途获取媒体流的元数据SDP 格式。 交互示例
UDP 场景
C→S: DESCRIBE rtsp://example.com/live RTSP/1.0CSeq: 1Accept: application/sdpS→C: RTSP/1.0 200 OKContent-Type: application/sdpContent-Length: 320v0o- 0 0 IN IP4 192.168.1.1sLive Streammvideo 5004 RTP/AVP 96 # UDP端口5004传输视频artpmap:96 H264/90000acontrol:trackID0artcp:5005 # RTCP端口5005TCP 场景
S→C: RTSP/1.0 200 OKContent-Type: application/sdpContent-Length: 300v0o- 0 0 IN IP4 192.168.1.1sLive Streammvideo 0 RTP/AVP/TCP 96 # TCP复用连接artpmap:96 H264/90000acontrol:trackID0ainterleaved:0-1 # 通道0RTP通道1RTCP2. SETUP
用途协商 RTP/RTCP 传输参数。 交互示例
UDP 场景
C→S: SETUP rtsp://example.com/live/trackID0 RTSP/1.0CSeq: 2Transport: RTP/AVP/UDP;unicast;client_port5000-5001S→C: RTSP/1.0 200 OKSession: 12345678Transport: RTP/AVP/UDP;unicast;client_port5000-5001;server_port6000-6001TCP 场景
C→S: SETUP rtsp://example.com/live/trackID0 RTSP/1.0CSeq: 2Transport: RTP/AVP/TCP;unicast;interleaved0-1S→C: RTSP/1.0 200 OKSession: 12345678Transport: RTP/AVP/TCP;unicast;interleaved0-1关键字段对比
参数UDP 场景TCP 场景传输协议RTP/AVP/UDPRTP/AVP/TCP端口协商client_port5000-5001无端口通过 interleaved 复用通道标识无interleaved0-1 3. PLAY/PAUSE/TEARDOWN
交互示例通用格式
C→S: PLAY rtsp://example.com/live RTSP/1.0CSeq: 3Session: 12345678Range: npt0-S→C: RTSP/1.0 200 OKCSeq: 3RTP-Info: urlrtsp://example.com/live/trackID0;seq12345;rtptime123456789三、SDPSession Description Protocol详解
SDP 是 RTSP 中描述媒体流参数的元数据协议核心字段如下
1. 全局字段
字段格式说明vv0协议版本固定为0oousername sess-id version IN IP4 IP会话源信息如 o- 0 0 IN IP4 192.168.1.1sssession name会话名称如 sLive Streamtt0 0会话时间0表示无限制
2. 媒体行m
参数说明media媒体类型video/audioportUDP 场景为端口号如 5004TCP 场景为 0proto传输协议RTP/AVP 表示 UDPRTP/AVP/TCP 表示 TCPfmt负载格式编号对应 artpmap 中的值
示例
mvideo 0 RTP/AVP/TCP 96 # TCP视频流
maudio 5004 RTP/AVP 97 # UDP音频流端口50043. 扩展属性a
属性说明rtpmap定义编解码器如 artpmap:96 H264/90000fmtp编解码器参数如 afmtp:96 profile-level-id42001fcontrol媒体流控制 URL用于 SETUP 请求如 acontrol:trackID0interleavedTCP 通道号如 ainterleaved:0-1rtcpUDP 场景的 RTCP 端口如 artcp:5005 四、TCP/UDP 场景数据传输对比
1. UDP 场景
RTP 包通过独立 UDP 端口发送。 [RTP Header][Payload] // 端口5004RTCP 包通过相邻奇数端口发送。 [RTCP Header][Payload] // 端口50052. TCP 场景
数据包格式所有数据通过同一连接传输带通道标识前缀。 $ChannelLength HighLength Low[Payload]示例 $00 00 04 00 [RTP视频数据] // 通道0$01 00 00 0C [RTCP视频报告] // 通道1五、协议选择建议
特性UDP 场景TCP 场景实时性高低延迟适合直播、会议中适合点播、弱网环境可靠性可能丢包需 RTCP 反馈高依赖 TCP 重传防火墙穿透需开放多个端口仅需一个端口默认554开发复杂度需处理丢包重传逻辑逻辑简化依赖 TCP 可靠性