Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 学习教育 > 流媒体服务器理论知识

流媒体服务器理论知识

收藏

本作品内容为流媒体服务器理论知识,格式为 doc ,大小 59392 KB ,页数为 8页

流媒体服务器理论知识


('流媒体服务器流媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕。由于流媒体技术的优越性,该技术广泛应用于视频点播、视频会议、远程教育、远程医疗和在线直播系统中。作为新一代互联网应用的标志,流媒体技术在近几年得到了飞速的发展。而流媒体服务器又是流媒体应用的核心系统,是运营商向用户提供视频服务的关键平台。其主要功能是对媒体内容进行采集、缓存、调度和传输播放,流媒体应用系统的主要性能体现都取决于媒体服务器的性能和服务质量。因此,流媒体服务器是流媒体应用系统的基础,也是最主要的组成部分。主要产品流媒体服务器:大并发视频服务器、直播时移服务器、P2P直播服务器、视频交互应用服务器视频应用管理:媒体内容管理系统、H.264/MPEG-4编码工具、机顶盒终端管理系统、节目导航与发布系统如何架设流媒体服务器一、前言随着越来越多的朋友开始选择ADSL、CableModem或FTTB+LAN作为首要的上网方式,宽频时代即将到来,这使我们“宽频KTV、影音聊天室、线上电影院、远程教育”的梦想即将成为现实,而与其密切相关的“流媒体(StreamingMedia)”也成了许多人谈论的热门话题,因为“流媒体”正是实现这些宽频应用的技术动力。宽频时代的到来还使得网民们不再满足于仅仅作为一项服务的受众,他们需要更大规模的交流,从中体现个体的价值,因此,许多朋友开始用自己的计算机,搭建网络广播和点播站点。他们充满着满腔的热情,但不可否认的是,中国网民先天技术上的不足,让他们在建设这样的站点时遇到重重险阻,以至于放弃。如何将这种热情在技术的引导下成为动力,这正是我们家用电脑所要做的,所以,在今天,在这里,我就将给大家介绍如何打造属于自己的流媒体服务器。不过,在开始正式的流媒体服务器架设之前,请让我们先了解一下流媒体服务器的基础知识。二、流媒体基础知识什么是流媒体?目前,在网络上传输音/视频等多媒体信息有两种解决方案,即http或ftp下载以及流式传输。http或ftp下载使用标准的http和ftp协议,但由于多媒体信息个头巨大,下载一个多媒体文件一般需要几分钟或几小时的时间,这就造成为了看一个并不知道内容的视频,首先需要耗费可能比整个视频都要长的时间来完成下载。这些被下载的文件还必须在下载前制作完成,放在网络服务器上,这样造成的直接后果就是:网络带宽不断提高,人们下载的等待时间越来越少,但最终还是不能观看网上现场直播。流式传输时,声音、影像或动画等多媒体信息由流媒体服务器向用户计算机连续、实时传送,它首先在使用者端的电脑上创建一个缓冲区,于播放前预先下载一段资料作为缓冲,用户不必等到整个文件全部下载完毕,而只需经过几秒或十数秒的启动延时即可进行观看。当多媒体信息在客户机上播放时,文件的剩余部分将在后台从服务器内继续下载。如果网络连接速度小于播放的多媒体信息需要的速度时,播放程序就会取用先前建立的一小段缓冲区内的资料,避免播放的中断,使得播放品质得以维持。流式传输除了能够发送已经制作完成的文件外,还可以通过采集服务器实时采集现场音视频,推送到流媒体服务器端,实时提供给用户。因此,流媒体除了能够更好的承担如下载一样的多媒体点播服务外,更能够应用在现场直播、电视转播、突发事件报道等多种对实时性传输要求较高的领域。有关流媒体的厂商流媒体的市场巨大,世界上许多优秀的厂商都加入此行列,现阶段更是系统集成商竞争的风水宝地。而在通用市场上,竞争的公司主要有三个:Microsoft、RealNetworks、Apple,而相应的产品就是:WindowsMedia、RealMedia、QuickTime。而近来,以开发Winamp著名的Nullsoft公司也在自己的MP3服务器中加入了视频支持,欲在流媒体市场分一杯羹。由于Apple的服务器和编辑软件一般都以Mac为操作平台,Nullsoft的流媒体服务器属于新生不成熟事务,所以今天在这里我主要给大家介绍一下Microsoft和RealNetworks的产品。流媒体的传输协议大家在观看网上电影或者电视时,一般都会注意到这些文件的连接都不是用http或者ftp开头,而是一些rtsp或者mms开头的东西,为什么是这样呢?实际上,这些和http和ftp一样,都是数据在网络上传输的协议,只是它们是专门用来传输流式媒体的协议而已。下面,让我们来看一下现在使用的主要的流媒体协议:1.RTSP(RealTimeStreamingProtocol),实时流媒体协议,它是由RealNetworks和Netscape共同提出的,现在用于RealNetworks的RealMedia产品中;2.PNM(ProgressiveNetworksAudio),这也是Real专用的实时传输协议,它一般采用UDP协议,并占用7070端口,但当你的服务器在防火墙内且7070端口被挡,且你的服务器把SmartingNetwork设为真时,则采用http协议,并占用默认的80端口;3.MMS(MicrosoftMediaServerprotocol),这是微软的流媒体服务器协议,MMS是连接WindowsMedia单播服务的默认方法。介绍了主要的三个,可能您还会问,Apple的QuickTime使用哪种协议呢?在多数情况下,QuickTime使用http协议,但实际上它也由标准的流媒体传输协议,这就是标准RTSP协议,而Real公司使用的RTSP是自己经过开发的。在流媒体传输中,标准的协议就是RTP(RealtimeTransportProtocol,实时传输协议)、RTCP(Real-timeTransportControlProtocol,实时传输控制协议)、RTSP(RealTimeStreamingProtocol,实时流媒体协议)和RSVP(ResourceReserveProtocol,资源预订协议),厂商们的产品都是在这些协议的基础上进行研究与开发,限于篇幅,在这里我们就不再深入讨论了。流媒体文件和发布格式有了实时的传输协议,我们应该还能够想到,只有较小的文件才适合网络实时传输,那么,流媒体文件采用了什么样的压缩算法呢?而使用Windows操作系统的朋友可以看到,我们观看网上流节目时,它们的后缀名一般是rm、asf、wmv等,这些就是流媒体的格式。流媒体文件格式经过特殊编码,不仅采用较高的压缩比,还加入了许多控制信息,使其适合在网络上边下载边播放,而不是等到下载完整个文件才能播放。常见的流媒体格式大致有以下几种:流媒体文件格式扩展(Video/Audio)媒体类型与名称asfAdvancedStreamingformat.(Microsoft).rmRealVideo/Audio文件(ProgressiveNetworks).raRealAudio文件(ProgressiveNetworks).rpRealPix文件(ProgressiveNetworks).rtRealText文件(ProgressiveNetworks).swfShockWaveFlash(Macromedia).movQuickTime(Apple公司格式)vivVivoMovie文件(VivoSoftware).另外还有一个wmv格式,是WindowsMediaVideo的简称,它与asf文件有稍许区别,wmv一般采用windowmediavideo/audio格式,asf视频部分一般采用MicrosoftMPG4V(3/2/1?),音频部分是windowsmediaaudiov2/1,不过现在很多制作软件都没有把它们分开,所以直接更改后缀名就能够互相转换为对方格式。制作完成的流媒体文件需要发布到网络上才能够被别人使用,这就需要以特定方式安排压缩好的流媒体文件,而安排流媒体文件的格式就被成为流媒体发布格式。常见的发布格式主要有以下几种:流媒体发布格式扩展媒体类型和名称asfAdvancedStreamingformat.smilSynchronisedMultimediaIntegrationLanguage.ramRAMFile.rpmEmbeddedRAMFile.asxASFStreamRedirector/ASF流转向器文件xmleXtensibleMarkupLanguageMPEG-4与流媒体说到流媒体就不能不提及MPEG-4。MPEG-4是当前讨论的焦点之一,只因为它能够在大的压缩比下实现近似DVD品质的视频和音频效果,这也是许多朋友认为MPEG-4格式肯定比rm清晰的原因。但事实上并不是如此,MPEG-4只是一种视频编码技术,它的清晰度也根据压缩时所选择的码率的不同有较大的改变(我们见到的MPEG-4格式文件通常为500Kbps压缩生成,质量当然高了),并且,MPEG-4还有多种压缩标准,如Microsoft的asf视频部分就是基于MPEG-4的DiscreteCosineTransform(DCT),另外还有DivX的免费MPEG-4版本(开始是破解微软的格式而来)。至于音频部分,更是混乱,Microsoft采用windowsmediaaudiov2/1,DivX采用MP3或者更高质量的AC3等。相比而言,Real或者Apple的格式使用的是自己开发的编码,在相同码率,特别是低码率下,不见得就比MPEG-4差,采取高码率的rm格式照样清晰可人,所以大家以后说rm格式清晰度差的观念要改变一下:),至少也要加上条件。而且,最新的HelixProducer中的RealVideo9采用VP5压缩格式进行编码,这可比DivX优秀多了!不过,流媒体服务器开始向MPEG-4格式靠拢是不争的事实,Real最新的Helix就开始支持mp4格式文件的服务,而RealOnePlayer更是只需安装一个插件便可实现MPEG-4格式的播放。点播与广播在架设流媒体服务器之前,我们一定要了解一些点播与广播的知识。点播是客户端与服务器之间的主动的连接,在点播连接中,用户通过选择内容项目来初始化客户端连接,一个客户端从服务器接收一个媒体流(这个连接是唯一的,其它用户不能占用),并且能够对媒体进行开始、停止、后退、快进或暂停等操作,客户端拥有流的控制权,就像在看影碟一样。这种方式由于每个客户端各自连接服务器,服务器需要给每个用户建立连接,对服务器资源和网络带宽的需求都比较大。广播指的是用户被动接收流。在广播过程中,客户端接收流,但不能控制流,用户不能暂停、快进或后退该流,广播使用的数据发送手段有单播与广播。使用单播发送时,服务器需要将数据包复制多个拷贝,以多个点对点的方式分别发送到需要它的那些用户,而使用广播方式发送,数据包的单独一个拷贝将发送给网络上的所有用户,而不管用户是否需要,上述两种传输方式会非常浪费网络带宽和服务器资源,因此产生了组播(多播)技术。组播(多播)吸收了上述两种发送方式的长处,克服了上述两种发送方式的弱点,将数据包的单独一个拷贝发送给需要的那些客户,组播不会复制数据包的多个拷贝传输到网络上,也不会将数据包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。但组播不仅需要服务器端支持,更需要有多播路由器乃至整个网络结构的支持。单播与组播(多播)在上面我们已经了解了一些单播和组播的概念,这也是现在流媒体方面讨论的焦点之一。以我的认识,点播与广播是一组概念,它们和客户端媒体交互的手段;单播和组播又是另外一组概念,它们是流媒体数据在服务器端和网络上的传输方式。单播发送时,需要在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机,每个用户必须分别对媒体服务器发送单独的查询,而服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余会造成服务器沉重和网络带宽的沉重负担,响应需要很长时间,甚至出现不能服务的情况。单播可以用在点播和广播上。组播发送时,服务器将一组客户请求的流媒体数据发送到支持组播技术的路由器上,然后由路由器一次将数据包根据路由表复制到多个通道上,再向用户发送。这时候,媒体服务器只需要发送一个信息包,所有发出请求的客户端都共享同一信息包,并且信息可以发送到任意地址的客户机,没有请求的客户机不会收到信息包,网络上传输的信息包的总量没有广播那么多,大大提高了服务器和网络线路的利用率。不过组播也有自己的特点,首先是必须要开始支持组播技术的路由器,另外就是一般只能用作广播,因为用作点播会存在用户控制问题。1引言随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、电影播放到远程教学以及在线的新闻网站等都用到了流媒体技术。但现有公开文献所报道的大多是利用现有的流媒体服务器来搭建一个流媒体服务系统,或者是针对流媒体数据的编码方式所进行的研究。本文对流媒体服务器技术的研究重点在于如何建立一个服务器,并且在实现流媒体传输的两个基本协议RTP/RTCP的基础上构建一个基本的流媒体服务器。2流媒体技术简介2.1“流”的定义现在网上传输视频、音频主要有下载(Download)和流式传输(Streaming)两种方式。流式传输是连续传送视/音频信号,当流媒体在客户机播放时其余部分在后台继续下载。流式传输有顺序流式传输(ProgressiveStreaming)和实时流式传输(RealtimeStreaming)两种方式。实时流式传输是实时传送,特别适合现场事件,实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差,以减少对传输带宽的需求。“实时”的概念是指在一个应用中数据的交付必须与数据的产生保持精确的时间关系。在Internet中使用流式传输技术的连续时基媒体就称为流媒体,通常也将其视频与音频称为视频流和音频流。实现流式传输一般都需要专用服务器和播放器。2.2流媒体系统组件流媒体是由各种不同软件构成的,这些软件在各个不同层面上互相通信,基本的流媒体系统包含以下3个组件:播放器(Player),用来播放流媒体的软件。服务器(Server),用来向用户发送流媒体的软件。编码器(Encode),用来将原始的音频视频转化为流媒体格式的软件。这些组件之间通过特定的协议互相通信,按照特定的格式互相交换文件数据。有些文件中包含了由特定编解码器解码的数据,这种编解码器通过特定算法压缩文件的数据量。3流媒体服务器的基本功能和服务方式3.1流媒体服务器的主要功能(1)响应客户的请求,把媒体数据传送给客户。流媒体服务器在流媒体传送期间必须与客户的播放器保持双向通信(这种通信是必需的,因为客户可能随时暂停或快放一个文件)。(2)响应广播的同时能够及时处理新接收的实时广播数据,并将其编码。(3)可提供其他额外功能,如:数字权限管理(DRM),插播广告,分割或镜像其他服务器的流,还有组播。3.2流媒体服务器的服务方式(1)单播。在客户端与媒体服务器之间建立一个单独的数据通道,从1台服务器送出的每个数据包只能传送给1个客户机。(2)组播。在以组播技术构建的网络上,允许路由器一次将数据包复制到多个通道上。(3)点播与广播。点播连接是客户端与服务器之间的主动的连接,在点播连接中,用户通过选择内容项目来初始化客户端连接,用户可以开始、停止、后退、快进或暂停流。广播指的是用户被动地接收流,在广播过程中,数据包的单独一个拷贝将发送给网络上的所有用户,客户端接收流,但不能控制流。4构建流媒体服务器4.1RTP/RTCP协议简介实时传输协议RTP(RealtimeTransportProtocol):是针对Internet上多媒体数据流的一个传输协议,由IETF(Internet工程任务组)作为RFC1889发布。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。实时传输控制协议RTCP(RealtimeTransportControlProtocol):负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。RTCP主要有4个功能:(1)用反馈信息的方法来提供分配数据的传送质量,这种反馈可以用来进行流量的拥塞控制,也可以用来监视网络和用来诊断网络中的问题;(2)为RTP源提供一个永久性的CNAME(规范性名字)的传送层标志,因为在发现冲突或者程序更新重启时SSRC(同步源标识)会变,需要一个运作痕迹,在一组相关的会话中接收方也要用CNAME来从一个指定的与会者得到相联系的数据流(如音频和视频);(3)根据与会者的数量来调整RTCP包的发送率;(4)传送会话控制信息,如可在用户接口显示与会者的标识,这是可选功能。4.2RTP/RTCP工作过程工作时,RTP协议从上层接收流媒体信息码流(如H.263),装配成RTP数据包发送给下层,下层协议提供RTP和RTCP的分流。如在UDP中,RTP使用一个偶数号端口,则相应的RTCP使用其后的奇数号端口。RTP数据包没有长度限制,它的最大包长只受下层协议的限制。4.3服务器的算法服务器软件模型主要有两种,即并发服务器和循环服务器。循环服务器(IterativeServer)是指在一个时刻只处理一个请求的服务器。并发服务器(ConcurrentServer)是指在一个时刻可以处理多个请求的服务器。事实上,多数服务器没有用于同时处理多个请求的冗余设备,而是提供一种表面上的并发性,方法是依靠执行多个线程,每个线程处理一个请求,从客户的角度看,服务器就像在并发地与多个客户通信。由于流媒体服务时间的不定性和数据交互实时性的请求,流媒体服务器一般采用并发服务器算法。本文构建了一个基本的流媒体服务器,能够同时响应多个用户的请求,把本地硬盘流媒体文件或实时数据流(H.263格式)发送给用户。在应用中,把客户分为请求实时数据的实时客户和请求文件数据的文件客户两类。主要算法为:(1)打开设备,分配资源。当设备准备好时,创建一个RTP实时服务线程和一个RTCP实时服务线程。(2)创建一个UDP套接字并将其绑定到所提供服务的地址之上。(3)反复调用接收模块,接收来自客户的RTCP报告,根据其类型做出响应。对新实时客户的请求,把客户地址添加到实时服务的客户列表中,对新文件客户的请求,则创建一个新RTP文件服务线程和一个新RTCP文件服务线程;对已经在服务中的客户则根据RTCP报告的内容调整服务。RTP实时服务线程1:初始化客户列表和RTP首部。RTP实时服务线程2:从设备读取媒体数据,把数据发送给实时服务列表中的客户。RTP实时服务线程3:更新RTP首部和统计数据。RTP实时服务线程4:计算延时,重复第二步。RTCP实时服务线程1:初始化RTCP首部。RTCP实时服务线程2:发送发送方报告给实时服务列表中的客户。RTCP实时服务线程3:计算延时,重复第二步。RTP文件服务线程1:初始化RTP首部。RTP文件服务线程2.:从文件读取媒体数据,把数据发送给客户。RTP文件服务线程3:更新已发送数据的统计信息,为生成发送方报告做准备。RTP文件服务线程4:计算延时,调整发送速度,正常情况下开始重复第二步。RTCP文件服务线程1:初始化RTCP首部,发送一个源描述(SDES)报文给客户。RTCP文件服务线程2:根据已发送数据的统计信息生成发送方报告,发送给客户。RTCP文件服务线程3:计算延时,正常情况下开始重复第一步。5流媒体服务器实现中应注意的问题5.1会话和流的两级分用一个RTP会话(Session)包括传给某个指定目的地对(DestinationPair)的所有通信量,发送方可能包括多个。而从同一个同步源发出的RTP分组序列称为流(Stream),一个RTP会话可能包含多个RTP流。一个RTP分组在服务器端发送出去的时候总是要指定属于哪个会话和流,在接收时也需要进行两级分用,即会话分用和流分用。只有当RTP使用同步源标识(SSRC)和分组类型(PTYPE)把同一个流中的分组组合起来,才能够使用序列号(SequenceNumber)和时间戳(Timestamp)对分组进行排序和正确回放。5.2多线程的管理并发服务器模式要求用多线程来提供服务,所以多线程的管理十分重要。在本文构建的服务器中,不同客户的请求和反馈都由服务器的主线程处理,由于实时数据的独有性,不同实时客户可以共用一个RTP实时服务线程和一个RTCP实时服务线程,这样可以大大减小服务器的负担,而每个文件客户由于请求的文件不同,相应地对速度和开始时间的要求都可能不同,所以需要有自己独有的RTP文件服务线程和RTCP文件服务线程。RTP服务线程负责把实时数据流发送给客户,RTCP服务线程根据RTP线程的统计数据,产生发送方报告给客户。RTP线程和RTCP线程之间通过一段共享内存交互统计数据,对共享内存必须设置互斥体进行保护,防止出现错误读写。在这种方式下,服务器可以根据每个用户的不同请求和具体情况方便地提供不同的服务。5.3时间戳的处理时间戳字段是RTP首部中说明数据包时间的同步信息,是数据能以正确的时间顺序恢复的关键。时间戳的值给出了分组中数据的第一个字节的采样时间(SamplingInstant),要求发送方时间戳的时钟是连续、单调增长的,即使在没有数据输入或发送数据时也是如此。在静默时,发送方不必发送数据,保持时间戳的增长,在接收端,由于接收到的数据分组的序号没有丢失,就知道没有发生数据丢失,而且只要比较前后分组的时间戳的差异,就可以确定输出的时间间隔。RTP规定一次会话的初始时间戳必须随机选择,但协议没有规定时间戳的单位,也没有规定该值的精确解释,而是由负载类型来确定时钟的颗粒,这样各种应用类型可以根据需要选择合适的输出计时精度。在RTP传输音频数据时,一般选定逻辑时间戳速率与采样速率相同,但是在传输视频数据时,必须使时间戳速率大于每帧的一个滴答。如果数据是在同一时刻采样的,协议标准还允许多个分组具有相同的时间戳值。5.4媒体数据发送速度的控制由于RTP协议没有规定RTP分组的长度和发送数据的速度,因而需要根据具体情况调整服务器端发送媒体数据的速度。对来自设备的实时数据可以采取等时间间隔访问设备缓冲区,在有新数据输入时发送数据的方式,时间戳的设置相对容易。对已经录制好的本地硬盘上的媒体文件,以H.263格式的文件为例,由于文件本身不包含帧率信息,所以需要知道录制时的帧率或者设置一个初始值,在发送数据的时候找出发送数据中的帧数目,根据帧率和预置值来计算时延,以适当的速度发送数据并设置时间戳信息。5.5多种流同步RTCP的一个关键作用就是能让接收方同步多个RTP流,例如:当音频与视频一起传输的时候,由于编码的不同,RTP使用两个流分别进行传输,这样两个流的时间戳以不同的速率运行,接收方必须同步两个流,以保证声音与影像的一致。为能进行流同步,RTCP要求发送方给每个传送一个唯一的标识数据源的规范名(CanonicalName),尽管由一个数据源发出的不同的流具有不同的同步源标识(SSRC),但具有相同的规范名,这样接收方就知道哪些流是有关联的。而发送方报告报文所包含的信息可被接收方用于协调两个流中的时间戳值。发送方报告中含有一个以网络时间协议NTP(NetworkTimeProtocol)格式表示的绝对时间值,接着RTCP报告中给出一个RTP时间戳值,产生该值的时钟就是产生RTP分组中的TimeStamp字段的那个时钟。由于发送方发出的所有流和发送方报告都使用同一个绝对时钟,接收方就可以比较来自同一数据源的两个流的绝对时间,从而确定如何将一个流中的时间戳值映射为另一个流中的时间戳值。6结论流媒体技术的应用日益广泛,对流媒体技术的研究具有很大的实际意义,本文通过对RTP/RTCP协议的研究,分析流媒体服务器的一般功能和结构,给出构建一个基本的流媒体服务器的实现方案,实验证明可以同时满足多个实时和文件客户的要求,并已经应用于一个远程监控系统中',)


  • 编号:1700740001
  • 分类:学习教育
  • 软件: wps,office word
  • 大小:8页
  • 格式:docx
  • 风格:商务
  • PPT页数:59392 KB
  • 标签:

广告位推荐

相关学习教育更多>