(信号与信息处理专业论文)流媒体采集系统的设计与实现.pdf_第1页
(信号与信息处理专业论文)流媒体采集系统的设计与实现.pdf_第2页
(信号与信息处理专业论文)流媒体采集系统的设计与实现.pdf_第3页
(信号与信息处理专业论文)流媒体采集系统的设计与实现.pdf_第4页
(信号与信息处理专业论文)流媒体采集系统的设计与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(信号与信息处理专业论文)流媒体采集系统的设计与实现.pdf.pdf 免费下载

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

文档简介

独创声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 掘我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写 过的研究成果,也不包含未获得 l 适! 塑渔直基他益噩挂别直盟 的:奎拦卫窒2 或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研 究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:签字同期:年月同 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,有权保留并向国家有 关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权学校可以将学 位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段保存、汇编学位论文。( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字日期:年月 日 学位论文作者毕业后去向: 工作单位: 通讯地址: 导师擗翌嵫 签字醐:1 年r 月讶日 | 电话: 邮编: 流媒体采集系统的设计与实现 摘要 随着互联网的普及,利用互联网传输音频与视频数掘的需求越来越大。广播 电视等媒体联网之后,也产生通过互联网来发布自己的音视频节目的需求。但是, 音视频内容在存贮时,存储文件的体积一般都很大。在网络带宽十分有限的情况 下,一个音视频文件的传输需要花费大量的时自j ,这满足不了用户的需求。流媒 体技术的出现,一定程度上使通过互联网传输音视频困难的局面得到改善。 本文首先分析了流媒体技术在国内外的发展现状、流媒体技术的影响、流媒 体技术具体的应用领域,在此基础上,总结了流媒体在监控领域的发展状况。 其次,由于流媒体技术与网络服务器系统是本课题的技术支撑,因此本文专 门对流媒体、服务器系统的技术特点进行了分析。 再次,本文以较大篇幅给出了流媒体采集系统的软件设计方案,包括详细设 计和具体实现,阐述了各个模块的功能。 最后对全文进行总结,并对进一步研究进行了展望。 关键词:流媒体:d ir e c t s h o w ;w i n d o w sm e d i ae n c o d e r s t r e a mm e diac a p t u r es y s t e ma n dim pie m e n t a b s t r a c t t h en e e d t h a tt r a n s m i t t i n gt h ev i d e oa n da u d i oi n f o r m a t i o nt h r o u g h t h ei n t e r n e ti sm o r ea n dm o r ea l o n gw i t ht h er i f e n e s so ft h ei n t e r n e t a f t e rt h ee n t r a n c eo ft h et e l e v i s i o n ,i tn e e d sp r o m u l g a t i n gt h ev i d e oa n d a u d i op r o g r a mt h r o u g ht h ei n t e r n e t b u ta ss a v i n gt h ev i d e oa n da u d i of i l e , t h e ya r eu s u a l l yv e r yl a r g e b e c a u s eo ft h el i m i to fb a n d w i d t h ,i ts p e n d s m u c ht i m et r a n s m i t t i n gam e d i af i l e ,t h i sc a nn o ts a r i s f yt h eu s e r s t h e a p p e a r a n c eo ft h es t r e a mm e d i ai m p r o v et h ec o m p l e x i o nt h a tt r a n s m i t t i n g d a t at h r o u g ht h ei n t e r n e t f i r s t ,t h i sa r t i c l ea n a l y s e st h ee v o l u t i o ns t a t u so ft h em e d i a s t r e a m ,t h ee f f e c to ft h em e d i as t r e a m ,t h ef i e l do fa p p l i c a t i o no ft h e m e d i as t r e a m ,a n dt h e ns u m m a r i z et h es t a t u so fm e d i as t r e a mi nw a t c hf i e l d s e c o n d ,b e c a u s et h em e d i as t r e a ma n dn e t w o r ks e r v e rt e c h n o l o g yi st h e b a s e m e n to ft h i st a s k ,t h i sa r t i c l ea n a l y s e st h es t r e a mm e d i aa n dn e t w o r k s e r v e rt e c h n o l o g y t h i r d ,t h i sa r t i c l ep r o v i d e st h es o f t w a r ed e s i g ns c h e m e ,i n c l u d i n g t h el o wl e v e ld e s i g na n di m p l e m e n ti nd e t a i l ,e x p l a i n st h ef u n c t i o no f e v e r ym o d u l e a tl a s t s u m m i n gu pt h ew h o l ea r t i c l ea n dm a k i n gt h ee x p e c t a t i o no f f u r t h e rr e s e a r c h k e y w o r d :s t r e a mm e d i a :e ir e c t s h o w :w i n d o w sm e d i ae n c o d e r 2 洫媒体采集系统的i 5 汁i 实现 1 绪论 流媒体是指在互联网上以数据流的方式实时发布音频、视频多媒体内容的媒 体,而流媒体技术则是在i p 网络上发柿多媒体数掘流的技术。传统的网络传输 音视频等多媒体信息的方式是完全下载后再播放,下载常常要花数分钟甚至数小 时。而采用流媒体技术,将整个多媒体文件压缩解析成多个压缩包,向客户端实 时地顺序传送,用户可以一边解压播放前面传送过来的压缩包,一边下载后续的 压缩包,就可实现流式传输,将声音、影像或动画由服务器向用户计算机进行连 续、不白j 断传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十几 秒的启动延时即可进行观看。当声音视频等在用户的机器上播放时,文件的剩余 部分还会从服务器上继续下载,从而节省了时间。 流式传输技术又分两种,一种是顺序流式传输,另一种是实时流式传输。 顺序流式传输是顺序下载,在下载文件的同时用户可以观看,但是,用户的 观看与服务器上的传输并不是同步进行的,用户是在一段延时后才能看到服务器 上传出来的信息,或者说用户看到的总是服务器在若干时间以前传出来的信息。 在这过程中,用户只能观看已下载的那部分,而不能要求跳到还未下载的部分。 顺序流式传输比较适合高质量的短片段,因为它可以较好地保证节目播放的最终 质量。它适合于在网站上发布的供用户点播的音视频节目。 在实时流式传输中,音视频信息可被实时观看到。在观看过程中用户可快进 或后退以观看前面或后面的内容,但是在这种传输方式中,如果网络传输状况不 理想,则收到的信号效果比较差。 1 1 流媒体技术在国内外的研究现状 流媒体技术的发展依赖于网络的传输条件,媒体文件的传输控制,媒体文件 的编码压缩效率及客户端的解码等几个重要因素。其中任何一个因素都会影响流 媒体技术的发展和应用。早期的流媒体主要是在窄带互联网上应用,因为受带宽 流蝶体采集系统的设计。实j j i l 条件的制约,1 9 9 9 年,人们在网上仅仅可以看到一个很小的视频播放窗口。在 具备一定带宽的局域网上,人们很难欣赏到高画质的影音节目,原因就是网络带 宽不足、音视频编码压缩算法不够先进、客户端计算机解码运算速度不够高。 随着互联网的飞速发展,流媒体技术的应用越来越普及。在1 9 9 9 年底结束 的s t r e a m i n gm e d i aw e s t 9 9 展会中,m i c r o s o f t 、i n t e l 、a p p l e 、r e a ln e t w o r k s 等公司就流媒体技术的发展和应用展开了激烈的竞争。同年,与会专家预计,未 来3 年内,多数的互联网用户( 包括企业和个人用户) 将更多地使用流媒体技术。 2 0 0 0 年下半年,随着全球范围的互联网升温,宽带i p 网不再是梦想,越来 越多的网络运营商投入到新一轮的宽带互联网的建设项目中。作为流媒体技术倡 导发起者的美国r e a ln e t w o r k s ,m i c r o s o f t 、a p p l e 等公司几乎同时向世界宣布 了他们最新的流媒体技术的宽带解决方案。这表明,在短短的一年罩,流媒体技 术有了飞跃发展。如今,人们在互联网上看到的是可以和v h s 、d v d 画质相媲美 的数字流媒体,从数字压缩到媒体传输控制,再到客户端的回放效果,比以前都 有了质的飞跃“”。 到目前为止,互联网上使用较多的流媒体格式主要有美国r e a ln e t w o r k s 公 司的r e a l m e d i a 和微软公司的w i n d o w sm e d i a 。 美国r e a ln e t w o r k s 公司是世界领先的网上流式音视频解决方案的提供者, 提供从制作端、服务器端到客户端的所有产品。它提供了世界上领先的网上流式 音视频解决方案,在最广的范围、以最快的连接速度提供性能最好的多媒体效果, 具有强有力的系统管理和可伸缩能力,并具有开放的、标准的、跨越平台的架构。 r e a l 系统是支持流媒体技术的优秀系统,r e a l 格式具有极高的压缩比和很好的 传输能力,很适合在网络上进行信息发布。服务器端软件为r e a ln e t w o r k s 公司 最新版的r e a ls e r v e r8 ,它是一个卓越的跨平台流媒体服务器,具有强大的网 络管理功能,支持广泛的媒体格式,支持最大量的互联网用户群与流媒体商业模 式。r e a ln e t w o r k s 公司自1 9 9 5 年发布r e a l a u d i o1 0 以来,r e a l a u d i o 和 r e a l v i d e o 产品已经成为互联网上最受欢迎的解决方案。其所采用的s u r es t r e a m 流媒体采集系统的挫计,实现 ( 自适应流) 技术是r e a ln e t w o r k s 公司具有代表性的技术。该技术根掘客户端 不同的拨号速率( 不同的带宽) ,让传输的信息自动适应带宽。并始终以流畅的 方式播放。r e a l s y s t e mi o 的区域传送功能更加入了卫星传送技术。客户端播放 器r e a l p l a y e r 的全球注册人数已经超过了1 6 亿人,占据了6 0 的网上流式音 视频点播市场。 流媒体领域的巨大市场前景使得众多厂商倾力投入其中,微软公司近年来也 在此领域展丌了激烈的竞争。目前,微软公司已经将w i n d o w sm e d i a 技术捆绑在 w i n d o w s2 0 0 0 中。微软公司推出的w i n d o w sm e d i a 技术以其方便性、先进性、 集成性、低费用等特点,逐渐被人们所认识。w i n d o w sm e d i a 的前身是微软公 司的n e t s h o w 产品,随着流媒体的广泛应用,微软推出了一整套的流媒体制作、 发稚和播放产品,其服务器端的w i n d o w sm e d i as e r v e r 产品集成在w i n d o w s2 0 0 0 s e r v e r 中。 i w i n d o w sm e d i a 产品的一大特点是其制作、发布和播放软件与w i n d o w s n t 2 0 0 0 9 x 集成在一起,不需要额外购买。微软的流视频解决方案在微软视窗 平台上是免费的,制作端与播放器的视音频质量都上佳,而且易于使用,但目前 在整体解决方案方面和r e a ln e t w o r k s 的产品相比还有差距,且只能在微软平台 上使用翻1 1 。2 流媒体技术的应用 互联网的迅猛发展和普及为流媒体业务发展提供了强大的市场动力,流媒体 业务正变得日益流行。流媒体技术广泛用于新闻出版、证券、娱乐、电子商务、 远程培训、视频会议、远程教育、远程医疗等互联网信息服务的方方面面,它的 应用将为网络信息交流带来革命性的变化,流媒体技术改变了传统互联网的呆板 形象,丰富了互联网的功能,成为一种有强大吸引力的新媒体“”3 : l 视频点播 随着计算机技术的发展,流媒体技术越来越广泛地应用于视频点播统。现 流媒体采肇系统的设计。实脱 在。很多大型的新闻娱乐媒体。如中央电视台和一些地方电视台等,都在互联网 上提供基于流媒体技术的节目。 目前v o d 技术逐渐趋于完善,v o d 技术广泛应用于局域网及有线电视网。 流媒体的视频直播应用突破了网络带宽的限制,实现了在低带宽的环境下的高质 量影音传输,其中的智能流技术保证不同连接速率下的用户,可以得到不同质量 的影音效果。但音视频文件的大容量仍然阻碍了v o d 技术的进一步发展。出于服 务器端不仅需要大容量的存储系统,同时还要承担大量数据的传输,因而服务器 根本无法支持大规模的点播。同时,由于局域网中的视频点播覆盖范围小,用户 、 也无法通过i n t e r n e t 等网络媒介收听或观看局域网中的节目。 2 视频会议 市场上采用流媒体技术作为核心技术的视频会议系统并不占多数。视频会议 是流媒体技术的一个商业用途,采用流媒体格式传送音视频文件,使用者不必等 待整个影片传送完毕就可以实时、连续地观看,虽然在画面质量上有一些损失, 但就一般的视频会议来讲,并不需要很高的图像质量。当然,流媒体技术并不是 视频会议的必须选择,但为视频会议的发展起了重要的推动作用。通过流媒体进 行点对点的通信,最常见的就是可视电话。只要两端都有一台接入i n t e r n e t 的 电脑和一个摄像头,在世界任何地点都可以进行音视频通信。此外,大型企业可 以利用基于流媒体的视频会议系统来组织跨地区的会议和讨论。 3 远程教育 电脑的普及、多媒体技术的发展以及i n t e r n e t 的迅速崛起,给远程教育带 来了新的机遇。越来越多的远程教育网站开始采用流媒体作为主要的网络教学方 式。在远程教学过程中,最基本的要求就是将信息从教师端传到远程的学生端, 需要传送的信息可能是多元的,如视频、音频、文本、图片等。将这些信息从一 端传送到另一端是实现远程教学需要解决的问题,在当前网络带宽的限制下,流 式传输将是最佳选择。学生在家通过一台计算机、一条电话线、一个调制解调器 就可以参加远程教学。教师也无须另外做准备,授课的方法基本与传统授课方法 流媒体采囊系统的设计。j 实现 相同,只不过面对的是摄像头和计算机而已。使用流媒体的v o d 技术还可以进行 交互式教学,达到因材施教的目的。像r e a ls y s t e m ,f l a s h s h o c k w a v e 等技术 就经常应用到网络教学中。学生可以通过网络共享学习经验。大型企业可以利用 基于流媒体技术的远程教育对员工进行培训。 4i n t e r n e t 直播 随着宽带网的不断普及和流媒体技术的不断发展。冲浪者能够在i n t e r n e t 直接收看体育赛事、商贸展览等,厂商可以借助网上直播形式将自己的产品和活 动传遍全世界。网络带宽问题的改善促进了i n t e r n e t 直播的发展,i n t e r n e t 直 播已经从实验阶段走向实用,并能够提供较满意的音视频效果。流媒体技术的发 展,实现了在低带宽环境下提供高质量的音视频信息;保证不同连接速率下的用 户能够得到不同质量的音视频效果:减少服务器端的负荷,同时最大限度地节省 带宽。在i n t e r n e t 直播中充当着重要角色。 5 校园视频网 校园网的建设近几年来也逐渐呈现出蓬勃向上的态势,随着多媒体技术的 不断发展,特别是多媒体传输技术的突破,使网络多媒体教学得以实现。现在已 经有成熟的产品,用来组建校园视频网,提供实时广播、定时广播、视频点播三 种通信模式。 1 3 流媒体技术的影响 流媒体技术的发展依赖于网络的传输条件、媒体文件的传输控制、媒体文件 的编码压缩效率及客户端的解码等几个重要因素。其中任何一个因素都会影响流 媒体技术的发展和应用。不同于i p 网络的其他新业务,流媒体是网络和数字媒 体技术的整合,能够最大限度地发挥网络和数字媒体各自的长处,但也不可避免 地继承了网络和数字媒体的缺陷,例如i p 网络领域服务质量保证的缺乏、数字 媒体领域d v d 版权保护的失败等等。 当前,i t 产业界正在经历全球流媒体市场爆炸性的增长。i n t e r n e t 已有超 洫媒体采览系统的改汁实现 过1 7 0 0 家广播电台和电视台实现了网上点播,世界上几大有影响的媒体如b b c , c n n ,a b c ,n b c 等等,都在网上丌通了自己的网上广播。国内的些广播电台和 电视台,虽然已经在自己的网站上丌始了试验性的视音频点播,但其视音频点播 系统平台无一例外采用的都是外国公司核心技术,并且系统规模不大,安全性也 没有保证,很难大规模丌展这方面的业务。随着网络宽带化的飞速发展,作为第 四媒体的i n t e r n e t 必将超过另外三种媒体成为主流的信息交换平台,对流媒体 业务平台安全性的认识需要上升到囡家安全的高度来认识,独立自主开发安全可 靠、具有自主知识产权的流媒体增值业务平台已经成为当务之急。 1 4 流媒体技术在数字监控中的应用 数字监控以数字视频处理技术为核心,结合网络技术、多媒体技术,彻底克 服模拟监控缺点。系统由视频采集、视频传输、控制中心等组成,对图像实时性、 传输速度、并行处理能力、存储容量等要求较高,并支持多种有线、无线传输介 质,集视频切换、智能控制、远程传输、布防报警等功能于一身。其信号传输具 有以下特点:实时性,即视频信号须实时处理,如实时压缩、解压缩、传输;同 步性,即视频信号具有分布性,但用户终端显示时须同步;分布性,即现场采集 的图像传输、接收、显示的主机位于不同地点,通过网络相连。视频传输依赖的 通信网络包括l a n 、w a n 、i s d n 、d d n 、a t m 、p s t n 等,由于每种网络传输控制及 通信协议均不同,适合远程监控的数字视频传输要求标准也不同。目前,t c p i p 协议作为事实上的标准,广泛用于各种网络。要通过网络传输数字视频,自然也 须遵守该协议。但该协议最初是为非实时数据业务制定的,实时传输能力较差。 而流媒体技术应用于远程数字监控显然是安防领域巨大突破,能有效克服其他传 输方式存在的局限性。其显著优点主要表现为:流媒体实现低带宽环境提供高质 量音频、视频等;智能流技术可保证不同连接速率下的用户得到相应质量的媒体 播放效果;流媒体多址广播技术可显著减少服务器负荷,同时最大限度节约带宽。 显然,无论从技术还是市场角度考虑,流媒体技术应用于远程数字监控都有其他 洫媒仆采浆系统的i 5 1 计,实_ i i 【 方式无可比拟的优越性。特别对窄带远程监控尤为显著,用户不必等远端监控信 息传输完毕即可实时、连续播放,有效克服其它方式播放的等待问题,且实时性 较好。当然,该方式可能影响视频图像质量,但视频监控这种特殊场合无需很高 的音视频质量,且服务器端的记录已完全满足详细分析的需要“。 1 5 本文的工作 虽然已经很多丌源的项目可以借鉴,但符合本项目需求同时又能达到稳定性 要求的系统,还是需要重新开发。 本文的内容主要分为以下几部分: 第一部分,介绍了流媒体技术在国内外的发展现状、流媒体技术的影响、流 媒体技术具体的应用领域,在此基础上,进一步介绍了流媒体在监控领域的发展 状况。 第二部分,对流媒体技术、服务器系统的特点进行了分析。 第三部分,给出了流媒体采集系统的软件设计方案,包括详细设计和具体实 现,阐述了各个模块的功能 最后一部分,总结课题,并对进一步研究进行了展望。 2 流媒体技术 2 1 流媒体技术原理 流式传输的实现需要缓存m 。因为i n t e r n e t 以包传输为基础进行断续的异 步传输,对一个实时a v 源或存储的a v 文件,在传输中它们要被分解为许多包, 由于网络是动念变化的,各个包选择的路由可能不尽相同,故到达客户端的时间 延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延 迟和抖动的影响,并保证数据包的顺序f 确,从而使媒体数据能连续输出,而不 流媒体采集系统的设计实现 会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大,因为高速 缓存使用环形链表结构来存储数据:通过丢弃已经播放的内容,流可以重新利用 空出的高速缓存空间来缓存后续尚未播放的内容。 流式传输的实现需要合适的传输协议。由于t c p 需要较多的丌销,故不太适 合传输实时数据。在流式传输的实现方案中,一般采用h t t p t c p 来传输控制信 息,而用r t p u d p 来传输实时声音数据他”。 流式传输的过程一般是这样的:用户选择某一流媒体服务后,w e b 浏览器与 w e b 服务器之间使用h t t p t c p 交换控制信息,以便把需要传输的实时数据从原 始信息中检索出来;然后客户机上的w e b 浏览器启动a v h e l p e r 程序,使用h t t p 从w e b 服务器检索相关参数对h e l p e r 程序初始化。这些参数可能包括目录信息、 a v 数据的编码类型或与a v 检索相关的服务器地址“1 。 a v h e l p e r 程序及a v 服务器运行实时流控制协议( r t s p ) ,以交换a v 传 输所需的控制信息“”。与c d 播放机或v c r s 所提供的功能相似,r t s p 提供了 操纵播放、快进、快倒、暂停及录制等命令的方法。a v 服务器使用r t p u d p 协 议将a v 数据传输给a v 客户程序( 一般可认为客户程序等同于h e l p e r 程序) , 一旦a v 数据抵达客户端,a v 客户程序即可播放输出。 需要说明的是,在流式传输中,使用r t p u d p 和r t s p t c p 两种不同的通信 协议与a v 服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运 行a v h e l p e r 程序所在客户机的目的地址0 1 。实现流式传输一般都需要专用服务 器和播放器,其基本原理如图2 1 所示。 幽2 1 1 2 洫媒体采浆系统的改汁i 实现 2 2 音视频采集 要在网络上发布音视频内容,首先要有媒体内容。本文的音视频源是采用天 敏4 0 4 p 采集卡,对有线电视的模拟信号进行采集,转换存储成数字格式的文件。 要实现采集功能,首先要介绍一下微软的d i r e c t s h o w 平台”。 d i r e c t s h o w 是微软公司提供的一套在w i n d o w s 平台上进行流媒体处理的丌 发包,与d i r e c t x 开发包一起发布。d i r e c t s h o w 为多媒体流的捕捉和回放提供 了强有力的支持。运用d i r e c t s h o w ,可以很方便地从支持w d m 驱动模型的采集 卡上捕获数据,并且进行相应的后期处理乃至存储到文件中它广泛地支持各种 媒体格式,包括a s f 、m p e g 、a v i 、d v ,m p 3 、w a v e 等等,使得多媒体数掘的回放 变得轻而易举。另外,d i r e c t s h o w 还集成了d i r e c t x 其它部分( 比如d i r e c t d r a w 、 d i r e c t s o u n d ) 的技术,直接支持d v d 的播放,视频的非线性编辑,以及与数字 摄像机的数据交换。更值得一提的是,d i r e c t s h o w 提供的是一种开放式的开发 环境,我们可以根据自己的需要定制自己的组件。应用程序与d i r e c t s h o w 组件 以及d i r e c t s h o w 所支持的软硬件之间的关系如图所示 幽2 - 2 甜c 媒体采壤系统的i i ! 汁i j 实现 2 2 1d ir e c t s h o w 的f ii t e r d i r e c t s h o w 是基于模块化,每个功能模块都采取c o m 组件方式,称为 f i l t e r “3 。d i r e c t s h o w 提供了一系列的标准的模块可用于应用丌发,丌发者也可 以丌发自己的功能f i l t e r 来扩展d i r e c t s h o w 的应用。下面用一个例子来说明如 何采取f i l t e r 来播放一个a v i 的视频文件。 1 ) 首先从一个文件中读取a v i 数据,形成字节流。( 这个工作由源f i l t e r 完成) 2 ) 检查a v i 数掘流的头格式,然后通过a v l 分割f i l t e r 将视频流和音频流 分开。 3 ) 解码视频流,根据压缩格式的不同,选取不同的d e c o d e rf i l t e r 。 4 ) 通过r e n d e r e rf i l t e r 重画视频图像。 5 ) 音频流送到声卡进行播放,一般采用缺省的d i r e c t s o u n dd e v i c e f i l t e r 。流程见下图。 h a r dd r i v e 图2 - 3 从上面的图表看,每一个f i l t e r 都与其他的一个或两个f i l t e r 相连接。两 个f i l t e r 相连接的连接点也是c o m 对象,我们称为p i n 。f i l t e r 通过p i n 将数 据从一个f i l t e r 传递到另一个f i l t e r 中,从而可以使数据在由f i l t e r 组成的 链表中流动。图中的箭头表示f i l t e r 链表中的数据流的方向。在d i r e c t s h o w 中, 像上面的这样一个f i l t e r 链表我们称为f i l t e rg r a p h 。 f i l t e r 具有三个状态,运行,停止,暂停。当一个f i l t e r 运行时,它就处 理媒体数据流,当停止时,f i l t e r 就不再处理数据。 除了一些特别的例外, f i l t e rg r a p h 中所有的f i i t e r 的状念的改变都是 1 4 蜒 流妖体采集系统的改i 十安脱 统一的,也就说,f i l t e rg r a p h 中的所有的f i l t e r 的状态改变是一致协调的。 也就是说, f i l t e rg r a p h 也有运行,停止。暂停三种状态。 2 2 2 关于f ii t e rg r a p hm a n a g e r f i l t e rg r a p hm a n a g e r 也是一个c o m 对象,用来控制f i l t e rg r a p h 中的所 有的f i l t e r “旧,主要有以下的功能: 1 ) 用来协调f i l t e r 之自j 的状态改变,从而使g r a p h 中的所有的f i l t e r 的 状态的改变应该一致。 2 ) 建立一个参考时钟。 3 ) 将f i l t e r 的消息通知返回给应用程序。 4 ) 提供用来建立f i l t e rg r a p h 的方法。 状态改变,g r a p h 中的f i l t e r 的状态改变应该一致,因此,应用程序并不 将状态改变的命令直接发给f i l t e r ,而是将相应的状态改变的命令发送给 f i l t e r g r a p h m a n a g e r ,由m a n a g e r 将命令分发给g r a p h 中每一个f i l t e r 。s e e k i n g 也是同样的方式工作,首先由应用程序将s e e k 命令发送到f i l t e rg r a p h 管理 器:然后由其分发给每个f i l t e r 。g r a p h 管理器采用事件机弗4 将g r a p h 中发生 的事件通知给应用程序,这个机制类似于w i n d o w s 的消息循环机制。g r a p h 管理 器给应用程序提供了将f i l t e r 添加进g r a p h 的方法,连接f i l t e r 的方法,断开 f i l t e r 连接的方法。但是,g r a p h 管理器没有提供如何将数据从一个f i l t e r 发 送到另一个f i l t e r 的方法,这个工作是由f i l t e r 在内部通过p i n 来独立完成的。 2 2 3 媒体类型 因为d i r e c t s h o w 是基于c o m 组件的,就需要有一种方式来描述f i l t e rg r a p h 每一个点的数据格式,例如,以播放a v i 文件为例,数据以r i f f 块的形式进入 g r a p h 中,然后被分割成视频和音频流,视频流由一系列的压缩的视频桢组成, 解压后,视频流由一系列的无压缩的位图组成,音频流也要走同样的步骤。媒体 类型是一种很普遍的,可以扩展的用来描述数字媒体格式的方法,当两个f i l t e r 连接的时候,他们会就采用某一种媒体类型达成一致的协议。媒体类型定义了处 流媒体采览系统的蹬计o ,实现 于源头的f i l t e r 将要给下游的f i l t e r 发送什么样的数据,以及数掘的p h y s i c a l l a y o u t 。如果两个f i l t e r 不能够支持同一种的媒体类型,那么他们就没法连接 起来。 对于大多数的应用来既,不必考虑媒体类型,但是,有些应用程序中,会直 接应用到媒体类型的。媒体类型是通过a mm e d i a _ t y p e 结构定义的: t y p e d e fs t r u c tm e d i a t y p e g u i dm a j o r t y p e : g u i ds u b t y p e : b o o lb f i x e d s i z e s a m p l e s : b o o lb t e m p o r a l c o m p r e s s i o n : u l o n g1 s a m p l e s i z e : g u i df o r m a t t y p e : i u n k n o w n * p u n k : u l o n gc b f o r m a t : s i z e _ i s ( c b f o r m a t ) b y t e * p b f o r m a t : a m _ m e d i a p e ; m a j o rt y p e :是一个g u i d ,用来定义数据的主类型,包括,音频,视频,u n p a r s e d 字节流,m i d i 数据等。 s u b t y p e := j 类型,也是一个g u i d ,用来进一步的细化数据格式,例如,在视频 主类型中,还包括r g b 一2 4 ,r g b 一3 2 ,u y w 等等一些子类型,在音频主类型中还 包括p c m a u d i o im p e g - ip a y l o a d 等类型,子类型提供了比主类型更详细的信息, 但是并没有定义所有的格式,例如,视频的子类型并没有定义图像大小,桢率。 这些由下面的字段定义。 b f i x e d s i z e s a m p l e s 当这个值为t r u e 时,表示s a m p l e 大小固定。 b t e m p o r a l c o m p r e s s i o n 当这个值为t r u e 时,表示s a m p l e 采用了临时压缩格式, 表明不是所有的桢都是关键桢,如果为f a l s e ,表明所有的都是关键桢。 流媒体采壤系统的改汁i 实现 1 s a m p l e s i z e 表示s a m p l e 的大小。对于压缩的数据,这个值可能为零。 f o r m a t t y p e 一个g u i d 值,用来表明内存块的格式。包括如下:f o r m a t _ n o n e , f o r m a t _ d r i n f o p u n k 该参数没有用到。 c b f o r m a t 内存块的大小。 p b f o r m a t 指向内存块的指针。 2 2 4s a 呻i z s 和a il o o a t o r s f i l t e r s 通过p i n 的连接来传递数据,数据流是从一个f i l t e r 的输出p i n 流 向相连的f i l t e r 的输入p i n ”“i i , j 2 i 输出p i n 常用的传递数据的方式是调用输入 p i n 上的i m e m i n p u t p i n :r e c e i v e 方法。 对于f i l t e r 来说,可以有好几种方式来分配媒体数据使用的内存块,可以 在堆上分配,可以在d i r e c t d r a w 的表面,也可以采用g d i 共享内存,还有其他 的一些方法,在d i r e c t s h o w 中用来进行内存分配任务的是内存分配器 ( a l l o c a t o r ) ,也是一个c o m 对象,暴露了一个i m e m a l l o c a t o r 接口 i o , i l l 2 。 当两个p i n 连接的时候,必须有一个p i n 提供一个a l l o c a t o r ,d i r e c t s h o w 定义了一系列函数调用用来确定由哪个p i n 提供a l l o c a t o r ,以及b u f f e r 的数 量和大小。 在数据流开始之前,a l l o c a t o r 会创建一个内存池,在开始发送数据流以后, 源f i l t e r 就会将数据填充到内存池中一个空闲的b u f f e r 中,然后传递给下面的 f i l t e r 。但是,源f i l t e r 并不是直接将内存b u f f e r 的指针直接传递给下游的 f i l t e r ,而是通过一个m e d i as a m p l e s 的c o m 对象,这个s a m p l e 是a l l o c a t o r 创建的用来管理内存b u f f e r 。m e d i as a m p l e 暴露了i m e d i a s a m p l e 接口,一个 s a m p l e 包含了下面的内容: 一个指向没有发送的内存的指针。 一个时间戳。 一些标志。 洫媒体采囊系统的砹h ,实现 媒体类型。 时日j 戳表明了当前时间,r e n d e r e rf i l t e r 就是根据这个时i 白j 来安排r e n d e r 顺序的。标志是用来标示数据是否中断等等,媒体类型提供了中途改变数据格式 的一种方法,不过,一般s a m p l e 没有媒体类型,表明它们的媒体类型一直没有 改变。 当一个f i l t e r 正在使用b u f f e r ,它就会保持一个s a m p l e 的引用计数, a l l o c a t o r 通过s a m p l e 的引用计数用来确定是否可以重新使用一个b u f f e r 。这 样就防止了b u f f e r 的使用冲突,当所有的f i i t e r 都释放了对s a m p l e 的引用, s a m p l e 才返回到a 1 1 0 c a t o r 的内存池,供重新使用。 2 2 5 硬件设备在g r e p h 中的作用 为了提高系统的稳定性,w i n d o w s 操作系统对硬件操作进行了隔离;应用程 序一般不能直接访问硬件。d i r e c t s h o wf i l t e r 工作在用户模式( u s e rm o d e , 操作系统特权级别为r i n g3 ) ,而硬件工作在内核模式( k e r n e lm o d e ,操作系 统特权级别为r i n g0 ) ,d i r e c t s h o w 解决的方法是,为这些硬件设计包装f i l t e r ; 这种f i l t e r 能够工作在用户模式下,外观、控制方法跟普通f i l t e r 一样,而包 装f i l t e r 内部完成与硬件驱动程序的交互。这样的设计,使得编写d i r e c t s h o w 应用程序的开发人员,从为支持硬件而需做出的特殊处理中解脱出来。 d i r e c t s h o w 已经集成的包装f i l t e r ,包括a u d i oc a p t u r ef i l t e r ( q c a p d 1 1 ) 、 v f wc a p t u r ef i l t e r ( q c a p d l l ,f i l t e r 的c l a s si d 为c l s i d _ v f w c a p t u r e ) 、 t vt u n e rf i l t e r ( k s t v t u n e a x ,f i l t e r 的c l a s si d 为c l s i dc t v t u n e r f i l t e r ) , a n a l o gv i d e oc r o s s b a rf i l t e r ( k s x b a r a x ) 、t va u d i of i l t e r ( f i l t e r 的c l a s s i d 为c l s i d _ t v a u d i o f i l t e r ) 等;另外,d i r e c t s h o w 为采用w d m 驱动程序的硬 件设计了k s p r o x yf i l t e r ( k s p r o x y a x ,) 。 可以看出,k s p r o x y a x 、k s t u n e a x 、k s x b a r a x 这些包装f i l t e r 跟其它普 通的d i r e c t s h o wf i i t e r 处于同一个级别,可以协同工作;用户模式下的f i i t e r 通过s t r e a mc l a s s 控制硬件的驱动程序m i n i d r i v e r ( 由硬件厂商提供的实现对 流媒体采集系统的i 5 1 计j 实现 硬件控制功能的d l l ) ;s t r e a mc l a s s 和m i n i d r i v e r 一起向上层提供系统底层级 别的服务。值得注意的是,这罩的s t r e a mc l a s s 是一种驱动模型,它负责调用 硬件的m i n i d r i v e r ;另外,s t r e a m c l a s s 的功能还在于协调m i n i d r i v e r 之间的 工作,使得一些数据可以直接在k e r n e lm o d e 下从一个硬件传输到另一个硬件( 或 同一个硬件上的不同功能模块) ,提高了系统的工作效率“”1 。 j 巫口 i f i ”。g ”9 h m 6 “6 口8 i i d i r t s h o - i 匝口伍夏圃 ,晶l 圆 s 啪a m i n g | 陋啦s t r 。e m i n g 1 p r o x yf i l t e rr 了_ r e s t o fg raph山rclutt c t 曹 jt k 5 ”r 0 x r xl j l 一 u s e rm o o e l 十 l k e m e i m o d e s t e a mc l a s s ff 、黼黼甜戮湖黔溺淄磁黼猢嘲 鬣渤嘲 j 旃藤眠艉鼢嘲瞩i i 溷酴渤燃戆臻疆鹦麓褰i 溺 瑚c 坤t 一d 耐c 图圈图 闰2 4 目前,市场上几种常见的硬件有以下几种“”“脚: v f w 视频采集卡。这类硬件在市场上已经处于一种淘汰的趋势;新生产的视 频采集卡一般采用w d m 驱动模型。但是,d i r e c t s h o w 为了保持向后兼容,还是 专门提供了_ 个包装f i l t e r 支持这种硬件。和其他硬件的包装f i l t e r 一样,这 种包装f i l t e r 的创建不是像普通f i l t e r 一样使用c o c r e a t e i n s t a n c e ,而要通 过系统枚举,然后b i n d t o o b j e c t 。 音频采集卡( 声卡) 。声卡的采集功能也是通过包装f i l t e r 来实现的;而且 现在的声卡大部分都有混音的功能。这个f i l t e r

温馨提示

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

评论

0/150

提交评论