当前位置:文档之家› RTSPRTP 媒体传输和控制协议

RTSPRTP 媒体传输和控制协议

RTSPRTP 媒体传输和控制协议1 前言本文档主要描述了NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议.本协议主要基于标准的IETE 的RTSP/RTP 以及相关协议, 并针对具体应用定义了部分扩展.本协议只是当前实现的总结和整理, 具体的协议细节以实际实现为准2 定义RTSP实现流协议SDP会话描述协议RTP实时传输协议H.264H.264 视频编码标准3 RTSP 命令3.1 Request 语法语法:RTSP 的语法和HTTP 的语法基本相同, 具体如下。

COMMAND rtsp_URL RTSP/1.0<CRLF> Headerfield1: val1<CRLF>Headerfield2: val2<CRLF>...<CRLF>[Body]RTSP 消息行之间用回车换行(CRLF) 分隔. 一个空行表示消息头部分的结束。

3.1.1 RTSP 方法COMMAND 表示RTSP 命令名称, 是DESCRIBE, SETUP, OPTIONS, PLAY, PAUSE, TEARDOWN 或SET_PARAMETER 等的任意一个.3.1.2 RTSP URL完整语法如下:rtsp_URL = ( "rtsp:" | "rtspu:" )"//" host [ ":" port ] [ abs_path ] host = (A legal Internet host domain name of IP address(in dotted decimal form), as defined by Section 2.1of RFC 1123 \cite{rfc1123})port = *DIGIT如:rtsp://<servername>/live.mp4[?<param>=<valu e>[&<param>=<value>...]]<servername> 表示产品的主机名称或者IP 地址. 3.1.3 RTSP 版本格式和HTTP 协议类似, 且RTSP 版本总是为"RTSP/1.0"3.1.4 RTSP 头字段下面是所有命令都接受的头字段类型,一些命令接受或者必须用到一些附加的特别的头字段。

头字段描述Authorization 客户端的认证信息.CSeq请求序列号.Session会话ID (返回自服务端的SETUP 应答).Content-Length 内容的长度.Content-Type内容的媒体类型.User-Agent关于创建这个请求的客户端的信息.Require查询是否支持指定的选项,不支持的选项会在Unsupported 头中列出.3.2 Response 语法语法:RTSP/1.0 <Status Code> <Reason Phrase><CRLF>Headerfield3: val3<CRLF>Headerfield4: val4<CRLF>...<CRLF>[Body]应答的第一行包含了表示请求是否成功或者失败的状态码和原因短语. 在RFC 2326 有对状态码的详细描述.标准的RTSP 应答状态码和原因短语:”100” ; Continue (all 100 range)“200” ; OK”201” ; Created”250” ; Low on Storage Space”300” ; Multiple Choices”301” ; Moved Permanently”302” ; Moved Temporarily”303” ; See Other”304” ; Not Modified”305” ; Use Proxy”350” ; Going Away”351” ; Load Balancing”400” ; Bad Request”401” ; Unauthorized”402” ; Payment Required”403” ; Forbidden”404” ; Not Found”405” ; Method Not Allowed”406” ; Not Acceptable”407” ; Proxy Authentication Requ ired”408” ; Request Time-out”410” ; Gone”411” ; Length Required”412” ; Precondition Failed”413” ; Request Entity Too Large”414” ; Request-URI Too Large”415” ; Unsupported Media Type”451” ; Parameter Not Understood”452” ; reserved”453” ; Not Enough Bandwidth”454” ; Session Not Found”455” ; Method Not Valid in This State”456” ; Header Field Not Valid for Resource ”457” ; Invalid Range”458” ; Parameter Is Read-Only”459” ; Aggregate operation not allowed”460” ; Only aggr egate operation allowed ”461” ; Unsupported transport”462” ; Destination unreachable”500” ; Internal Server Error”501” ; Not Implemented”502” ; Bad Gateway”503” ; Service Unavailable”504” ; Gateway Time-out”505” ; RTSP Version not supported”551” ; Option not supported下面的头字段可以在所有的RTSP 应答消息中包含。

头字段描述CSeq应答序列号(和请求序列匹配).Session会话ID.WWW-Authenticate客户端的认证信息.Date应答的日期和时间.Unsupported服务端不支持的特性和功能.3.3 RTSP DESCRIBE DESCRIBE 命令用于请求指定的媒体流的SDP 描述信息。

关于SDP ( Session Description Protocol,会话描述协议)请参考RFC 2327.DESCRIBE 请求消息接受如下附加的头字段:头字段描述Accept列出客户支持的内容类型(application/sdp is the only supported type).DESCRIBE 命令的应答消息包含如下附加的头字段:头字段描述Content-Type内容类型(application/sdp).Content-LengthSDP 描述串的长度.Content-Base如果SDP 描述串中使用了相对URL, 这里是相关的基本URL.例如:请求DESCRIBE rtsp://myserver/live.mp4 RTSP/1.0CSeq: 0User-Agent: Vision MCAccept: application/sdpAuthorization: Basic cm9vdDpwYXNz应答RTSP/1.0 200 OKCSeq: 0Content-Type: application/sdpContent-Base: rtsp://myserver/live.mp4Date: Wed, 16 Jul 2008 12:48:47 GMTContent-Length: 847v=0o=- 1216212527554872 1216212527554872 IN IP4 myservers=Media Presentatione=NONEc=IN IP4 0.0.0.0b=AS:50064t=0 0a=control:rtsp://myserver/live.mp4&resolution=640x480a=range:npt=0.000000-m=video 0 RTP/AVP 96b=AS:50000a=framerate:30.0a=control:rtsp://myserver/live.mp4?trackID=1a=rtpmap:96 H264/90000a=fmtp:96 packetization-mode=1; profile-level-id=420029; sprop-parameter-sets=Z0IAKeKQFAe2AtwEBAaQeJEV,a M48gA==m=audio 0 RTP/AVP 97b=AS:64a=control:rtsp://myserver/live.mp4?trackID=2a=rtpmap:97 mpeg4-generic/16000/1a=fmtp:97 profile-level-id=15; mode=AAC-hbr;config=1408; SizeLength=13; IndexLength=3;IndexDeltaLength=3; Profile=1; bitrate=64000;3.4 RTSP OPTIONSOPTIONS 请求用于返回服务端支持的RTSP 命令列表。

也可以定时发送这个请求来保活相关的RTSP 会话。

OPTIONS 命令的应答消息包含如下附加的头字段:头字段描述Public指出支持的RTSP 命令.例如:列出支持的RTSP 命令.请求OPTIONS * RTSP/1.0CSeq: 1User-Agent: Vision MCSession: 12345678Authorization: Basic cm9vdDpwYXNz应答RTSP/1.0 200 OKCSeq: 1Session: 12345678Public: DESCRIBE, GET_PARAMETER, PAUSE, PLAY, SETUP, SET_PARAMETER, TEARDOWNDate: Wed, 16 Jul 2008 12:48:48 GMT3.5 RTSP SETUPSETUP 命令用于配置数据交付的方法。

相关主题