下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
rsp视频点播系统的服务器和客户端设计
随着计算机和计算机的快速发展,以及5g等高速移动通信技术的逐步成熟,尤其是高速访问网络、高速网站和宽带结构网络等先进网络技术的出现,多媒体通信技术的网络应用得到了迅速发展。在基于Internet的计算机网络上,流媒体技术越来越广泛地应用于视频点播系统。而基于RTSP协议的视频点播系统已被广泛应用到视频点播,视频会议,远程教育等许多领域。视频点播系统一般分为文件共享方式、下载方式、流媒体传输方式三种系统。文件共享方式和下载方式是通过共享媒体文件和下载媒体文件等获取数据,属于非流式系统。使用流式传输技术的连续时基媒体,如音频、视频或多媒体文件,其核心部分是传输协议和文件格式。流式传输的实现有特定的实时传输协议,其中包括Internet本身的多媒体传输协议,以及一些实时流式传输协议等。通常,需要根据实际情况选取合适的实时传输协议以保证流媒体的传输质量,从而更好地发挥流媒体的作用。1rtps协议体系1.1rtsp的数字视频传输协议实时流协议(Real-TimeStreamingProtocol,RTSP)是由RealNetworks和Netscape共同提出的,该协议定义了一对多的应用程序如何有效地通过IP网络传送多媒体数据的方法。RTSP在体系结构上位于实时传输协议(ATransportProtocolforReal-TimeApplications,RTP)和实时传输控制协议(RealTimeControlProtocol,RTCP)之上,它使用TCP或UDP完成数据传输。RTSP是一个客户-服务器多媒体节目协议,用于建立并控制一个或几个时间同步的连续视频、音频流的连接。尽管用RTSP交叉传输连续媒体流和控制流是可能的,但通常它用来控制流式多媒体数据在IP网络上的发送,而并不用于连续媒体流的传输。它提供用于音频和视频流的远程控制功能,例如:播放、暂停、关闭等。RTSP是一个应用层协议,用来与RTP、RTCP等更低层的协议一起,提供基于Internet的整套流化服务。它可以选择发送通道(例如:UDP、组播UDP和TCP)和基于RTP的发送机制。1.2rtsp协议RTSP协议位于RTP和RTCP之上,它使用TCP或UDP完成数据传输,其体系结构如图1所示。目前,支持基于IP的流媒体网络协议主要有实时传输协议RTP、实时传输控制协议RTCP、实时流协议RTSP、资源预留协议(ResourceReservationProtocol,RSVP)和会话描述协议(SessionDescriptionProtocol,SDP)。RTSP协议主要用于媒体播放客户端和媒体服务器之间的网络远程控制。RTSP可以使用TCP连接协议也可以使用UDP连接协议,主要根据传输的数据类型来决定。RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。1.3状态行下的支持功能RTSP中的所有操作都是通过服务器和客户端的消息应答来完成的,其消息包括请求和应答两类.请求消息的格式如图2。请求消息由请求行、标题行中的各种标题域和主体实体组成。请求行和标题行由ASCII字符组成。图2中的sp域、cr域和lf域分别代表空格字符、回车字符和换行字符。其中的method表示请求命令,主要有以下几种命令。OPTIONS:客户端或服务器端通知另一方自己能接受的选项;DESCRIBE:客户端通过向服务器发送请求URL,接受指定的节目描述或媒体对象;SETUP:让服务器给流分配资源,启动RTSP连接;PLAY:启动SETUP分配流的数据传输;TEARDOWN:释放流的资源,RTSP连接停止。除了状态行之外,RTSP应答消息格式与请求消息的格式相同。状态行包含RTSP的版本号,状态码<statuscode>和短语<phrase>,它们组合起来表示客户请求所获得的结果。RTSP客户机和服务器之间的协议交互开始于OPTION请求/应答,然后客户机为它感兴趣的媒体流发送一个DESCRIBE请求。从服务器返回的应答消息可获得关于这个流的具体信息,比如编码方式等。然后客户端发送一个SETUP请求,其中包括协议集和端口号,客户端通过这些协议集和端口来接收媒体流,服务器把选中的协议和端口应答给客户端。客户端再发送PLAY命令告知服务器通过先前商定的协议来传输数据,还可以发送PAUSE来临时暂停传送,发送TEARDOWN表示结束会话。整个交互过程如图3所示。2rtbs协议流畅系统2.1流媒体金属点火系统流媒体视频点播系统是一种为用户提供实时视频点播服务的分布式多媒体系统,它一般由媒体点播服务器、通信网络和用户端前设备(客户)组成.流媒体点播系统的功能示意如图4所示。2.2流媒体服务的上传机制流媒体在播放前不是完全下载整个文件,而是把开始部分内容存入内存,数据流是随时传送随时播放。当服务器收到RTSP请求,它首先产生RTSP请求对象。服务器通过RTSP协议的应答信息将请求的内容以流会话的形式描述,一个流会话由一个或多个数据流组成,如视频流和音频流等。实际的数据流通过RTP协议传递到客户端。RTP在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP本身并不能为顺序传送数据包提供可靠的传送机制,它依靠RTCP一起提供流量控制和拥塞控制服务。在RTP会话期间,各连接者监视下层网络的性能,并将相关信息放入RTCP包,周期性地传送RTCP包来通知发送方。发送方也可以用RTCP包提供每次的会话信息,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,因有效的反馈和最小的开销使传输效率实现最佳化。所有的客户连接请求都是以TCP的端口获得的,流媒体数据也都是打成RTP包,通过UDP端口发出去的,因此,对于TCP、UDP端口事件的调度以及如何把大量的流媒体数据从磁盘空间传递到网络上成为制约流媒体服务器性能的主要因素。流媒体服务器面对一个单一的客户,完成的过程如下:①在客户端发出RTSP连接请求后,服务器通过对TCP端口的监听,读入请求。②解析请求内容,调入相应的流媒体文件。③形成RTP包,分发数据流包,获得RTCP包。④数据包发送完毕,关闭连接。在传输过程中,主要采取的方式是RTPoverTCP或RTPoverUDP,因此,在RTP端口之外,还存在一个回传端口RTCP。在服务器收到客户端的RTCP回传信息后,需要对其进行判断。如果客户端的丢包率、解码率等指标在一定限度之下,就认为目前传送的视频文件可令客户端获得最大程度的音视频享受;否则,考虑改为传输更低码率的视频文件或放弃这次RTSP会话,以避免更大范围的拥塞。2.3实时视频发布如图4,客户端主要通过与服务器建立连接,用RTP协议接收媒体数据流,并在本地进行实时播放,同时反馈给服务器相关的信息。主要完成的过程如下:①在客户端发出RTSP连接请求。②接收服务器发送过来的RTP包,并进行音视频数据分离、解码、播放,同时发送RTCP包。③数据包接收完毕,关闭连接。3rtbs协议的交付系统设计与实现3.1客户端接收媒体流算法设计目前RTSP协议的实现方式很多,下面以一个开源代码实现的基于RTP/RTCP/RTSP的标准流媒体协议库live为例,对在嵌入式Linux平台上,开发实现低成本的流媒体点播系统进行介绍。本实例提供了一个C/S结构的软件开发流程,服务器发送媒体流数据,客户端接收媒体流数据,进行本地的播放输出,并可以进行暂停,播放等操作的远程控制。在嵌入式Linux平台上实现服务器广播媒体流数据开发步骤如下:①通过createNew函数初始化任务管理的一个对象TaskScheduler,统一管理事件循环和异步事件的处理。②创建一个RTSPServer对象,为RTSP协议的操作和管理提供统一的接口。主要包括RTSP服务器要处理的每个客户端任务的状态,以及各类命令解析函数(包括handleCmd_OPTIONS,handleCmd_DESCRIBE,handleCmd_SETUP,handleCmd_PLAY,handleCmd_TEARDOWN,handleCmd_PAUSE等)。③创建一个服务器任务ServerMediaSession,加入一个所要广播的子任务,可供客户端点播。④通过doEventLoop()函数进入事件循环,等待网络数据,如果有RTSP客户端请求,则接收,解析相应的命令,并对不同的命令做不同的处理,主要有SETUP、PLAY、PAUSE等操作。如果是播放命令,则通过调用subsession->startStream()函数建立RTP连接,向客户端发送数据。在嵌入式Linux平台上实现客户端接收媒体流数据开发步骤如下:①通过createNew函数初始化任务管理的一个对象TaskScheduler,统一管理事件循环和异步事件的处理。②客户端给服务器发送OPTION,DESCRIBE请求。③创建子任务队列,并为每个子任务创建一个RTPSource对象。④通过setupStreams函数为每个子任务向服务器发送SETUP请求。⑤为每个子任务创建一个文件接收器,可以保存接收到的数据,也可以不保存,直接播放。⑥通过startPlayingStreams函数,发送PLAY命令,开始播放媒体流,并通过doEventLoop()进入事件循环,连续播放。3.2sc妇人系统的软件设计本系统的开发和调试环境如下:硬件环境:基于IntelXscale嵌入式处理器的硬件系统。软件环境:①Montavista嵌入式Linux平台。②LiveNetworks公司的开源Live库。③开源ffmpeg系列编解码库。3.3网络级调试在系统开发过程中,主要采用分块调试的方法。整个视频点播系统可分为网络和本地解码显示两大模块。其中网络级调试采取单级调试和联调的方法。客户端通过抓网络数据包的方式调试,等发送数据报正确后,再与服务器联调,也是通过抓包方式调试。网络级测试通过后,即可进行本地解码模块的调试。本地解码后,采用直接写屏的方式显示视频数据。因此显示部分可以根据显示效果,遇到问题逐个往前查找原因。3.4视频节目的正常观看在调试过程中,曾遇到丢包
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年膜分离制氮设备投资申请报告
- 2023年高品质研磨碳酸钙浆料投资申请报告
- 2024年混凝土搅拌机项目资金申请报告代可行性研究报告
- 第七章 环境规划与管理的政策、法规、制度、标准和管理体系课件
- 大病救治自查报告
- 生物安全自查报告
- 2024年商铺转租协议范本
- 单位资金周转借款协议范本2024
- 2024年度综合经济服务协议模板
- 2024年个人借款协议范本协议
- 饲料行业会计科目表B
- 河北省保定市药品零售药店企业药房名单目录
- 广西基本医疗保险门诊特殊慢性病申报表
- 分包单位资格报审表-填写模板
- 城市经济学习题与答案
- 马工程《马克思主义发展史》课后习题答案
- 《培养良好的卫生习惯》主题班会(30张)课件
- 医学学员沟通和接诊能力面试评分表
- 创业指导师培训计划
- 幼儿园中班数学《有趣的图形》课件
- 四年级上册数学课件-4.6 整数的四则运算(运算定律)▏沪教版 (共15张PPT)
评论
0/150
提交评论