(电路与系统专业论文)视频服务器中关键技术研究.pdf_第1页
(电路与系统专业论文)视频服务器中关键技术研究.pdf_第2页
(电路与系统专业论文)视频服务器中关键技术研究.pdf_第3页
(电路与系统专业论文)视频服务器中关键技术研究.pdf_第4页
(电路与系统专业论文)视频服务器中关键技术研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(电路与系统专业论文)视频服务器中关键技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京1 1 1 1 5 i u 人学颀i :形 究生学位论文 摘要 摘要 随着信息时代的到来,数字化已经渗透到社会的方方面面。其中硬盘播出技术已成为 当今视频点播技术的潮流和主流。目前的多通道音视频输出的视频服务器大多是有线电视 台使用的专业级设备,价格昂贵再加上技术的日新月异,视频服务器需不断地更新换代, 以适应音视频编解码的发展需求,由于升级而带来的成本更让营运商们望而却步。本文从 实际应用出发,提出了面向中小规模视频点播系统的方案,重点研究了点播系统的核心一 视频服务器,并论述了两种视频服务器的实现技术。 首先,研究一种从模拟到数字过渡时期的多卡视频服务器,即用多个音视频多媒体卡 来实现视频服务器的多通道输出。为了实现这种视频服务器,本文提出了利用多进程共享 内存技术来实现多卡控制,并对这种技术进行了详细的描述,然后就系统的通信机制、可 扩展性以及分布式应用给出了实际解决方案。 然后,由于多卡视频服务器的一些局限,接着研究了d v b ( d i g i t a lv i d e ob r o a d c a s t i n g ) 卡视频服务器。在研究这种视频服务器关键技术的过程中,比较了四种复用方法,提出了 将交织匀速复用应用到本文所研究的视频服务器中,最后在搭建的测试平台上进行了验 证。 关键词:视频服务器多进程m p e g 2d v b c 复用 南京乜犬学硕十研究生学位论文 a b s t r a c t a bs t r a c t w i t ht h ea r r i v a lo ft h ei n f o r m a t i o na g e ,d i g i t a lh a si n f l u e n c e dm o r ea n dm o r ea s p e c t so f o u rl if e t h eh a r dd i s kb r o a d c a s t i n gh a sb e c o m et h ek e ys k i l lo ft h ev i d e oo nd e m a n d ( v o d ) t e c h n o l o g y m o s to ft h ev i d e os e r v e r sw i t hm u l t i - c h a n n e la u d i oa n dv i d e oo u t p u ta r e p r o f e s s i o n a le q u i p m e n t su s e di n c a t vs t a t i o n ,w h i c hm a k et h e mt o o e x p e n s i v et ot h e m i d d l e s m a l ls c a l ec a r r i e r o t h e r w i s e ,t h ec o s to f u p d a t et ot h ed e v e l o p m e n ta n dt h ea d a p t a t i o n o ft h ea u d i o - v i d e oc o d i n ga n dd e c o d i n gf l i n c h e dc a t e r i nt h i sp a p e r , w ei n t r o d u c eak i n do f m u l t i c h a n n e lb r o a d c a s t i n gs e r v e rt ot h ed e m a n do ft h ea p p l i c a t i o ni nm i d d l e s m a l ls c a l ev o d s y s t e m ;w er e s e a r c h e dt h ec o r eo fv o ds y s t e m - v i d e os e r v e r , p u tf o r w a r dt w ok i n d so fv i d e o s e r v e r sa n dt h ei m p l e m e n t a t i o nt e c h n o l o g i e s f i r s t ,ak i n do fm u l t i c a r dv i d e os e r v e ri nh ei n t e r i mo fa n a l o ga n dd i g i t a lw a ss t u d i e d t h e m u l t i c a r dv i d e os e r v e rw a sr e a l i z e dw i t hm u l t i p l em u l t i m e d i ac a r d s ,t h em u l t i p r o c e s s i n gt o c o n t r o lm u l t iv i d e od e c o d ec a r d sw a sp u tf o r w a r dd u r i n gt h ev i d e os e r v e r , a n dt h ed e t a i lp r o c e s s w a sd e s c r i b e d f u r t h e r m o r e ,w eg a v eas c h e m et os o l v ep r o b l e mo ft h es y s t e mc o m m u n i c a t i o n m e c h a n i s m ,e x p a n s i b i l i t ya n dd i s t r i b u t e da p p l i c a t i o n s e c o n d ,b e c a u s eo ft h er e s t r i c t i o no fm u l t i c a r dv i d e os e r v e r , t h ed v bc a r dv i d e os e r v e r w a ss t u d i e d f o u rm u l t i p l e xm e t h o d sw e r es u m m e du pi nt h ep e r i o do fr e s e a r c h i n gt h e t e c h n o l o g yo ft h i sv i d e os e r v e r i n t e r l a c ee v e n s p e e dm u l t i p l e xm e t h o dw a sp u tf o r w a r da f t e r c o m p a r i n gf o u rm e t h o d s t h e n ,t h i sm e t h o dw a sa p p l i e dt oav i d e os e r v e r , w h i c hw a ss t u d i e di n t h i sp a p e rf i n a l l y , t h i sm u l t i p l e xm e t h o dw a st e s t e di nat e s tp l a t f o r m k e yw o r d s :v i d e os e r v e rm u l t i p l e p r o c e s s e s m p e g 一2d v b - c m u l t i p l e x l i 南京邮电大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得南京邮电大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了 明确的说明并表示了谢意。 研究生签名:采应吏。日期:三! 坚竺:! ! 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留 本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其 他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一 致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权 南京邮电大学研究生部办理。 研究生签名:篓盘互导师签名:j 歪l 基塑日期:兰尘垒! 南京i | i i ;l u 人学f i ! ;! i j 州究生学位论义 第一幸,j i 高 第一章引言 随着计算机性能的提高,多媒体技术的日臻完善以及视频压缩编码技术的进步,使得 数字视频服务越来越成为用户和厂商关注的一个焦点。在数字视频服务中,视频服务集成 了动态影视图像、静态图片、声音、文字等信息多个技术优势,已成为计算机领域的一个 重要研究方向。 而在数字服务中,视频服务器是其中的核心部分,然而目前的视频服务器大都是一些 专业的设备,如果利用目前比较成熟的硬盘播出技术实现多通道输出,必须添加价值昂贵 的播出设备,同时由于多通道输出而引发的并行计算,对服务器的性能提出了高要求,这 对一些面向中小规模的视频服务提出了挑战。 另外,随着流媒体编解码技术的不断推出,使得播出设备为适应新的编解码标准而不 断更换设备,这已成为运营商的一大负担,目前要降低播出设备成本,而且又要适应流媒 体技术发展已经是视频点播系统运营商面临的急迫问题。 本文从实际应用出发,研究面向中小规模视频点播系统的视频服务器,先后研究了两 种数字视频服务器及其关键技术。 1 i 数字视频服务简介 数字视频服务一般包括点播系统( v i d e oo nd e m a n d ,v o d ) ,视频会议系统( v i d e o c o n f e r e n c e ) 、远程教育系统( d i s t a n c el e a r n i n g ) 以及数字图书馆( d i g i t a ll i b r a r y ) 等。 数字视频服务如果应用在i n t e m e t 领域中一般就称之为流媒体( s t r e a m i n gm e d i a ) ,但此时 为了区别于图片、网页等非连续性数据,视频服务一般称作流媒体服务。 视频服务系统一般由视频服务器、客户端、传输信道三个部分构成,如图1 1 所示: 图1 1 视频服务框图 从图1 1 可以看出,用户发出一个服务请求,通过传输信道传给视频服务器,服务器 响应客户的请求,并在随后的一段时间内通过传输信道以一定的码率传将用户请求的视音 频数据传到客户端。 本文所研究的视频服务系统是点播系统。 南京l l i l 5 i u 人学彤! l j 研究生学位论义 第一章引占 1 2 点播系统 1 2 1 点播系统概述 v o d 即交互式多媒体视频点播,实现了节目的按需收看和任意播放,集动态影视图像、 静态图片、声音、文字等信息为一体,为用户提供实时、交互、按需点播服务的系统。可 以根据用户需要任意选择信息,并对信息进行相应的控制,增加了用户与节目之间交互性。 v o d 可以在网络教育、图书馆、企业培训、媒体娱乐等多方面得到应用【2 】。 一个完整的点播系统主要由三部分构成:服务端系统、网络系统和客户端系统。服务 端系统主要由视频服务器、档案管理服务器、内部通讯子系统和网络接口组成。视频服务 器与传统的数据服务器有许多显著的不同,需要增加许多专用的软硬件功能设备,以支持 该业务的特殊需求。 1 2 2 点播系统的分类 依据视频系统所能提供的不同品质和功能来分类,不规定其具体实现细节,将视频点 播服务分为三类: ( 1 ) 准视频点播( n e a rv i d e o o n d e m a n d ,n v o d ) 准视频点播也称为轮播,使用多个通道连续轮流播放同一部节目。 ( 2 ) 真视频点播( t r u ev i d e o o n d e m a n d ,t v o d ) 该服务实现了用户可以在“任何时候、对任何节目”提出点播请求,只要服务器资源足 够,将立即得到服务。服务过程中用户可以使用暂停、恢复、和任意定位等简单的操作, 但不能使用其它复杂的交互操作命令。 ( 3 ) 交互式视频点播( i n t e r a c t i v ev i d e o o n d e m a n d ,i v o d ) 该服务在真视频点播的基础上,增加了快进快退和慢进慢退等全部操作支持,以及还 可以使用其它交互操作,这是所能提供的最高功能视频点播服务。 1 2 3 点播系统的特点 点播系统不同于普通的电视系统。电视系统通常采用广播的形式进行视频( 增加特殊 设备后也可以包含文本) 数据传输,用户仅仅是被动的收看节目,不能进行主动的参与活 动,其支持的用户数目几乎是无限的。而在点播系统中,用户可以在任意时刻选择自己喜 爱的节目,正是由于这种用户使用时刻与喜好上的偏差,造成数字视频服务系统通常不能 2 南京l l l l j i u 人学坝l j 叫究生学位论义 第一章引言 采用广播的形式,从而导致系统支持用户数目上的限制【3 儿4 1 。 点播系统中的文件传输不同于普通的文件传输。普通的文件传输是用户启动一个下载 命令后,网络通常以尽可能高( e f f o r t b e s t ) 的速率传输数据,在文件下载结束前,用户无 需再对其做进一步处理,也不能使用该文件。而点播系统中的传输是用户启动一个命令后, 只需等待一个暂短的延迟时间,即可播放节目,而在随后的服务过程中,视频数据传输与 播放并发进行,网络对视频数据传输通常并不是以可能达到的最大速率进行,而是以视频 数据自身规定的一个( 可变) 速率进行。 点播系统的服务与普通文件传输的服务质量要求( q u a l i t yo f s e r v i c e ,q o s ) 不同。普 通文件传输不允许下载文件有任何偏差,客户端得到的数据必须和服务器端发送的数据完 全一致,否则视为无效传输;而点播没有此类严格要求,其偏差只要在客户端能够接受的 范围之内即可。在普通文件传输过程中,用户仅考虑总的传输时间,而对其中某一个数据 块的传输时刻不感兴趣;但在点播过程中,总的传输时间基本上由视频数据本身决定,但 其中任何一个数据块、甚至每一比特数据都有一个最晚到达时刻( d e a d l i n e ) ,即数据的 解码时刻,到达时问晚于该时刻的数据都将视作无效数据。 1 3 视频服务器 在点播系统中,视频服务器是视频点播系统中最关键、技术含量最高的部分。从计算 机技术的角度讲,视频服务器是一台或一组具有视频数据存储和输出能力的计算机,属于 极强的数据密集型应用。视频点播系统的服务能力几乎全部由视频服务器决定,因此学术 界和产业界对视频点播的研发重点都集中在视频服务器上。 传统的视频服务器一般具备了媒体数据的存储、检索、输出和控制功能,但媒体的播 放一般只有一个播出通道,而目前点播系统都是采用的硬盘播出系统,利用视频服务器进 行多通道播出,以实现播出系统的自动化和数字化转变。 1 4 视频服务器的传输网络 由于数字视频服务客户端有传输延迟、数掘抖动( j i t t e r ) 和数据丢失率等严格的服务 质量要求,通信网络传输视频数据时,必须满足其服务质量要求。由此出现了两种不同的 解决思路,一种是以网络为中心,要求网络中的路由器交换机等设备为视频流传输提供带 宽、延迟和丢失率等服务质量保证,通过综合服务模型( i n t e g r a t e ds e r v i c e ) 或者区分服务 模型( d i f f e r e n t i a t e ds e r v i c e ) 来实现。另外一种是不对传输网络提出要求,只涉及到系统两 3 南京邮l u 人学颐f j 研究生学位论文 第一章,j f 斋 端,通过端到端的传输协议实现视频流服务质量保证。因此,出现了从网络设备和传输协 议两方面考虑来保证服务质量的方法。 视频数据通过基于i p 等协议无服务质量保证的网络传输时,必须采取特殊的方法,来 保证视频数据的服务质量要求,如采用具有资源预留功能的网络设备,使网络本身具有服 务质量保证功能;或者在服务器端和客户端应用特殊的软件,通过端到端协议来保证服务 质量要求。 由于有线电视( c a b l et v ,c a t v ) 网络能够保证视频数据的服务质量要求,可以通过 其提供数字视频服务。但由于有线电视网络的单向传输性和数据接口协议的差别,需要通 过改造使其具有反向传输能力,或者附加其它网络传输反向数据,而且服务器端和客户端 需要采取特殊的实现方法,以满足有线电视网络的数据接口协议要求【5 1 。 本文研究的视频服务器所在的点播系统是一种基于双向改造有线电视网络的中小型交 互式点播系统。 1 5 视频服务器中的关键技术 数字视频服务系统一般由视频服务器、传输网络、客户端三个部分构成。本文主要研 究视频服务器中部分关键技术进行了研究,下面对视频服务器中所涉及到的主要技术进行 讨论。 1 5 1 视频数据存储 视频服务器的主要功能是存储和输出视频数据,是数掘密集型应用。因此,存储能力 和聚合输出带宽一直是视频服务器最主要的性能指标。 由于主存成本及视频编码技术限制等多方面原因的限制,视频服务器的研究主要集中 在视频数据文件系统【6 】【7 】【8 1 ,存储系统与高可用、磁盘调度以及缓冲区调度等方面【9 1 。 视频数据存储源的最佳选择仍是磁盘。当前s c s i ( s m a l lc o m p u t e rs y s t e mi n t e r f a c e ) 总线带宽可达3 2 0 m b s ,使用s a t a ( s e r i a la d v a n c e dt e c h n o l o g ya t t a c h m e n t ) 协议的i d e ( i n t e g r a t e dd r i v ee l e c t r o n i c s ) 接口带宽也达到了1 5 0 m b s ;p c 服务器上使用的6 6 m h z 6 4 位p c i ( p e r i p h e r a lc o m p o n e n ti n t e r c o n n e c t ) 总线带宽可达5 0 0 m b s ;主存和c p u 传输带 宽更高;而磁盘介质由于机械部件的限制,其平均有效带宽不到6 0 m b s ,始终是传输瓶颈。 4 南京| i i l 5 i u 入学颁i :研究生学位论文 第一章引言 1 5 2 视频服务器高可用机制 可靠性论中一般采用r a s 来定义系统的健壮性和完善性,r a s 即可靠性( r e l i a b i l i t y ) 、 可用性( a v a i l a b i l i t y ) 和可维护性( s e r v i c e a b i l i t y ) 1 1 0 1 。 系统的可靠性通常用平均无故障时间来描述,即在系统( 或系统的一个部件) 发生故 障自 的证常运行时间。可维护性指对系统或系统部件进行维护的难易程度,通常是以平均 修复时间来衡量,即用于修复系统和在修复后将它恢复到工作状态所用的平均时间。常用 的策略有f l l l : ( 1 ) 避免或减少故障 通过加强系统软硬件开发过程中的质量控制,减少系统出现故障的机会,提高系统平 均无故障时间。 ( 2 ) 故障屏蔽 利用冗余资源提高系统的平均无故障时间。 ( 3 ) 在线故障侦测与恢复 利用冗余资源降低系统平均故障修复时f b j 。对于每一项关键功能,在系统中分配一个执行 该功能的主份和若干作为备用的备份。 1 5 3 视频服务器接入控制 视频流以一定的速率从视频服务器中输出,其中任何一个数据块都有一个固定的解码 时刻,为使数据在该时刻之前到达客户端,数据块在视频服务器内有最迟输出时刻的时限 要求,若晚于该时刻离丌服务器,则客户端可能产生抖动现象,降低了服务质量。通常情 况下,视频服务器在负载范围内,能够满足数据时限要求,但过载后服务器行为不确定。 为满足数据的时限要求,必须使用接入控制技术限制服务器的负载量【1 2 】。 接入控制目标是在满足用户服务质量要求的前提下,向尽可能多的用户提供视频服 务、或者是聚合输出带宽尽可能高引。 视频服务器提供的服务质量可以分为三层【1 4 】:确定性服务、统计性服务和尽最大可能 服务。 视频服务器的接入控制主要围绕磁盘带宽和磁盘调度延迟进行。对应视频服务器提供 的服务质量,接入控制也可以分为确定性算法、统计性算法和尽力服务算法三种类型【1 5 】。 5 南京l l | 1 f i 【1 人学硕f :研究生学位论文 第一章引击 1 5 4 视频数据复用技术 有线电视网络系统采用特定的调制方式后,一个数据通道( 频道) 可以传输固定码率 的数字视频数据,为充分利用通道带宽,视频数据通常以高码率的复用流形式传输,要求 视频服务器具有实时复用功能,因此可以有两种复用方式传送多个视频流。 目自订常见的复用方法有两种【1 6 】【1 7 1 【1 8 1 :c b r ( c o n s t a n tb i tr a t e ) 方法和v b r ( v a r i a n tb i t r a t e ) 方法。 c b r 方法根据待复用视频流的平均码率,在最初就将带宽分成固定大小的几份,每个 视频流选择一份进行复用,是一种静态带宽分配方式。 v b r 方法则根据视频流的码率变化情况动态划分带宽,是一种动态复用方法。 1 5 5 视频流调度 目前视频流调度以多用户共享视频流方法为主,一般分为两类【1 9 】: ( 1 ) 以客户端为主的多播策略 这种类型的策略主要有:m q l ( m a x i m u mq u e u el e n g t h ) 策略和m f q l ( m a x i m u m f a c t o rq u e u el e n g t h ) 策略【2 0 】。 m q l 策略有利于对热门影片的支持,对所有的请求按照不同的节目分别排队,当节目 队列达到既定长度时,用一个视频流向该队所有用户提供服务,使具有最大请求数量的节 目即热门节目优先服务,降低热门节目的延迟时间,从而降低了平均延迟,但对冷门节目 的请求可能要等待很长时间,从而增加了观众流失率,公平性较差。 m f q l 策略是在m q l 方法的基础上对每个队列加入一个权因子,这个权因子与节目 的点播频率成f 比,从而使热门影片的队列较长,而冷门影片队列较短,这种方法在权因 子取点播率的平方根时,达到了最小平均延迟的要求,同时获得了优于f c f s ( f i r s tc o m e f i r s ts e r v e d ) 的观众流失率和优于m q l 的公平性。 ( 2 ) 服务器端的主动多播策略 主动多播策略是将带宽直接分配给节目对象。每个节目分成若干部分,同时对每一部 分作周期性的广播或多播,用户可根据需要加入任何一个视频流,从而满足点播请求并有 效节省带宽。 一种最直观的多播策略是准视频点播的轮播策略f 2 l 】f 2 2 】。 6 南京l | l | j l u 人学顺i j 聊f 究生学位论文 第一章引苦 1 6 论文的主要内容 本文对两种视频服务器进行了开发,并针对这两种视频服务器关键技术进行了研究。 第一种视频服务器是利用目自订市场上流行的音视频多媒体卡,然后在工控机上控制多 个多媒体卡的控制进程来实现多通道输出,因此这种视频服务器通常称为多卡服务器。 由于多卡视频服务器的一些局限,本文继续研究了第二种视频服务器。这种视频服务 器是根据d v b 标准遵循m p e g 2 系统层协议将多个低码率视频流复用为一个高码率视频 流,通过码流卡将复合视频流送到前端机顶盒,再由机顶盒解出特定视频流,从而实现多 通道输出,因此这种视频服务器一般被称为d v b 卡视频服务器。 本文的主要内容和章节安排如下: 第一章为引言,首先介绍v o d 系统的组成,分类和特点,然后介绍v o d 中核心的部 分视频服务器,介绍了视频服务器的分类及其传输网络,阐述了本文所研究的是基于双向 c a t v 网络下的中小型点播系统中的视频服务器。最后介绍了本文研究的两种数字视频服 务器及其关键技术。 第二章介绍本文研究的第一种视频服务器一多卡视频服务器的构架,为了实现这种视 频服务器提出采用多进程控制方式来控制多路视频解压卡,然后就对这种技术的实现进行 详细叙述。 第三章主要介绍使用多进程来实现对多媒体卡的复用控制和管理,在视频播放服务器 和播控服务器的通信机制基础上给出分布式视频播放服务器的管理和控制,最后给出实际 的软硬件测试图。 第四章在进一步研究多卡视频服务器后,提出第二种视频服务器,即d v b 卡视频服务 器,这种视频服务器的依据是基于d v b c 标准和m p e g 2 系统层协议,对多路传输流进 行的复用来控制多路视频流。本章详细描述m p e g 2 系统层协议和d v b c 标准。 第五章对d v b 视频服务器的关键技术一软复用技术进行研究,在总结四种复用方法的 基础上,提出将交织匀速复用方法应用到本文所研究的视频服务器中,最后在测试平台上 进行测试。 第六章对本文所研究的两种视频服务器进行总结,并提出进一步的研究方向。 7 南京邮l 乜人学坝l :1 i j f 究生学位论义 第- 二章多卡视频服务技术 第二章多卡视频服务技术 本章是对多卡视频服务器进行概述,然后就多卡视频服务器的关键技术进行详细描 述,而且给出具体的实现流程。 2 1 多卡视频服务器概述 目前,在国内市场上,单个多媒体卡的应用比较广泛( 如卡拉o k 系统) ,而在一台服 务器内集成多块多媒体解压卡来实现多通道输出的应用比较少见。因此,利用多媒体卡来 实现多通道输出控制没有可参考的方案。 通过不断的研究,发现可以在工控机上复用多块多媒体卡实现多路视音频流的输出, 其基本结构如图2 1 所示。 tg = 刮多媒体斛j 卡卡1 数据控 存能 一数据总线和b 中1 控制总线卜叫 机 设薪主 板 牟= 刮多媒体解展卡ni 爵视频流1 爵视频流n 图2 1 第一种视频服务器结构图 这种视频服务器一般被称为多卡视频服务器。 多卡视频服务器是采用多个进程方式来达到复用多块多媒体卡的目的,每一个进程对 应一块多媒体卡,这样即使其中一个进程发生异常,其他进程仍然可以正常运行。这就增 强了系统的鲁棒性。 为了能够控制指定的一块多媒体卡,就要控制指定的一个进程,因此考虑用共享内存 的方式。一个主进程可以控制多个多媒体卡控制进程,将每个多媒体卡控制进程的句柄映 射到丌辟的共享内存中,这样一个多媒体卡控制进程就对应一个共享内存区。 当主进程要对其中一个多媒体卡控制进程访问时就可以先将一些控制信息放入到该 多媒体卡进程所对应的共享内存区中,然后通过w i n d o w s 的消息机制,发送一个消息给该 多媒体卡控制进程,该进程就对其对应的共享内存区域进行读写。这样就可以对多媒体卡 控制进程进行访问。 在主进程和多个多媒体卡控制进程问用共享内存和消息机制可以避免进程间的并发 问题,而且由于共享内存机制是基于内核对象的,因此内存的控制交给了操作系统来处理, 所以不会产生内存泄漏,系统比较稳定。 8 南京| f i i :i u 人学顺i j m 可生学位论义 笫二章多卡 吧频服务技术 2 2 视频解压卡 目前市场上的视频解压卡很多,本文进行测试的视频解压卡的芯片是s i g m ad e s i g n s 公司生产的r e a l m a g i ce m 8 4 7 x ,该芯片内嵌了m p e g l 、m p e g 2 、m p e g 4 算法,可以播 放v c d 、d v d 以及目前流行的m p e g 4 视频文件,性能相对比较稳定,而且价格也比较 低廉。 生产e m 8 4 7 x 芯片的s i g m ad e s i g n s 公司也提供了相应的软件开发包( s o f t w a r e d e v e l o p m e n tk i t ,s d k ) ,可以在s d k 上进行二次开发,支持m c i ( m e d i a c o n t r o li n t e r f a s e ) 技术和微软刚推出的d i r e c t s h o w 技术。但m c i 不支持可变比特率的压缩算法,对于处理 d v d 等近年来出现的多种新的媒体格式也显得无能为力,因此可以采用d i r e c t s h o w 技术 来控制各种视频、音频压缩格式的媒体文件回放和控制。 2 3d i r e c t s h o w 技术 m i c r o s o f td i r e c t s h o w 是一个基于m i c r o s o f tw i n d o w s 平台的媒体流结构。它支持多种 格式,包括高级流模式( a d v a n c e ds t r e a m i n gf o r m a t ,a s f ) 、运动图像专家组( m o v i n g p i c t u r ee x p o r t sg r o u p ,m p e g ) 、音频视频交错( a u d i ov i d e oi n t e r l e a v e d ,a v i ) 、音频动 态压缩第三层( m p e gl a y e r3 ,m p 3 ) 和w a v 声音文件。 d i r e c t s h o w 技术是基于组件对象模型( c o m p o n e n to b j e c tm o d e l ,c o m ) 。在d i r e c t s h o w 中专门用来处理流媒体数据的标准组件称为过滤器( f i l t e r ) ,它是执行特定任务的c o m 对 象。 d i r e c t s h o w 包含了三种处理流媒体数据的标准c o m 组件:s o u r c ef i l t e r 、t r a n s f o r m f i l t e r 、r e n d e rf i l t e r 。 过滤器或带有输入针脚,或带有输出针脚,或二者兼而有之。过滤器通过文件读写、 修改数据和显示数据到输出设备上来操作流媒体。 为了完成整个任务( 如播放或采集) ,必须要将所有的过滤器连接起来,这三种过滤 器组成了过滤器图表管理器( f i l t e rg r a p hm a n a g e r ) ,它是通过各过滤器的输入输出”针脚” 顺序连接而成的,这些过滤器的针脚通过协商来决定它们将支持何种形式的多媒体 2 3 1 1 2 4 1 1 2 5 1 。 9 南京邮i u 人学顺i j 研究生学位论文 第二章多卡视频服务技术 2 4 单卡播放 能否实现单卡播放是多卡播放的前提。e m 8 4 7 x 芯片安装好驱动程序后就在 d i r e c t s h o w 这个f i l t e r 目录下注册了四个关键的f i l t e r : s i g m ad e s i g n sm p e g s t r e a m ss p l i t t e r , s i g m ad e s i g n sm p e g 一2h a r d w a md e c o d e r , s i g m ad e s i g n sa v i ( a u d i ov i d e oi n t e r l e a v e d )s p l i t t e r , s i g m ad e s i g n sp c ms w a p p e r 。 利用d i r e c t s h o w 技术只要在过滤器图表管理器中将特定的f i l t e r 连接起来就可以实现 视频文件播放控制。如图2 2 就是用e m 8 4 7 x 芯片驱动程序装好后提供的f i l t e r 连接后进行 m p e g 2 文件回放的链路。 m p e g 2 一s s i g m ad e s 叫i g 姗n s m p e g 音频流 h h a r d w a r e w d e c o d e r e s 。j g 。n 。s 。m d 。p ,e g - 2 j 文件 图2 2m p e g 2 文件同放链路 从图2 2 可以看出,将m p e g 2 文件送入s i g m ad e s i g n sm p e gs t r e a m ss p l i t t e r 把m p e g 罩的视频流和音频流分离出来,然后再送入s i g m ad e s i g n sm p e g 2h a r d w a r ed e c o d e r 进行 硬解码,最后可以输出给电视机或者显示器。 上面播放的是m p e g 2 文件,如果要播放m p e g 4 文件就要重新构建回放链路,图2 3 就是实现m p e g 4 文件回放的链路: 1 0 南京i i l l 5 l u 人学坝l : i j f 究生学位论义 第二章多卡 圯频服务披术 图2 3m p e g 4 文件同放链路 从图2 3 可以看出,因为现在的m p e g 4 文件都是a v i 视频,所以先将m p e g 4 文件送 入s i g m ad e s i g n sa v is p l i t t e r 把m p e g 4 罩的视频流和音频流分离出来,然后视频流送入 s i g m ad e s i g n sm p e g - 2h a r d w a r ed e c o d e r 进行硬解码,音频流则先要由m p e gl a y e r - 3 d e c o d e r 进行解码,然后再送入s i g m ad e s i g n sp c ms w a p p e r 进行交换后输出给m p e g 2 h a r d w a r ed e c o d e r ,解码成音频信号,然后再输出到终端。 根据回放链路可以进行代码编写,调用相应的媒体控制接口可以实现视频文件播放、 停止和单步等功能,最后编译成可执行文件。 2 5 多卡播放 2 5 1 多卡播放的内存映射 e m 8 4 7 x 系列视频卡本身没有多卡的接口,所以要进行多卡控制必须通过其他途径。 解决方法是通过共享内存方式来控制多进程,而每个进程则控制一块视频卡,这样来实现 多卡控制1 2 6 】。 实现流程如下: 步骤一: 定义一个结构体x c a r d c h a n n e l ,在x c a r d c h a n n e l 这个结构体中定义一些变量用来存 放需要读写的信息,该结构体如下所示: t y p e d e fs t r u c tc h a n n e l h w n dh a n d l e : 单卡进程的句柄信息 u 烈tc m d ;控制命令 c h a rf i l e n a m e m a x _ p a t h ;播放文件的地址 i n tc h a n n e i s e t ; 左右声道选择 1 1 南京邮i u 人学坝l :1 i j 究生学位论义 第一二章多卡视频服务技术 l o n gc u r r e n t p o s i t i o n ; l o n gt o t a l p o s i t i o n ; i n tp l a y s t a t u s ; i n ts p e e d s e t ; i n tx c a r d s t a t u s ; i n tv o l u m e s e t ; i n te r r o r c o d e ; ) 幸x c a r d c h a n n e l : 当前播放时间 总的播放时间 播放状态设置 播放速率设置 当前卡的状态 音量设置 定义一个句柄变量h a n d l e 来存放单卡进程的旬柄信息,定义一个无符号整型变量来存 放一些控制命令。然后定义一个f i l e n a m e 字符数组来存放播放文件的地址,定义两个长整 型变量c u r r e n t p o s i t i o n 和t o t a l p o s i t i o n 来存放视频文件当前播放时间和视频文件的总播放 时阳j ,还定义了一些播放状态设置、播放速率设置等,最后定义一个整型变量用来存放播 放时所发生的错误信息。 步骤二: 创建一个内核对象,这里可以通过c r e a t e f i l e m a p p i n g 函数创建一块共享内存,实现函 数如下所示: h m m f i l e 2 c r e a t e f i l e m a p p i n g ( ( h a n d l e ) 0 x f f f f f f f f , n u l l , p a g e r e a d w r i t e , o , 2 0 4 8 , ”x c a r d _ m e m ”) ) ) 将该共享内存名称定义为x c a r d m e m ,对刚丌辟的这块共享的内核对象进行设置,这 罩设置该共享内存区为读写方式。 步骤三: 当创建了一个文件映射对象后,必须让系统为开辟的内存数据保留一个地址空间区 域,这罩只要通过调用m a p v i e w o f f i l e i 函数来进行这项操作: m a p v i e w o f f i l e ( h m m f i l e , f i l e m a p w r i t e , 12 南京l | 1 1 5 l u 人学坝i :研究生学位论文 第二章多卡视频服务技术 u , o , o ) : 步骤四: 将定义的结构体x c a r d c h a n n e l 的指针指向该共享内存区,这样就将结构体定义的一 块内存区域映射到了共享内存区中,然后各多媒体卡控制进程的信息就可以写进一个自己 丌辟的共享内存区中。 步骤五: 当完成对内存映射文件的使用时,关闭文件映射内核对象。 2 5 2 多卡播放控制流程 启动多个单卡控制进程,每个单卡控制程序都定义和x c a r dc h a n n e l 同样的结构体, 启动时打丌名称为x c a r dm e m o r y 的共享内存区域,然后将单卡定义的x c a r dc h a n n e l 结 构体的指针指向这个共享内存地址空间,之后将自己的句柄信息写入结构体罩的句柄变 量。 这样,每启动一个进程就在共享内存中开辟了个x c a r dc h a n n e l 结构体数组。结构 体数组x c a r d _ c h a n n e l 1 就代表单卡进程1 ,x c a r d _ c h a n n e l 1 h a n d l e 里面就是进程1 的句 柄信息, 由于进程l 的句柄信息此时是放在共享内存中的,因此就可以通过s e n d m e s s a g e 函数 给进程发送消息,进程收到消息就可以进行相应的处理,这样就通过多进程实现了多卡的 控制。图2 4 是一个实现的具体流程图。 1 3 南京i l i i ;i u 人学坝i :研究生学位论义 第二章多卡视频服务技术 图2 4 多卡控制流挂图 从图2 4 可以看出,多卡进程要先检测是否有上次残留的单卡进程,查看是否有上次 异常退出时残留下的单卡控制进程。如果有,则清除这些残留进程,然后丌辟一个共享内 存区,启动多进程。每次启动一个单卡进程时检查视频卡是否正常,若不正常将会停止这 个进程,发出错误信息,停止当前视频卡的使用;如果正常就将结构体指针指向开辟了的 共享内存空间,然后再启动下一个单卡控制进程,直到个单卡控制进程启动完毕,最后 发出启动结束信息【2 7 1 。 2 6 本章小结 本章首先对第一种视频服务器即多卡视频服务器进行了概述,随后简述了多卡视频服 务器的关键技术一利用多进程来控制多块多媒体视频卡,接着介绍了d i r e c t s h o w 技术以 及利用该技术实现单卡播放,然后通过多进程的方式实现多卡控制,最后给出了具体实现 流程。 1 4 南京| l i | 5 l u 人学颁i j 影f 究生学位论文 第三章视频播放服务器的分布式应用 第三章视频播放服务器的分布式应用 在一台服务器上,由于板卡资源以及c p u 处理能力的限制,一般来说,集成1 6 块多 媒体音视频卡已是上限,也就是说一台服务器最多能同时输出1 6 路音视频流,这对于较 大规模的应用就显得力不从心了,因此如何实现视频流输出的无缝扩展,是能否使用此项 技术的关键。 为此,我们将视频服务器中的播放和播控功能分_ 丌,将所有播控功能集中于一台播控 服务器中,而在局域网中可以配置多台播放服务器,以台播控服务器来对多台播放服务 器进行统一管理和调度,播控服务器通过t c p i p 协议与播放服务器进行交互,通过串口 与前端调制器和客户端( 机顶盒) 进行交互,这样,以视频播放服务器的分布式应用,来 实现系统的拓展【2 8 1 【2 9 l 。 3 1 播放服务器与播控服务器之间的通信机制 播放与播控之间基于t c p i p 协议进行通信,其流程如下: l 、播放服务器向播控服务器注册信息 播放服务一旦启动,首先连接播控服务器,连接成功后,播放服务器发送注册信息, 包括服务器名、i p 地址、集成的多媒体卡数,播控服务接收到注册信息后,即在内 存中辟出一块区域建立资源调配表,用以存储该播放服务器的信息。 2 、播控服务器分配和回收播放服务器的资源 播控服务器接收到客户端要求播出视频的信息后,首先查询所有资源调配表,找到 空闲资源,按照资源调配策略分配资源,并通知相应的播放服务器。同样,一旦收 到客户端退出播放状态,则在资源调配表将相应的播放资源置为空闲。 3 、注销播放服务器的资源 播放服务一旦退出或中断,播控服务器将在资源调配表注销该播放服务器的所有信 息,以免调用不存在的资源。 3 2 资源调配表 由以上的通信流程分析不难看出,资源调配表是资源调度的关键,每一个播放服务器 都有唯一一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论