1、产品名称Product name 密级Confidentiality level产品版本 Product version Total pages 共 页RTSP简介(仅供内部使用)拟制 : 日期: yyyy-mm-dd审核 : 日期: yyyy-mm-dd审核 : 日期: yyyy-mm-dd批准 : 日期: yyyy-mm-dd版权所有 侵权必究请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第2页,共25页修订记录日期 修订版本 描述 作者请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第3页,共25页目 录1 概要 .72 流媒体基本业务组网图 7
2、3 RTSP 介绍 83.1 RTSP是什么? .83.2 RTSP URL的语法结构 .83.3 RTSP 消息 83.3.1 消息 .83.3.2 请求消息 83.3.3 响应消息 103.4 信令 .113.4.1 OPTIONS 113.4.2 DESCRIBE 123.4.3 SETUP.133.4.4 PLAY .133.4.5 PAUSE 143.4.6 TEARDOWN143.5 Header Field 解析 .153.5.1 Accept163.5.2 Cseq 163.5.3 Range 173.5.4 RTP-Info 173.5.5 Session173.5.6 Tr
3、ansport .183.5.7 User-Agent 184 移动流媒体与RTSP .184.1 点播流程 194.2 SDP .204.3 数据传送 214.4 消息流程 22请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第4页,共25页表目录 List of Tables表1:信令简要描述 11表2:RTSP 头字段简述 16请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第5页,共25页图目录 List of Figures图1 流媒体业务基本组网图 .7图2 RTSP消息交互 19图3 协议栈的简单描述 22请输入文档名称 请输入密级2014
4、-10-27 版权所有,侵权必究 第6页,共25页测试方案关键词: RTSP, Streaming, ethereal, TCP, HMS摘 要:本文主要介绍RTSP的基本消息信令及手机与HMS的RTSP的消息交互过程缩略语清单: 对本文所用缩略语进行说明,要求提供每个缩略语的英文全名和中文解释。3GP 3GPP file formatCODEC COder / DECoderIP Internet ProtocolMP4 MPEG-4 file formatPSS Packet-switched Streaming ServiceRFC IETF Request For CommentsRT
5、CP RTP Control ProtocolRTP Real-time Transport ProtocolRTSP Real-Time Streaming Protocol SDP Session Description ProtocolTCP Transport Control ProtocolUDP User Datagram ProtocolURI Universal Resource IdentifierWAP Wireless Application Protocol请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第7页,共25页1 概要RTSP(Real T
6、ime Streaming Protocol)实时流协议:一种流媒体控制协议,可对流媒体进行暂停、快进、快倒等操作。流媒体就是实时在线点播。而流媒体与普通媒体的差别在于:对于普通媒体,在访问它之前要得到全部的内容;对于流媒体,则在完全接收到全部内容之前就开始访问。本文主要介绍RTSP的基本消息信令及手机与 HMS的RTSP的消息交互过程。2 流媒体基本业务组网图StreamingClientContentServersUser andterminalprofiles PortalsIP NetworkContent ache3GPCore NetworkUTRANGERANSGSN GSNSt
7、reamingClient图1 流媒体业务基本组网图Comment a1: 统一资源定位符(Uniform Resource Locator,缩写为URL)。Comment a2: CRLF - Carriage-Return Line-Feed 回车换行。请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第8页,共25页3 RTSP 介绍3.1 RTSP是什么?RTSP(Real Time Streaming Protocol),实时流协议,是一种应用层的协议,用于实时的控制数据的传输。RTSP提供一个可扩展的架构来实现控制实时媒体的在线点播,如音频或是视频内容。数据源可以
8、是直播信号也可以是制作好的媒体文件。RTSP能够同时控制多个数据传输会话过程,3.2 RTSP URL的语法结构一个终端用户是通过在播放器中输入URL地址开始进行观看流媒体业务的第一步,而对于使用RTSP协议的移动流媒体点播而言,URL 的一般写法如下:一个以“rtsp”或是“rtspu” 开始的URL链接用于指定当前使用的是RTSP 协议。RTSP URL的语法结构如下:rtsp_URL= (“rtsp:”| “rtspu:”) “/” host “:”port” /abs_path/content_namehost:可以是一个有效的域名或是 IP地址。port:端口号,对于RTSP协议来说
9、,缺省的端口号为 554,即如HTTP的缺省端口号是80 一样。当我们在确认流媒体服务器提供的端口号为554时,此项可以省略说明:当HMS服务器使用的端口号为 554时,我们在写点播链接时,可以不用写明端口号,但当使用非554 端口时,在RTSP URL中一定要指定相应的端口。注:我们在点播时使用的都是rtsp,而没有使用到rtspu 。3.3 RTSP 消息3.3.1 消息RTSP是一种基于文本的协议,用CRLF 作为一行的结束符。使用基于文本协议的好处在于我们可以随时在使用过程中的增加自定义的参数,也可以随便将协议包抓住很直观的进行分析。RTSP从传输方向上有两种消息,即“请求消息”及“回
10、应消息”。一个消息一般由头和内容组成,不过也有很多的消息是只有消息头(message head or header)而没有消息体(message body)的。3.3.2 请求消息一个请求消息(a request message)即可以由客户端向服务端发起也可以由服务端向客户端发起。请求消息的语法结构如下:Request = Request-Line请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第9页,共25页*( general-header | request-header | entity-header)CRLFmessage-body1. Request Line
11、请求消息的第一行的语法结构如下:Request-Line = Method 空格 Request-URI 空格 RTSP-Version CRLF其中在消息行中出现的第一个单词即是所使用的信令标志。目前已经有的信息标志如下:Method = “DESCRIBE” | “ANNOUNCE”| “GET_PARAMETER”| “OPTIONS”| “PAUSE”| “PLAY”| “RECORD”| “REDIRECT”| “SETUP”| “SET_PARAMETER”| “TEARDOWN”| extension-methodextension-method = 标志我们可以使用自己定义的信
12、令标示符Request-URI = “*” | absolute_URI请使用请求媒体存放的绝对路径RTSP-Version = “RTSP” “/” 1*DIGIT “.” 1*DIGITRTSP的版本号例子:DESCRIBE rtsp:/211.94.164.227/3.3gp RTSP/1.02. Request Header Fields在消息头中除了第一行的内容外,还有一些需求提供附加信息。其中有些是一定要的,后续我们会详细介绍经常用到的几个域的含义。Request-header = Accept| Accept-Encoding| Accept-Language| Authoriz
13、ation| From| If-Modified-Since请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第10页,共25页| Range| Referer| User-Agent3.3.3 响应消息客户端或是服务端在接收并解释一个请求消息后,会回复一个消息(response message)给请求方。响应消息的语法结构如下:Response = Status-Line*( general-header |response-header|entity-header)CRLFmessage-body1. Status-Line响应消息的第一行是状态行(status-line
14、),每个元素之间用空格分开。除了最后的 CRLF之外,在此行的中间不得有CR或是LF的出现。它的语法格式如下,Status-Line = RTSP-Version 空格 Status-Code 空格 Reason-Phrase CRLFStatus-Code 是一个三位数的整数,用于描述接收方对所收到请求消息的执行结果,而Reason-Phrase是对Status-Code给出一个简短的文字描述,便于我们在收到一个消息后,不用每次都去查看code的解释,而只需要看Reason-Phrase就可以大概了解当前请求的执行状态。Status-Code的第一位数字指定了这个回复消息的种类,一共有5类:
15、 1XX: Informational 请求被接收到,继续处理 2XX: Success 请求被成功的接收,解析并接受 3XX: Redirection 为完成请求需要更多的操作 4XX: Client Error 请求消息中包含语法错误或是不能够被有效执行 5XX: Server Error 服务器响应失败,无法处理正确的有效的请求消息我们在处理问题时经常会遇到的状态码有如下:Status-Code = “200” :OK| “400” :Bad Request| “404” :Not Found| “500” Internal Server ErrorRTSP的状态码也是可以扩展的。服务器
16、可以根据实际情况定义相应的状态码及描述信息。2. Response Header Fields在响应消息的域中存放的是无法放在Status-Line中, 而又需要传送给请求者的一些附加信息。Response-header = Location| Proxy-Authenticate请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第11页,共25页| Public| Retry-After| Server| Vary| WWW-Authenticate3.4 信令信令指的是在Request-URI中指定的需要被接收者完成的操作。信令(The method)大小写敏感,不能以字
17、符”$”开始,并且一定要是一个标记符。概要描述如下:信令 发送方向 是否一定需要DESCRIBE C-S 建议ANNOUNCE C-S, S-C 可选择的GET_PARAMETER C-S, S-C 可选择的OPTIONS C-S, S-C 必需 (S-C: 可选择的)PAUSE C-S 建议PLAY C-S 必需RECORD C-S 可选择的REDIRECT S-C 可选择的SETUP C-S 必需SET_PARAMETER C-S, S-C 可选择的TEARDOWN C-S 必需表1 :信令简要描述C:客户端S:服务端下面介绍几个常用的信令3.4.1 OPTIONS (查询功能)例子:C-
18、S: OPTIONS * RTSP/1.0 CSeq: 1 请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第12页,共25页Require: implicit-play Proxy-Require: gzipped-messages S-C: RTSP/1.0 200 OK CSeq: 1 Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE OPTIONS消息可以在任何时间被发起,如MOTO835 手机就会每隔 60秒左右向服务器端发送一个OPTIONS 的消息,而HMS服务器在检查MOTO835是否仍在线时,也是通过来检查服务器
19、端是否定时收到OPTIONS 的消息来实现的。但需注意的是,并不是所有的手机和播放器会定时发送OPTIONS消息到服务器端,即使有发送,发送OPTIONS的消息的时间间隔也是不尽相同的。3.4.2 DESCRIBEDESCRIBE消息是由客户端发送到服务器端,用于客户端得到请求链接( request URL)中指定的媒体文件的相关描述。DESCRIBE的这一对交互消息完成了 RTSP的媒体初始化。例子:C-S: DESCRIBE rtsp:/ RTSP/1.0 CSeq: 312 Accept: application/sdp, application/rtsl, application/mh
20、eg S-C: RTSP/1.0 200 OK CSeq: 312 Date: 23 Jan 1997 15:35:06 GMT Content-Type: application/sdp Content-Length: 376 v=0 (这里就是 MESSAGE BODY,它的长度由 Content_Length来指定)o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 s=SDP Seminar i=A Seminar on the session description protocol u=http:/www.cs.ucl.ac.uk
21、/staff/M.Handley/sdp.03.ps e=mjhisi.edu (Mark Handley) c=IN IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 3456 RTP/AVP 0 请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第13页,共25页m=video 2232 RTP/AVP 31 m=whiteboard 32416 UDP WB a=orient:portrait DESCRIBE的响应消息必须包含所有的媒体初始化信息。对于基于 RTSP的系统,媒体初始化是必须的,
22、但是并不一定要通过DESCRIBE消息来得到,这里是一个 RTSP的客户端得到初始化信息的三种方式: 通过RTSP的DESCRIBE 一些其它的协议,如HTTP,email attachment等 命令行方式3.4.3 SETUPSETUP请求用于指定流媒体使用的传输机置。在请求消息中会指定客户端在数据传输时相关的传送参数,而在响应消息中将包含由服务器端所指定的传输参数。服务器端在回复SETUP消息时将会生成一个session ID. 例子:C-S: SETUP rtsp:/ RTSP/1.0 CSeq: 302 Transport: RTP/AVP;unicast;client_port=4
23、588-4589 S-C: RTSP/1.0 200 OK CSeq: 302 Date: 23 Jan 1997 15:35:06 GMT Session: 47112344 Transport: RTP/AVP;unicast; client_port=4588-4589;server_port=6256-6257 服务器端在回复SETUP消息时将会生成一个session ID. 3.4.4 PLAYPLAY消息是告诉服务器端可以使用在SETUP 消息中所指定的传输机置开始传送数据。需要指出的是,客户端不应该发送任何PLAY请求直到所有的SETUP消息被成功解析。PLAY消息会在range
24、中指定媒体的播放时间,服务器在接到PLAY消息后会由 range中指定的开始点开始发送媒体数据直到range 中指定的结束点。所有的PLAY消息都是必须按顺序被处理的,即当一个PLAY的请求到达时,而上一个PLAY 请请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第14页,共25页求还未完成,后面的PLAY请求将被延时,直到第一个PLAY处理完成时才会被处理。例子:C-S: PLAY rtsp:/ RTSP/1.0 CSeq: 835 Session: 12345678 Range: npt=10-153.4.5 PAUSEPAUSE消息是用于暂时中断流媒体的传送。 当暂
25、停的时间过长(这个值应在SETUP消息中由timeout参数指定),服务器可以自动断开这个会话,释放所占用的资源。例子: C-S: PAUSE rtsp:/ RTSP/1.0 CSeq: 834 Session: 12345678 S-C: RTSP/1.0 200 OK CSeq: 834 Date: 23 Jan 1997 15:35:06 GMT 服务器不是必须要支持PAUSE 信令的,例如,对于直播的节目,就可以不支持暂停。当一个服务器不支持某一个信令时,必须要返回给客户端以“501 Not Implemented”的响应消息,并且客户端应该不再尝试向服务器端发送这个请求。3.4.6
26、TEARDOWNTEARDOWN消息是用于停止媒体数据的传送,并释放所占用的资源。例子: C-S: TEARDOWN rtsp:/ RTSP/1.0 CSeq: 892 Session: 12345678 S-C: RTSP/1.0 200 OK CSeq: 892 请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第15页,共25页3.5 Header Field 解析在每个消息中都会包含一定的字段用于描述一些信息。Type ”g” 指通用,在请求消息和响应消息中都可能出现Type “R” 指请求消息Type “r” 指响应消息Type “e” 指实体头字段头 类型 支持
27、信令Accept R opt. entityAccept-Encoding R opt entityAccept-Language R opt allAllow r opt. allAuthorization R opt. allBandwidth R opt allBlocksize R opt. all but OPTIONS, TEARDOWNCache-Control g opt. SETUPConference R opt SETUPConnection g req allContent-Base e opt. entityContent-Encoding e req. SET_PA
28、RAMETERContent-Encoding e req. DESCRIBE, ANNOUNCEContent-Language e req DESCRIBE, ANNOUNCEContent-Length e req. SET_PARAMETER, ANNOUNCEContent-Length e req. entityContent-Location e opt entityContent-Type e req. SET_PARAMETER, ANNOUNCEContent-Type r req. entityCSeq g req AllDate g opt. AllExpires e
29、opt. DESCRIBE, ANNOUNCEFrom R opt. AllIf-Modified-Since R opt. DESCRIBE, SETUPLast-Modified e opt. EntityProxy-Authenticate Proxy-RequireR req. AllPublic r opt. All请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第16页,共25页Range R opt PLAY, PAUSE, RECORDRange r opt. PLAY, PAUSE, RECORDReferer R opt. AllRequire R re
30、q. AllRetry-After r opt. AllRTP-Info r req. PLAYScale Rr opt. PLAY, RECORDSession Rr req. all but SETUP, OPTIONSServer r opt. AllSpeed Rr opt. PLAYTransport Rr req. SETUPUnsupported r req. AllUser-Agent R opt. AllVia g opt. AllWWW-Authenticate r opt. All表2:RTSP头字段简述下面简要介绍一些在RTSP中常用到的头字段,详细的信息请查看RFC
31、2326。3.5.1 AcceptAccept字段可用于指定可被接受的描述类型例子: Accept: application/rtsl, application/sdp;level=23.5.2 CseqCseq域指定一对RTSP请求-响应消息的序列号。在请求消息及响应消息中一定要指定这个域。对于请求消息,会有一个具有相同Cseq域内容的响应消息与之对应。例子:C-S: SETUP rtsp:/ RTSP/1.0 CSeq: 302 Transport: RTP/AVP;unicast;client_port=4588-4589 S-C: RTSP/1.0 200 OK 请输入文档名称 请输入
32、密级2014-10-27 版权所有,侵权必究 第17页,共25页CSeq: 302 Date: 23 Jan 1997 15:35:06 GMT Session: 47112344 Transport: RTP/AVP;unicast; client_port=4588-4589;server_port=6256-6257 3.5.3 RangeRange用于在请求消息和响应消息中指定播放的时间段。例子:: Range: clock=19960213T143205Z-;time=19970123T143720Z3.5.4 RTP-Info这个域用于在回复PLAY消息中指定RTP特殊的参数url
33、: 与设置的RTP参数对应的流媒体链接seq: 流媒体第一个包的序列号rtptime: 用于回复range 域对应的 RTP时间戳RTP-Info语法结构: RTP-Info = “RTP-Info“ “:“ 1#stream-url 1*parameterstream-url = “url“ “=“ urlparameter = “;“ “seq“ “=“ 1*DIGIT| “;“ “rtptime“ “=“ 1*DIGIT例子:RTP-Info:url=rtsp:/ 3.5.5 SessionSession域在请求与响应消息中用于识别一个RTSP会话(RTSP session即一个完整的R
34、TSP交互过程。例如:在点播流媒体时,一个典型的会话过程包括一个客户建立一个传输通道(SETUP),用 PLAY开始传输流,最后用TEARDOWN来断开这个连接)。一旦客户端接收到Session标识,在这个会话中的任何请求都需要附加这个域。Session语法结构:Session = “Session“ “:“ session-id “;“ “timeout“ “=“ delta-seconds 例子:Session: 12345678请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第18页,共25页3.5.6 Transport这个域在请求消息中是标识哪一种传输协议将被使用
35、,并指定一些在描述说明中没有指定的参数的值。使用的传输协议之间用逗号分隔,参数之间用分号分隔常用参数:unicast | multicast: 单播还是组播(缺省值为multicast).destination: 指定流将被传送到到哪个地址port: (RTP协议):指定RTP/RTCP端口号(multicast)。一般为一个范围。e.g., port=3456-3457.Client_port: 客户端选择的用于接收媒体数据及控制信息的单播 RTP/RTCP端口号。e.g., port=3456-3457Server_port: 服务器端用于接收媒体数据和控制信息的单播 RTP/RTCP端口
36、号。e.g., port=3456-3457例子: Transport:RTP/AVP;multicast;ttl=127;mode=“PLAY“, RTP/AVP;unicast;client_port=3456-3457;mode=“PLAY“3.5.7 User-Agent这个域用于用户标识,不同公司或是型号的手机发出的消息中的这个域的内容都不大相同。有时会指出手机的版本号,播放器的型号等等。在HMS 中的 terminal.xml文件就是根据这个域中的内容来完成简单的终端适配的功能。例子:User-Agent:01056SS68001117616022101802836055;14;4
37、1;4578;327;13824;0;1;0x0202;0x00000B;0x0280104 移动流媒体与RTSP移动流媒体技术就是把连续的影像和声音信息经过压缩处理后放到网络服务器上,让移动终端用户能够一边下载一边观看、收听,而不需要等到整个多媒体文件下载完成就可以即时观看的技术。实际上移动流媒体技术是网络音视频技术和移动通讯技术发展到一定阶段的产物,它是融合很多网络技术之后所产生的技术,它会涉及到流媒体数据的采集、压缩、存输以及网络通信等多项技术。它大致分为下面两大类业务类型:请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第19页,共25页 流媒体点播(VOD)内容提
38、供商将预先录制好的多媒体内容编码压缩成相应格式,存放在内容服务器上并把内容的描述信息以及链接放置在流媒体的portal上。最终用户就可以通过访问portal,发现感兴趣的内容,有选择的进行播放。 流媒体直播流媒体编码服务器将实时信号编码压缩成相应的格式,并经由流媒体服务器分发到用户的终端播放器。根据实时内容信号源的不同,又可以分为电视直播、远程监控等。对于点播和直播,都是使用的RTSP协议。下面我们介绍在实际应用中RTSP 消息是如何交互来完成点播或是直播功能。4.1 点播流程一个移动用户使用手机通过访问网页得到URI ,在URI 中指定了流媒体服务器的地址及想要访问的媒体内容。通过RTSP
39、SETUP消息来建立客户端与流媒体服务器之间的连接,然后客户端通过发送一个RTSP PLAY的消息来通知服务器开始传送一个或多个媒体流。具体消息交互过程如下:UE SGSNMedia ServerWAP/Web serverGet Web/WAP Page with URIRTSP:DESCRIBE ( get content description file)RTSP:SETUPRTSP:SETUPRTSP:PLAYRTSP:PAUSERTSP:TEARDOWNIP/UDP/RTP content图2 RTSP消息交互请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第20
40、页,共25页每次客户端发送一个请求消息,服务器端都会回一个相应的响应消息。1. 手机通过上网得到带有流媒体地址的网页,并点播一个节目2. 手机上发RTSP:DESCRIBE的消息给服务器,服务器处理其中的URL链接,得到相应文件的SDP信息,附加在响应消息中返回给手机。如果此时服务器找不到手机想要点播的文件,就会回应400的错误给手机,显示文件不存在。3. 手机根据收到的SDP的信息向服务器发送RTSP:SETUP消息,与服务器建立连接。如果媒体文件包含音频和视频,就会有两次SETUP的交互消息。一个是音频的信息,一个是视频的信息。如果交互成功,服务器会发送200的OK消息给手机4. 手机在S
41、ETUP消息执行成功后,会向服务器发送RTSP:PLAY 的消息,要求服务器开始发送数据。服务器在收到PLAY消息后,即会开始传送UDP/RTP包。5. 如果在播放过程中需要暂停,手机会发送RTSP:PAUSE的消息给服务器,服务器在收到暂停消息后,即会停止发数据包,手机停止播放。如果需要继续播放,手机只需要再发送RTSP:PLAY的消息给服务器,服务器根据暂停的位置继续开始播放。6. 当播放完成后,手机会自动向服务器发送RTSP:TEARDOWN消息,当服务器收到下线消息后,就会断开与手机的连接,释放所占用的资源。7. 点播过程结束。4.2 SDP在播放过程中,手机得到内容的相关信息是很重要
42、的,如果这些内容不正确,也会影响播放的正确性,下面简要介绍一下SDP。SDP文件(Session Description Protocol)包含了会话的描述,媒体类型,媒体的码率。客户端通过RTSP DESCRIBE来得到SDP文件。RTSP需要一个内容的描述。而SDP就被用于客户端与服务端的一种内容描述的格式。在传送给客户的SDP内容应该声明了这个对话所要访问的媒体内容的媒体编码类型。对于流媒体服务而言,以下几个域是在SDP中一定要包含的。“a=control:”“a=range:”“a=rtpmap:”“a=fmtp:”例子:v=0o=ghost 2890844526 2890842807
43、 IN IP4 192.168.10.10s=3GPP Unicast SDP Example请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第21页,共25页i=Example of Unicast SDP fileu=http:/ IP4 0.0.0.0b=AS:128t=0 0a=range:npt=0-45.678m=video 1024 RTP/AVP 96b=AS:128a=rtpmap:96 H263-2000/90000a=fmtp:96 profile=3;level=10a=control:rtsp;/ rtsp:/ip:port/broadcast.s
44、dp就可以进行直播节目的播放,这里的sdp文件里的内容就是上面所提到的这些。它将我们在建立直播源时所设置的音、视频编码,及相应的码率记录下来存在broadcast.sdp 文件中,这样手机在进行进播时,得到了相关的SDP信息,然后根据这些信息与服务器建立连接。4.3 数据传送控制及媒体数据的传送是通过TCP/IP和UPD/IP上完成的,下图是一个协议栈的简单描述。媒体数据被打包成RTP包进行传送。IP UDP TCP RTP RTSP Payload formats Video Audio Speech Scene description Presentation description St
45、ill images Bitmap graphics Vector graphics Text HTTP Presentation description UDP 请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第22页,共25页图3 协议栈的简单描述4.4 消息流程下面让我们来看一个具体的消息交互过程。我们可以通过ETHEREAL 或是TCPDUMP这些抓包工具来获得这些信息。c-s【向服务器请求SDP信息】【DESCRIBE】 DESCRIBE rtsp:/211.94.164.227/3.3gp RTSP/1.0【交互标识】 CSeq: 1【请求内容】 Accept:
46、 application/sdp【用户标识】 User-Agent:01056SS68001117616022101802836055;14;41;4578;327;13824;0;1;0x0202;0x00000B;0x028010s-c 【服务端返回SDP 信息 】【成功响应】 RTSP/1.0 200 OK【服务器版本号】 Server: HMS Mobile V100R001B08D023【交互标识】 CSeq: 1【SDP长度】 Content-Length: 625【包含内容类型】 Content-Type: application/sdp【包含内容信息】 Content-Base
47、: rtsp:/211.94.164.227/3.3gp/【以下为SDP内容】【SDP版本号】 v=0【服务器信息】 o=StreamingServer 3276474929 1067418948000 IN IP4 10.70.139.108【文件名】 s=3.3gp【URL】 u=rtsp:/211.94.164.227/3.3gp【e-mail 】 e=admin【IPv4】 c=IN IP4 0.0.0.0t=0 0【控制属性】 a=control:rtsp:/211.94.164.227/3.3gp【视频信息】 m=video 0 RTP/AVP 96【媒体类型】【视频带宽】 b=A
48、S:16【视频格式】 a=rtpmap:96 MP4V-ES【格式】/90000【采样率】请输入文档名称 请输入密级2014-10-27 版权所有,侵权必究 第23页,共25页【视频格式】 a=fmtp:96 profile-level-id=8; config=000001B008000001B50EA020202F000001000000012000C788BA9850584121463Fa=mpeg4-esid:201【厂家信息】 a=x-envivio-verid:00011118【视频轨道】 a=control:trackID=65737【音频信息】 m=audio 0 RTP/AVP 97【媒体类型】【音频带宽】 b=AS:19【音频格式】 a=rtpmap:97 MP4A-LATM【格式 】/11025 【采样率】/1a=fmtp:97 profile-level-id=15; object=2; cpresent=0; config=40002A103FC0a=mp