当前位置:
文档之家› RTSP协议开发接口说明(2012)
RTSP协议开发接口说明(2012)
a=control:*
如果当前编码是 mpeg4
m=video 0 RTP/AVP 96//媒体描述
a=rtpmap:96 MP4V-ES/90000 a=fmtp:96 profile-level-id=8;config=000001B0F5000001B50900000100000001200886 C400670CA0116851;//码流的配置信息以 config 形式来表达,config 信息随着视频 参数设置的变化而变化。
...
<CRLF>
4.设备支持下列命 令格式 支持下列头部字 段,其他头部字段会被忽略。
字段
描述
Author izat ion
来自客户端的认证信息(只支持 Describe 阶 段带入认证信息)
CSeq Session Content-Length
请求序列号 会话标识号(SETUP 阶段由服务器返回) 内容长度
如果当前编码是 H264
m=video 0 RTP/AVP 96 a=rtpmap:96 H264/90000 a=control:trackID=1
a=fmtp:96 profile- leve l- id=4D0014;pac ketiz ation-mode=0;sprop-parameter-sets=Z0LAH4 iLUCg C 3QgAADh AAAr8g BA=,aM44g A== m=audio 0 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=control:trackID=2 a=Med ia_head er:MEDI AINFO=494D4 B48010100000400010010710 110401F000000F A000000000000000000000000000000000000; a=appversion:1.0
2.关于认证的说明 (1)支持在 url 中带入用户名和密码
例如: rtsp://admin:12345/Streaming/Channels/101
(2)支持在 Describe 阶段中的 Authorization 字段带入用户名和密码 例如:
3.语法 请求语法: COMMAND URI RTSP/1.0<CRLF>
RTSP SETUP,该命令用来提醒服务器建立会话、配置数据传输的方式,需要并产生 下列头部字段:
Transport 规定数据流传输方式。支持下列格式: RTP/AVP;un ic as t;c lient_port=port1 -port2 RTP/AVP;mu ltic as t;c lient_port=port1 -port2 RTP/AVP/TCP;unicast
1389957320
Range: npt=nowRTP-Info: url=trackID=1;seq=29626 //seq 是 rtp 包中的信息
RTSP TEARDOWN,该命令结束服务器的数据传输。 C-S:TEARDOWN rtsp://192.0.1.100/Streaming/Channels/101 RTSP/1.0
TEARDOWN
RTSP OPTIONS,C 询问 S 有哪些方法可用,S 回应信息中包括提供的所有可用方法 C-S:OPTIONS rtsp://192.0.1.100/Streaming/Channels/101 RTSP/1.0 CSeq: 1//每个消息都有序号来标记,第一个包通常是 option 请求消息
CSeq: 3
Transport: RTP/AVP;unicast;client_port=1094-1095
User-Agent: NKPlayer S-C:RTSP/1.0 200 OK
CSeq: 3 Ses s ion:1389957320;tim eout=60//服务器回应的会话标识符和超时时间
回放 URL 地址格式 rtsp://<address>:<port>/Streaming/tracks/<id> (?parm1=value1&parm2-=value2…), 其中 ipaddress 为设备的 IP 地址、设备的端口。
例如: rtsp://192.0.1.100:554/Streaming/tracks/101?starttime=20120802t063812z&endtime=20120 802t064816z /*表示以单播形式回放通道 1 中的录像文件,时间范围是 starttime 到 endtime, 其 中 starttime 和 endtime 的 格 式 要 符 合 ISO 8601 。 具 体 格 式 是 YYYYMMDD”T”HHmmSS.fraction”Z” ,Y 是年,M 是月,D 是日,T 是时间分格符,H 是 小时,M 是分,S 是秒,Z 是可选的、表示 Zulu (GMT) 时间。 */ 2. 老设备的 URL 地址格式 rtsp://<ipaddress>/<videotype>/ch<number>/<streamtype> /av_stream,其中 ipaddress 为设备的 IP 地址、videotype 为 mpeg4 或 h264,number 表示 数字,streamtype 为 main 或 sub,对大小写不敏感。 例如:rtsp://192.0.1.100/mpeg4/ch1/main/av_stream/*表示播放视频类型为 MPEG4 的设 备 192.0.1.100 通道 1 的主码流*/
User-Agent: NKPlayer S-C:RTSP/1.0 200 OK
CSeq: 1 Public: DESCRIBE,PLAY,SETUP,TEARDOWN
RTSP DESCRIBE,返回 URI 指定的 SDP(RFC2327)描述信息。DESCRIBE 命令接受下 列头部字段:
Accept 客户端支持的内容列表类型(只支持 application/sdp) DESCRIBE 命令产生下列额外头部信息:
Headerfield1: val1<CRLF> Headerfield2: val2<CRLF> ... <CRLF>
反ຫໍສະໝຸດ Baidu语法:
RTSP/1.0 ResultCode ResultString<CRLF>
Headerfield3: val3<CRLF> Headerfield4: val4<CRLF>
(4) 端口分配范围,默认 server 端的 UDP(数据端口)分配范围是 8200-8801,后续会 增加配置,让用户可设。
(5) SETUP 过程中的不同地方举例: C-S:SETUP rtsp://192.0.1.100/Streaming/Channels/101/trackID=1 RTSP/1.0 CSeq: 3 Transport: RTP/AVP;unicast;client_port=13000-13001 User-Agent: NKPlayer S-C:RTSP/1.0 200 OK CSeq: 3 Session:1389957320 Transport: RTP/AVP;unicast;client_port=13000-13001;server_port=8200-8201;
Content-Type
内容类型(application/sdp)
Content-Length
SDP 描述的长度
C-S:DESCRIBE rtsp://admin:12345@192.0.1.100/Streaming/Channels/101 RTSP/1.0
CSeq: 2
Accept: application/sdp
RTSP server 反馈所产生的头部信息 字段
CSeq Session
描述 反馈序列号(跟请求序列号相匹配) 会话标识号
5.播放器与设备的交互的所有 RTSP 命令举例:C 表示 rtsp 客户端,S 表示 rtsp 服务端
DESCRIBE
SETUP
CLIENT
PLAY
IPC
Media Stream
如果在会话的头部包含 timeout 参数, kept alive 超时后,会话将自动关闭。Kept alive 是通过 RTSP_GET_PARAMETER,RTSP_SET_PARAMETER,RTSP_OPTIONS 来实现的实 现的。
C-S:SETUP rtsp://192.0.1.100/Streaming/Channels/101/trackID=1 RTSP/1.0
CSeq: 5 Session: 1389957320 User-Agent: NKPlayer S-C:RTSP/1.0 200 OK CSeq: 5 Session: 1389957320
以上方法都是交互过程中最为常用的。
二.几种传输方式
1.RTP OVER UDP
(1)用户在 SETUP 阶段发送一个 SETUP 命令,trackID=1。只能取得视频。 (2)用户在 SETUP 阶段发送一个 SETUP 命令,trackID=2。只能取得语音。 (3)用户在 SETUP 阶段发送两个 SETUP 命令,trackID=1,trackID=2。能够取得视频和语 音。
a=range:ntp=now a=control:trackID=1//表示视频流用的是 track1 m=audio 0 RTP/AVP 0//媒体描述
a=rtpmap:0 PCMU/8000 a=control:trackID=2//表示音频流用的是 track2
a=Med ia_head er:MEDI AINFO=494D4 B48010100000400010010710 110401F000000F A000000000000000000000000000000000000;//40 个字节头部 a=appversion:1.0//sdp 版本号
RTSP 协议开发接口说明
一.RTSP 协议说明
1. 预览 URL 地址格式 rtsp://<address>:<port>/Streaming/Channels/<id> (?parm1=value1&parm2-=value2…),其中 ipaddress 为设备的 IP 地址、设备的端口。
例如: rtsp://192.0.1.100:554/Streaming/Channels/101?transportmode=unicast /*表示以单播放时 取通道 1 的第一路码流*/ rtsp://192.0.1.100:554/Streaming/Channels/102/*表示以单播方式取通道 1 的第二路码流 */ rtsp://192.0.1.100:554/Streaming/Channels/102?transportmode=multicast /*表示以多播方 式取通道 1 的第二路码流*/
Transport: RTP/AVP;unicast;client_port=1094-1095;server_port=12028-12029
RTSP PLAY,该命令为客户端启动数据传输,需要并产生下列头部字段:
Range
规定播放的范围。因为只支持实时流,所以只有开始时间没有结 束时间。
RTP-Info 关于 RTP 流的信息,包含下一个 RTP 序列号 C-S:PLAY rtsp://192.0.1.100/Streaming/Channels/101 RTSP/1.0
CSeq: 4
Session: 1389957320 Range: npt=0.000- //设置播放时间的范围,在回放时,除了 URL 中带有开始结束时 间,该字段中也需要带有开始结束时间。
User-Agent: NKPlayer S-C:RTSP/1.0 200 OK
CSeq: 4
Session:
User-Agent: NKPlayer S-C:RTSP/1.0 200 OK
CSeq: 2 Content-type: application/sdp
Content-length: 692 v=0//SDP 版本信息 o=- 1109162014219182 1109162014219192 IN IP4 x.y.z.w//所有者/创建者和会话标 识符 s=Media Presentation//会话名称 e=NONE//Email 地址 c=IN IP4 0.0.0.0//连接信息 t=0 0//会话活动时间