android rtsp流媒体播放介绍

上传人:ji****72 文档编号:37523196 上传时间:2018-04-17 格式:DOC 页数:11 大小:119KB
返回 下载 相关 举报
android rtsp流媒体播放介绍_第1页
第1页 / 共11页
android rtsp流媒体播放介绍_第2页
第2页 / 共11页
android rtsp流媒体播放介绍_第3页
第3页 / 共11页
android rtsp流媒体播放介绍_第4页
第4页 / 共11页
android rtsp流媒体播放介绍_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《android rtsp流媒体播放介绍》由会员分享,可在线阅读,更多相关《android rtsp流媒体播放介绍(11页珍藏版)》请在金锄头文库上搜索。

1、android rtsp 流媒体播放介绍一、rtsp 协议介绍:.1 二、RTP 协议介绍:.6 三、Android rtsp 播放的设计:.7 四、时间戳同步:.9一、 rtsp 协议介绍:该协议用于 C/S 模型,是一个基于文本的协议,用于在客户端和服务器端建 立和协商实时流会话。实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP 提供了 一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。数据 源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接, 为选择发送通道,如 UDP、组播 UDP 与 TCP,提供途径,并为选择基于 RTP 上发送机制提

2、供方法。实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体。尽 管连续媒体流与控制流交换是可能的,通常它本身并不发送连续流。换言之, RTSP 充当多媒体服务器的网络远程控制。RTSP 连接没有绑定到传输层连接, 如 TCP。在 RTSP 连接期间,RTSP 用户可打开或关闭多个对服务器的可传输 连接以发出 RTSP 请求。此外,可使用无连接传输协议,如 UDP。RTSP 流控 制的流可能用到 RTP,但 RTSP 操作并不依赖用于携带连续媒体的传输机制。协议支持的操作如下:(1)从媒体服务器上检索媒体:用户可通过 HTTP 或其它方法提交一个演 示描述。如演示是组播,演示式就包含

3、用于连续媒体的的组播地址和端口。如 演示仅通过单播发送给用户,用户为了安全应提供目的地址。(2)媒体服务器邀请进入会议:媒体服务器可被邀请参加正进行的会议, 或回放媒体,或记录其中一部分,或全部。这种模式在分布式教育应用上很有 用,会议中几方可轮流按远程控制按钮。 (3)将媒体加到现成讲座中:如服务器告诉用户可获得附加媒体内容,对 现场讲座显得尤其有用。如 HTTP/1.1 中类似,RTSP 请求可由代理、通道与 缓存处理。RFC 2326 Real Time Streaming Protocol April 1998method direction object requirementDES

4、CRIBE C-S P,S recommendedANNOUNCE C-S, S-C P,S optionalGET_PARAMETER C-S, S-C P,S optionalOPTIONS C-S, S-C P,S required(S-C: optional)PAUSE C-S P,S recommendedPLAY C-S P,S requiredRECORD C-S P,S optionalREDIRECT S-C P,S optionalSETUP C-S S requiredSET_PARAMETER C-S, S-C P,S optionalTEARDOWN C-S P,S

5、requiredRTSP 命令的状态转换表命令的状态转换表Example:C-S: OPTIONS * RTSP/1.0CSeq: 1S-C: RTSP/1.0 200 OKCSeq: 1Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSEExample:C-S: DESCRIBE rtsp:/ RTSP/1.0CSeq: 312Accept: application/sdp, application/rtsl, pplication/mhegS-C: RTSP/1.0 200 OKCSeq: 312Date: 23 Jan 1997 15:35:06

6、GMTContent-Type: application/sdpContent-Length: 376v=0o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4s=SDP Seminari=A Seminar on the session description protocolu=http:/www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.pse=mjhisi.edu (Mark Handley)c=IN IP4 224.2.17.12/127t=2873397496 2873404696a=recvonlym

7、=audio 3456 RTP/AVP 0m=video 2232 RTP/AVP 31m=whiteboard 32416 UDP WBa=orient:portraitC-S: SETUP rtsp:/ RTSP/1.0CSeq: 302Transport: RTP/AVP;unicast;client_port=4588-4589S-C: RTSP/1.0 200 OKCSeq: 302Date: 23 Jan 1997 15:35:06 GMTSession: 47112344Transport: RTP/AVP;unicast;client_port=4588-4589;server

8、_port=6256-6257C-S: PLAY rtsp:/ RTSP/1.0CSeq: 835Session: 12345678Range: npt=10-15C-S: PLAY rtsp:/ RTSP/1.0CSeq: 836Session: 12345678Range: npt=20-25C-S: PLAY rtsp:/ RTSP/1.0CSeq: 837Session: 12345678Range: npt=30-S-C: RTSP/1.0 200 OKCSeq: 835Date: 23 Jan 1997 15:35:06 GMTC-S: TEARDOWN rtsp:/ RTSP/1

9、.0CSeq: 892Session: 12345678S-C: RTSP/1.0 200 OKCSeq: 892二、RTP 协议介绍:RTP 报文格式RTP 报文由两部分组成:报头和有效载荷。RTP 报头格式如图 6.7 所示,其中: V:RTP 协议的版本号,占 2 位,当前协议版本号为 2。 P:填充标志,占 1 位,如果 P=1,则在该报文的尾部填充一个或多个额外 的八位组,它们不是有效载荷的一部分。 X:扩展标志,占 1 位,如果 X=1,则在 RTP 报头后跟有一个扩展报头。 CC:CSRC 计数器,占 4 位,指示 CSRC 标识符的个数。 M: 标记,占 1 位,不同的有效载荷

10、有不同的含义,对于视频,标记一帧的 结束;对于音频,标记会话的开始。 同步信源(SSRC)标识符:占 32 位,用于标识同步信源。该标识符是随机 选择的,参加同一视频会议的两个同步信源不能有相同的 SSRC。 特约信源(CSRC)标识符:每个 CSRC 标识符占 32 位,可以有 015 个。 每个 CSRC 标识了包含在该 RTP 报文有效载荷中的所有特约信源。 PT: 有效载荷类型,占 7 位,用于说明 RTP 报文中有效载荷的类型,如 GSM 音频、JPEM 图像等。 序列号:占 16 位,用于标识发送者所发送的 RTP 报文的序列号,每发送 一个报文,序列号增 1。接收者通过序列号来检

11、测报文丢失情况,重新排序报 文,恢复数据。 时戳(Timestamp):占 32 位,时戳反映了该 RTP 报文的第一个八位组的采 样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。VPXCCMPT序列号时戳同步信源(SSRC)标识符特约信源(CSRC)标识符 这里的同步信源是指产生媒体流的信源,它通过 RTP 报头中的一个 32 位数字 SSRC 标识符来标识,而不依赖于网络地址,接收者将根据 SSRC 标识符来区 分不同的信源,进行 RTP 报文的分组。特约信源是指当混合器接收到一个或多 个同步信源的 RTP 报文后,经过混合处理产生一个新的组合 RTP 报文,并把 混合器作为组

12、合 RTP 报文的 SSRC,而将原来所有的 SSRC 都作为 CSRC 传 送给接收者,使接收者知道组成组合报文的各个 SSRC。 在发送端,上层应用程序以分组形式将编码后的媒体数据传给 RTP 通信模块, 作为 RTP 报文的有效载荷,RTP 通信模块将根据上层应用提供的参数在有效 载荷前添加 RTP 报头,形成 RTP 报文,通过 Socket 接口选择 UDP 协议发送 出去。在接收端,RTP 通信模块通过 Socket 接口接收到 RTP 报文后,将 RTP 报头 分离出来作相应处理,再将 RTP 报文的有效载荷作为数据分组传递给上层应用。三、Android rtsp 播放的设计:R

13、tsp 播放涉及到 rtsp 与 rtp/rtcp 两个协议,rtsp 用于控制流的交互,rtp 用于数据流的 包的封装;在 android 里 MyHandle 做为一个引擎控制这两路流,ARTSPConnection 用于 rtsp 的处理,ARTPConnection 用于接收 rtp 数据,ARTPAssembler 的子类负责对 rtp 数据解析。解析完的数据上传到 MyHandle 的缓冲中,RTSPSource 从缓冲列表里读取数据给解码器使 用。数据流图ARTSPConnectionARTPConnectionARTPSourceARTPAssemblerRtsp 流程处理注:黑色的是 tcp 方式,蓝色的 udp 方式来接收。下面以 h264 的流的 rtp 封装的方式来说明 rtp 协议对音视频数据的封装, rfc39

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号