(计算机应用技术专业论文)基于实时流的网络监控系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于实时流的网络监控系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于实时流的网络监控系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于实时流的网络监控系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于实时流的网络监控系统的研究与实现.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机应用技术专业论文)基于实时流的网络监控系统的研究与实现.pdf.pdf 免费下载

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

文档简介

硕士论文基于实时流的网络监控系统的研究和实现 摘要 目前,许多网络监控系统的音视频传输仍然采用模拟信号。采用模拟信号传输所 带来的问题是系统的造价高、建设周期长、适应性不强。流媒体的出现,解决了人们 所遇到的这些问题。 本文结合音视频实时监控的特点,选择了适合流媒体的传输的r t p r t c p 协议以 及d i r e c t s h o w 开发平台来构建整个系统。在对d i r e c t s h o w 平台、传输协议以及h 2 6 4 视频压缩技术进行了一定的介绍和分析之后,详细阐述了系统的整个构建过程。 首先介绍了系统的总体结构,然后对于系统在设计实现时遇到的主要问题进行了 分析并给出本系统的详细解决方法。其中重点阐述了系统的自适应传输控制和音视频 的同步的解决方案。自适应传输控制以r t p r t c p 协议的反馈的丢包率为网络标志 量,针对音频和视频的不同特点采用了不同的控制策略。同时,音视频的同步也通过 时间戳、缓冲区等方法的使用得以较好的解决。 在软件的实现部分,详细阐述了两个基于r t p 的核心f i l t e r 类的设计这两个类 封装了系统音视频数据的发送和接收功能,体现了系统的传输控制以及音视频的同步 方案并且可支持多种媒体格式。在此基础之上建立了系统f i l t e rg r a p h 的连接,完成 了系统的构建。最后,对完成的系统进行了相关的实验,验证了系统方案的有效性 关键词;实时流,f i l t e r ,自适应传输控制,音视频同步 硕士论艾基于实时流的网络监控系统的研究和葶观 a b s t r a c t n o w a d a y s ,m a n yv i d e o - a u d i ot r a n s f e r si ss t i l lb a s eo na n a l o gs i g n a l s t h ep r o b l e m so f t h i sm e a s u r ea r ch i g hc o s t , l o n gc o n s t r u c t i o np e r i o da n dw e a ka d a p t a b m 啦! ka p p e a r a n c e o f s t r e a m i n g m e d i a t e c h n o l o g ys o l v e s t h e s e p r o b l e m s a c c o r d i n gt ot h ec h a r a c t e r i s t i co fa u d i oa n dv i d e or e a l t i m em o n i t o r i n g , w cc h o o s et h e r t p r t c pa n dd i r e 圮 t s h o wd e v e l o p i n gp l a t f o r mw h i c hs u i t st h et r a n s m i s s i o no f r e a l t i m i n g m e d i a a f t e ri n t r o d u c i n ga n da n a l y z i n gt h ec o r r e l a t i v ek n o w l e d g e ,s u c ha sd i r c c t s h o w p l a t f o r m , h 2 6 4v i d e oc o d i n gt e c h n o l o g ya n dr t p r t c p , t h i sp a p e re x p o u n d t h eb u i l d i n g p r o c e s so f t h es y s t e n l | f i r s t l y , t h ep a p a e re x p a t i a t et h es u u o t u r co f t h em o n i t o r i n gs y s t e m , t h e ne x p o u n dt h e m a i np r o b l e m st h a tw em e ti nt h es y s t e mb u i l dp r o c e s sa n dg i v et h es c h e m e si nd e t a i l s , t h e r e i n t o ,t h es c h e m e so fs e l f - a d a p f i o nt r a n s m i s s i o nc o n t r o la n dm e g l i as y n c h r o n i z a t i o n a r ee x p o u n d e di np a r t i c u l a r a h m n ga tt h ed i f f e r e n c e so f a u d i oa n dv i d e ot h es e l f - a d a p l i o n t r a n s m i s s i o nc o n t r o lu s et h ed i f f e r e n tw a y st os o l v et h et r a n s m i s s i o nc o n t r o lp r o b l e m m e a n w h i l e ,t h ep a p e rs o l v et h ep r o b l e mo ft h es y n c h r o n i z a t i o no ft h ea u d i oa n dv i d e o w e l lb yu s i n gt h em e t h o d so f t h eb u f f e r , t h ef i m e s t a m p sa n ds oo n i nt h ep a r to ft h es o r w a r ea c t u a l i z a t i o n , w ee x p o u n dt h ed e s i g no ft w oc o r ec l a s s e s w h i c hb a s ei nr t p t h et w oc l a s s e se n c a p s u l a t et h es e n d i n ga n dr e c e i v i n gf l l n c t i o u so f t h e s y s t e m , i n c a r n a t et h es c h e m ew er i s e da n dt h e yc a ns u p p o r tm a n ym e d i at y p e o nt h eb a s e o ft h et w oc l a s s e s ,w ec o m p l e t et h eb u i l do ft h em o n i t o r i n gs y s t e m a tl a s t , t h e e x p e r i m e n t sp r o v et h a tt h es c h e m e sa r ee f f e c t i v e k e y w o r d s :r e a l t i m es t r e a m , f i l t e r , s e l f - a d a p t i o nt r a n s m i s s i o nc o n t r o l , m e d i as y n c h r o n i z a t i o n 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本 学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发表或 公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使 用过的材料。与我一同工作的同事对本学位论文做出的贡献均已在论文 中作了明确的说明。 研究生签名:燮兰丝堑筮2 0 0 6 年5 月2 8 日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或 上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并 授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密 论文,按保密的有关规定和程序处理。 研究生签名:名整塑丛2 。6 年5 月2 8 日 硕j 论文基于实时流的网络监控系统的研究和实现 1 引言 1 1 流媒体的发展状况 流媒体( s t r e a m i n gm e d i a ) 技术是一种新兴的网络传输技术,它能实现在互连网上 的实时顺序地传输和播放音视频等多媒体内容目前在i n t e m e t i n t r a n e t 上使用的较多 的流媒体技术主要有r e a l n e t w o r k s 公司的r e a ls y s t e m ,m i c r o s o f t 公司的w m d o w s m e d i at e c h n o l o g y 和a p p l e 公司的q u i c k t m a e ,它们是流媒体传输的系统的主流技术 【旧。 流媒体领域影响最大,技术最为成熟稳定的算是r e a l n e t w o r k s 公司的 r e a l s y s e t e m 。它为流式技术制定了一系列的标准和定义了许多名词,并有较全面的 解释。其网络流媒体技术的服务器无关性以及完整的对于不同平台的解决方案是别的 公司在短时期内无法与之抗衡使用r e a ln e t w o r k s 的网络流媒体服务器,不仅可以 是w m d o w s 系统,更可以是u n i x l i n u x 等更加稳定的网络服务器。不过,其它公司 也不甘落后。a p p l e 公司在q u i e l a i m e 播放器中自动插播广告的新技术大大增强该软 件的电子商务能力。m i c r o s o f t 则发起了“w m d o w s 媒体宽带启动协议”企业联盟 随着i n t e m e t 的飞速发展,流媒体技术的应用越来越普及,流媒体技术的竞争也越来 越激烈。 目前流媒体技术被广泛地被应用到多媒体新闻发布、在线直播、网络广告、电子 商务、视频点播、远程教育、网络电台、实时视频会议互联网地信息服务等等领域【l ,2 l , 互联网的发展决定了流媒体市场地的广阔前景,流媒体技术地的应用将为网络信息交 流带来革命性的变化。 1 2 论文的背景和研究意义 随着高层建筑的越来越多,电梯日益成为人们日常必不可少的工具。电梯的厂商、 电梯所在的大楼管理中心以及电梯的质量监督部门有必要对电梯的运行状况、故障记 录进行监控和管理,如果在电梯中安装上显示屏,就可以利用电梯作为一个宣传窗口 来进行商业或者其他的宣传。如果在电梯中安装上摄像头,就可以对电梯内的情况进 行实时的音视频的监控。本教研室的这个系统就是为电梯管理部门( 市质量监督局) 和 电梯厂商所用的电梯实时监控系统。本文讨论的重点是该系统中的音视频监控子系 统。 目前,在实际中,许多网络多媒体应用的视频传输还是采用模拟信号来完成传输。 采用模拟信号传输带来的问题就是系统的造价高、建设周期长、适应性不强。当系统 硕士论文基于实时汽的网络监控系统的研究和实现 的规模很大时,需要铺设的电缆线又粗又长。一旦系统结构变化,又要铺设新的管线, 有时还需更改现有的线路,这使系统的实施和更新很不方便。流媒体的出现,解决了 人们遇到的所有问题。流媒体的应用范围及其广泛,而对于实时监控领域的应用,主 要是运用的是实时流的技术。 由于流媒体的数据量庞大,需要在线传输,做到真正意义上的实时监视网络传输 控制成为实时监视系统的关键之所在。然而t c p 协议严格的建立连接、断开连接的 三次握手和差错重发机制并不适合数据量大、实时性强的视频数据:面向无连接的 u d p 协议由于毫无数据纠错和排序功能,似乎也不太符合要求。而目前网络还不够 强大,带宽资源有限,不能很好的保证q o s 。r t p 协议是有效的解决方法:通过r t p 去传输通讯信息,通过接收端的r t c p 反馈信息进行自适应的控制,合理利用现有的 网络协议和网络资源,以保证音视频的传输质量。 实时监控的另一个重要问题是音视频同步的问题,同步是音视频服务质量的重要 指标。由于网络状况的不确定性,流媒体的数据包会丢失、抖动或者乱序造成媒体难 以恢复到发送时的时序关系。另外,对于音频数据和视频数据由于通常采用不同通道 和不同的传输控制,包括不同的编解码时间等等都会造成音频和视频之间的相对时序 难以维持。本文利用时间戳和缓冲区相结合的方法较好的解决了这个问题。 m i c i - o s o f t 提供的d i r c c t s h o w 技术基于组件对象模型技术,支持宽松的格式变化, 提供高品质的多媒体流捕捉和回放而且有完善的时间机制。利用它可以在普通p c 机 中实现视频的客户端处理,并可以提高系统的通用性和可扩展性。本文所实现的系统 基于d i r e c t s h o w 流媒体开发平台,结合了r t p r t c p 传输协议,同时运用先进的压 缩技术,较好的解决了流媒体的一些关键问题,如音视频同步、自适应的传输控制, 使系统有着较好的健壮性和实用性,可以广泛应用于各种需要监视的应用场合。 1 3 论文研究的内容和章节安排 本文研究的内容是:在较低带宽环境下的基于实时流的网络监控系统针对系统 的实时性的要求和h 2 6 4 编码技术的特点,同时考虑到a d s l 的网络环境,研究出一 个以r t p r t c p 为传输协议,以其反馈机制为q o s 基础的音视频监控系统方案,包括 带宽的自适应调节,码率和帧率的自动调节,对音频的保护发送等;同时利用r t p 包的时间戳和d i r e c t s h o w 的时间机制较好的解决了音视频同步的问题。在此研究的 基础上实现了一个应用于电梯监控的远程的音视频监控系统。实验的结果表明本系统 的设计是有效的。本文的章节安排如下; 第一章,主要介绍了流媒体的发展现状,指出了论文的研究意义,同时介绍了论 文的研究内容。 第二章,介绍了流媒体的一般知识,分析了实时流媒体应用的主要问题和流媒体 2 硕士论文基于寅时流的网络监拧系统的研究和实现 开发工具d i r e c t s h o w 的基础知识,对过滤器( f i l t e r ) 的开发方法做了进一步分析介绍。 第三章,介绍了实时传输协议r t p r t c p 协议的基础知识。同时简介了一般的视 频压缩技术和h 2 6 4 视频压缩技术的特点和基础知识 第四章,首先介绍了系统的总体的结构,然后主要就实时流系统构建的主要的问 题包括自适应传输控制问题、音视频的同步问题,还有视频压缩编码技术的选择和 a d s l 等问题,进行论述并给出详细的解决方案 第五章,系统的软件实现。构建整个系统,其中对核心类的设计和实现进行了详 细的说明。最后是实验与分析。 第六章,是本文的总结 硕士论文 基于实时流的网络监控系统的研究和实现 2 流媒体及其开发平台d i r e c t s h o w 2 1 流媒体技术介绍 2 1 1 流媒体的概念 流媒体( s t r e a m i n gm e d i a ) ,就是应用流技术在网络上传输的多媒体文件流 ( s t r e a m i n g ) 是对在网路上传输特别的编码数字媒体内容,如音频、视频、动画片、图 形、照片、文本到最终用户的一种描述。只要是用流服务器传输媒体,通过网络向用 户计算机连续、实时传送数据包,用户能够立即且不中断地播放,并且在最终用户的 磁盘上不需要固定的存储空间,都可以说是流。一个以流方式传输的媒体文件数据包 在它开始装入后只需经过几秒或几十秒的启动延时就能利用计算机上的解压设备( 硬 件或软件) 对压缩的媒体数据包解压、重组、排序后进行播放和观看。此时后台就会 边收取多媒体数据包,边连续播放。用播放一系列连续的媒体片段( c l i p ) 来代替等待 一个完全的媒体文件下载后再播放。前一个片段播放后就从缓存空间丢弃,以腾出更 多的空间用来接收组成下一个片段的数据包。可见,流技术主要应用在多媒体数据传 输上。 非流式媒体是指声音、影像或动画等媒体文件,即采用非流式方式传输的媒体。 通常利用f r p 协议,由音视频服务器向用户计算机传输。采用的方法是先将整个文 件下载到本地计算机硬盘,然后用户可以离线浏览。3 0 秒的视频剪辑在5 6 k b s 接入 的i n t e r n c t 上需要十分钟左右的下载时间。流媒体是指在i n t e m c t i n u a a c t 中对音频、 视频或多媒体文件使用流式传输技术传输的连续媒体。在网络的音频、视频应用方面, 如今越来越多地采用流式传输技术。与以前需要把全部内容下载到本地再处理的方式 不同,流式传输技术采用边下载边处理的方式。只是开始时需要几秒或十几秒的启动 时延,随后用户在观看多媒体信息的同时,在后台连续、实时地从服务器继续下载。 因此,流式传输技术在不需要增加带宽且不占用太多的缓存容量的情况下,可以十倍、 百倍地缩小启动时延。 流媒体又根据流式传输的不同实现方式分为顺序传输流( p r o g r e s s i v es t r e a m i n g ) 和 实时传输流( r e a l t i m es t r e a m i n g ) 两种。实时传输流指在保证媒体信号带宽与网络连接 匹配的条件下,使媒体内容可被实时观看到。实时传输的媒体流需要专用的流媒体服 务器与传输协议,特别适合现场事件,也支持随机访问。用户可以控制浏览的内容。 一般来说,如视频为实时广播,或使用流式传输服务器,或应用如r t s p 的实时协议, 即为实时传输流。而顺序传输流是使用h 兀p 服务器顺序下载文件,在下载文件的同 时,用户可观看己下载的那部分,而不能跳到还未下载的剩余部分,顺序传输流不能 按用户的连接速度不同来作调整,严格来讲,它不是真正意义上的流式传输技术。 4 颈士论文 基于实对流的网络监控系统的研究和实现 2 1 2 实时流媒体的特点 本文主要涉及实时多媒体流。实时多媒体数据具有以下特点: ( 1 ) 数据量大。以分辨率传输速率为6 4 0 4 8 0 1 5 f s 的运动图像来说,每秒钟产 生的数据量就高达1 4 m b 左右。因此,为了便于传输和存储,实时多媒体数据需要先 进行压缩编码处理。 ( 2 ) 数据传输的要求较高。在几个点同时进行多发多收的场合,对系统网络的传 输要求是很高的。 ( 3 ) 对于数据处理的时间要求严格。无论是发送方的数据采集、编码压缩和数据 发送,还是接收方的数据接收、解压和播放,都要求按一定的时间顺序进行,因此收 发双方要求解决能同步。 2 1 3 实时流媒体在i p 网络下面临的问题 ( 1 ) 带宽问题 未压缩的实时数字视频要求以数十兆的速率传送。一个以m p e g - 1 方式压缩的数 字视频流需要lm b p s - 1 5 m b p s 的传输带宽,而h 2 6 1 标准的压缩数字视频流需要 6 4 k b p s - 2 m b p s 的传输带宽。从实际应用来看,使用m p e g - i 压缩的数字视频,以1 4 m b p s 左右传送带宽可以提供比较满意的效果。 ( 2 ) 实时性问题 多媒体数据的通信是面向连续比特流的,要求数据之间有严格的时间关系。通信 网络要能满足多媒体数据流的传输实时性,特别是在多发多收的应用环境下也能保证 传输的实时性。 ( 3 ) 传输可靠性问题 多媒体数据不像常规的数据传送不允许出错,而是可以有一定的差错,要不影响 信息的理解。由于降低了可靠性,延迟可以相对减小。 ( 4 ) 同步问题 包含有两种同步:流内同步是保持单个流内部的时间关系的同步;流间同步是不 同媒体之间同步( 主要是音频和视频) ,主要利用时间戳和播放缓冲相结合的方式。 2 2 流媒体开发平台d i r e c t s h o w d i r e c t s h o w 是微软w m d o w s 平台的流媒体开发框架。d i r e c t s h o w 能够提供高质 量媒体流的采集、处理与回放,简化了流媒体的开发。它支持众多的媒体类型,如 a s f ,m p e g 4 ,m p 3 等;它支持w d m 设备以及v f w 设备,同时它还与其他d i r e c t x 技术如d i r e c t s o u n d ,d i r e c t d r a w 等集成,功能非常强大。d i r e c t s h o w 是完全基于 c o m 的框架,具有良好的开放性和可扩展性。基于d h 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 ,必须将扩展的 部分以c o m 组件的形式加以实现。要使用乃至编写过滤器,就必须了解c o m 编程 的基础知识和d i r e c t s h o w 系统。 2 2 1c o m 组件编程基础 1 c o m 技术简介 c o m ( c o m m o n o b j e c t m o d e l ) 是m i c r o s o r 公司提出的一种基于二进制标准与编 程语言无关的软件构架技术,中文称为“组件对象模型”的概念c o m 是一种以组 件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互。 因为c o m 是一种标准规范,它可以在各种平台上实现。微软通过0 1 e 3 2 d l l 库提供 了一组跟c o m 相关的基础服务。c o m 本身不提供任何函数实现,但它要实现一个 称为c o m 库( c o ml i b r a r y ) 的a p i ,它提供诸如客户组件的查询以及组件的注册,反注 册等一系列服务一般来说c o m 库由操作系统加以实现,程序员不必关心其实现的 细节。 c o m 组件是一个通过接口提供服务,并可部署在其他应用中的二进制对象。组 件可以由任何第三方提供组件提供了功能复用的手段,应用程序可以通过接口访问 组件提供的服务。组件本身有唯一的标志,同样组件也给每个版本接口赋予唯一的标 志。如图2 2 1 1 所示: r j n k n o w n i d i s p a t c h 图2 2 1 1 组件和接口 2 c o m 组件的接口 任何c o m 组件都必须至少提供一个i u n k n o w n 接口。i u n k n o w n 是最基本的c o m 接口,其他接口都是由它派生来,如同m f c 中的c o b j e c t 类一样。如下: c l a s si u n k n o w n p u b l i c : 6 硕十论文 基于实时流的嘲s 监控系统的研究和实现 v i r t u a lh r e s u l t q u c r y i n t e r f a c e ( r e f i i dl i d ,v o i d + + p p v o b j ) = o ; v i r t u a l 讥o n ga d d r e f 驴= o ; v i r t u a lu l o n g r e l e a s e o = o ; 基本定义 s t r u c ti t i e u o s p e a k e r :i u n k n o v m s t d m e t h o d _ ( v o i d ,s a y h e l l o ) ( b s t rb s t r m s g ) = o ; ,派生自i u n k n o w n i u n k n o w n 接1 2 1 定义了c o m 接口的如下几个方面【3 】: 基于引用技术的生存期管理。a d d r e f 方法被调用是,c o m 对象的引用计数 加l 。r e l e a s e 被调用是,引用计数减l 。当c o m 对象的引用计数为0 室, 将删除自己。 接口标记。c o m 中的每一个接口都有一个被定义为g u i d 的唯一的标志。 同一个组件如果同时提供多个接口,则每个接口标志必须各不相同。 接口查询。c o m 组件为客户提供q u w y l n e t f a 方法以查询特定接口标志对 应的接口。如果组件实现了l i d 标志的接口,则p p v o b j 将指向该接口因 为接口标志对c o m 客户非常重要,所以声明接口就要指定它的唯一标志。 3 c o m 对象的使用 库的初始化和释放 线程在进行和c o m 有关的操作之前,必须初始化c 0 m 库,并指定线程模式。 初始化c o m 库的a p i 是c o l n i t i a l i z c 和c o i n i t i a l i z e e x 。 c o i n i t i a l i z e e x v o i d * p v r e s e r v e d ;保留,设为n u l l d w o r dd w c o l n i t ; 初始化选项,线程模式c o i n i t _ a p a r t m e n t r h r e a d e d , c o i n tm u l t i t h r e a d e d l c o h i t i a l i z e 实际上指定了线程模式为c 0 肺ta p a r n 便n r n :e a d e d 的 c o i n i t i a l i z e e x 。 使用完c o m 库后,线程要调用c o u n i n i t i a l i z e 释放c o m 库。值得注意的是必须要为 每个使用c o m 的线程分别进行初始化,释放。 c o m 对象的创建 首先要获得c o m 对象的标志。这个标志可以是g u i d ,也可以是一个便于记忆 7 硕士论文摹于实时流的网铬监控系统的研究和实现 的字符串标志,通过c l s i d f r o m p r o g l d 可以实现字符串转化为g u i d 形式。 获得c o m 对象的标志,下一步是获得c o m 对象的类厂对象。类厂对象实现了 i c l a s s f a c t o r y 接口的专门创建c o m 对象的c o m 对象。每个c o m 组件都对应着一 个类厂对象,两者共享相同的标志。下面是获得类厂对象的代码片断: i c l a s s f a c t o r y p f a c t o r y ; h r = :c o g e t c l a s s o b j e c t ( c l s i d ,c l s c t x _ i n p r o c _ s e r v e r ,n u l l , i i d _ i c l a s s f a e t o r y ( v o i d + + ) & p f a c t o r y ) ; 需要补充的是,c o m 库必须依赖注册表才能工作,因此实现了c o m 组件的d l l 或者e x e 必须注册,通过r e g s v r 3 2 s c 。注册时调用c o m 库的d l l r e g i s t e r s e r v c r 。对 于c o m 库来说,d l l r e g i s t e r s e r v e r 的典型实现是注册类型库和注册所有的类厂对象 获得了类厂的指针就可以通过c r e a t i n s t a n c e 创建实际的c o m 对象了 例如: l n = p f a c t o r y - c r e a t d n s t a n c e ( n u l l , f f ( f a i l d ( h r ) ) t r a c e 0 ( ”c r e m e i n s t a n c ef a i l e d 、_ n ”) ; r e t u r n ; ) 接口指针的获得 客户永远不会获得c o m 对象的指针,而只能请求c o m 对象的接口。上面代码 获得c o m 对象的i u n k n o w n 接口。任何c o m 对象都要提供该接口。客户从i u n k n o w n 接口出发,通过查询可以获得其他接口例如: h r = p u n k - q u e r y i n t e r f a c e ( i i d _ i h e l l o s p e a k e r 2 ,( v o i d + ) & p h e l l o s p e a k e r ) ; c r e a t e i n s t a n c e 、q u e r y h t e r f a c e 等对返回的接口自动增加了引用计数,当不再使用该 接口时,要调用r e l e a s e 方法释放接口。 p u n k - r e l e a s e 0 ; 2 2 2d i r e c t s h o w 技术简介 1 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 s h o w 的系统框架嗍如图 2 2 2 1 1 所示。为了处理各种各样的数据源、媒体格式、硬件设备,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 间通过p i n 互联。互联的f i l t e r 在f i l t e rg r a p h 中工作。而f i l t e rg r a p h 是由f i l t e r g r a p hm a n a g e r 控制的。 8 硕士论文 纂于实时流的网络监控系统的研究和实现 图2 2 2 1d i r e 娥s h o w 的框架 图中间最大的部分就是d i r e 虻t s h o w 系统。d i r e c t s h o w 使用一种叫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 rg r a p h 中是按一定的顺序被连接成一条“流水线”来协同工作的。图2 2 2 1 2 向您展示一个播放a v i 文件的f i l t e r c 】f a p h : 图2 2 2 2a v i 文件的播放f i l t e rg r a p h 2 几个重要的概念 f i l t e r f i l t e r 是一个c o m 组件,它由一个或多个p i n 组成。p i n 也是一个c o m 组件。 f i l t e r 文件的扩展名为a x ,但也可以是m l 。f i l t e r 根据其包含i n p u tp i n 或o u t p u tp i n 的种类或在f i l t e rg r a p h 的位置,大致可分为三类:s o u r c ef i l t e r ( 仅有o u t p u tp i n ) 。 t r a n s f o r mf i l t e r ( 同时具有i n p u tp i n 和o u t p u tp i n ) 和r e n d e r e rf i l t e r ( 仅有i n p u tp i n ) 。 s o u r c ef i l t e r s 主要负责取得数据,数据源可以是文件、因特网或者本地计算机里的采 9 硕士论文基于实时流的嗣络监控系统的研究和实现 集卡、数字摄像机等,然后将数据往下传输。t r a n s f o r mf i l t e r s 主要负责数据的格式 转换、传输。r e n d e r i n gf i l t e r s 主要负责数据的最终去向。可以将数据送给声卡、显 卡进行多媒体的演示,也可以输出到文件进行存储。值得注意的是,三个部分并不是 都只有一个f i l t e r 去完成功能。每个部分往往是有几个f i l t e r 协同工作的。比如, t r a n s f o r m f i l t e r s 可能包含了一个m p e g 的解码f i l t e r 以及视频色彩空间的转换f i l t e r 、 音频采样频率转换f i l t e r 等等。除了系统提供的大量f i l t e r 外,开发者可以定制自己 的f i l t e r ,以完成所需要的功能。 p i n p i n 的概念来自于硬件。在d i r e c t s h o w 中,p i n 的角色就是流接口,只不过p i n 是进程内组件的端口。p i n 在d i r e c t s h o w 中扮演了非常重要的角色。每个p i n 可以支 持若干种媒体格式,f i l t e r 间的连接实际是p i n 间的协商过程或者可以这么说,f i l t e r 封装了处理功能,p i n 封装了通信功能。 f i l 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 是d i r e c t s h o w 架构的核心。它位于应用程序与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 r 发送 状态变化命令。相反,它只发送单个命令给f i l t e rg r a p h ,由f i l t e rg r a p hm a n a g e r 把这个命令发布到各个f i l t e r 去。 ( 2 ) 建立参考时钟 g r a p h 中的所有f i l t e r 使用相同的时钟,这个时钟叫参考时钟。参考时钟使所有 的流能够同步。f i l t e rg r a p h 通常选择声卡时钟或系统时钟作为参考时钟。 ( 3 ) 将f i l t e r 事件回传给应用程序 f i l t e rg r a p h 将f i l t e r 事件放入事件队列,并通知应用程序处理。这与w i n d o w s 的消息处理机制很类似。 ( 4 ) 创建f i l t e rg r a p h f i l t e rg r a p h 为应用程序提供a p i 来创建f i l t e rg r a p h 。包括了添加删除f i l t e r 连接,断开f i l t e r 等嘲 2 2 3f i l t e r 开发的一般原理 。 对于f i l t e r 的开发来讲首先第一步选择好f i l t e r 的基类很重要,当然选择f i l t e r 的基类也是很灵活的,没有绝对的标准。能够通过c t r a n s f o r m f i l t e r 实现的f i l t e r 当 然也能从c b a s e f i l t e r 一步一步实现。一般来说,开发f i l t e r 有以下几个步骤: 首先,必须明确这个f i l t e r r 要完成什么样的功能,即要对f i l t e r 项目进行需求分 析。请尽量保持f i l t e r 实现的功能的单一性。如果必要的话,可以将需求分解, 由 1 0 硕士论文基于实时流的网络监控系统的研究和实现 两个( 或者更多的) 功能单一的f i l t e r 去实现总的功能需求。 其次,要应该明确这个f i l t e r 大致在整个f i l t e rg r a p h 的位置,这个f i l t e r 的输入 是什么数据,输出是什么数据,有几个输入p i n 、几个输出p i n 等等。可以画出这个 f i l t e r 的草图。弄清这一点十分重要,这将直接决定要使用哪种“模型”的f i l t e r 。 比如,如果f i l t e r 仅有一个输入p i n 和一个输出p i n ,而且一进一处的媒体类型相同, 则一般采用c t r a n s l n p l a c e f i l t e r 作为f i l t e r 的基类;如果媒体类型不一样,则一般选 择c t r a n s f o r m f i l t e r 作为基类。 再者,考虑一些数据传输、处理的特殊性要求。比如f i l t e r 的输入和输出的s a m p l e 并不是一一对应的,这就一般要在输入p i n 上进行数据的缓存,而在输出p i n 上使用 专门的线程进行数据处理。这种情况下,f i l t e r 的基类选择s o u r c e 为宜( 虽然这个f i l t e r 并不是源f i l t e r ) 。当f i l t e r 的基类选定了之后,p i n 的基类也就相应选定了接下去, 就是f i l t e r 和p i n 上的代码实现了。有一点需要注意的是,从软件设计的角度上来说, 应该将逻辑类代码同f i l t e r 的代码分开【6 】。 对于输入p i n 来说,需要实现基类所有的纯虚函数, 比如c h e c k m e d i a t y p e 等。 在c h e c k m e a i a t y p c 内可以对媒体类型进行检验,看是否是所期望的那种。因为大部 分f i l t e r 采用的是推模式传输数据,所以在输入p i n 上一般都实现了r e c e i v e 方法。 有的基类里面已经实现了r e c e i v e ,而在f i l t e r 类上留一个纯虚函数供用户重载进行 数据处理。这种情况下一般是无需重载r e c e i v e 方法的,除非基类的实现不符合实际 要求。而如果重载了r e c e i v e 方法,一般会同时重载以下三个函数e n d o f s t r e a m 、 b e g i n f l u s h 和e n d f l u s h 。 而对于输出p i n 的实现,一般情况下,需要实现基类所有的纯虚函数, 除了 c h e c k m e d i a t y p e 进行媒体类型检查外,一般还有d e c i d e b u f f e r s i z e 以决定s a m p l e 使 用内存的大小,g e t m e d i a t y p e 提供支持的媒体类型。 最后,简介一下f i l t e r 的实现。首先当然也要实现基类的所有纯虚函数。除此之 外,f i l t e r 还要实现c r e a t e i n s t a n c e 以提供c o m 的入口,实现 n o n d e l e g a t i n g q u e r y i n t e r f a c e 以暴露支持的接口。开发者创建了白定义的输入、输出 p i n ,则一般还要重载g e t p i n c o u n t 和g e t p i n 两个函数。 硕士论文 基于实时流的网络监控系统的研究和实现 3 视频传输协议和视频压缩技术 3 1 实时传输协议 3 1 1r t p 的特点 为了支持网络实时传输服务,提供数据实时传输的标准,1 9 9 6 年i e t f ( i n t e r n e t e n g i n e e r i n gt a s kf o r c e ) 的视频,音频工作组制订了r t p 实时传输协谢0 l 。 在r f c l 8 8 9 中r t p 被定义为紧密相关的两部分; 1 、实时传输协议r t p ( r e a l - t i m et r a n s p o r tp r o t o c 0 1 ) 用来传输具有实时特点的数 据。 2 , r t p 控制协议r t c p 偎t pc o n t r o lp r o t o c 0 1 ) ,用来控制服务指令,并在正在 进行的会话里传送参加方的信息。 在协议设计时,r t p 遵循c l a r k 和t e n n e n h o u s e 提出的a l f & i l p ( a p p l i c a t i o n l e v e l f r a m i n ga n di n t e g r a t e dl a y e rp r o c e s s i n g ) 原则,即:集成共性,个性扩展。在实现时 r t p 与应用程序紧密结合,根据应用的特点和要求来构造与剪裁控制策略,提高会话 质量和网络服务的公平性。 总的来说r t p 协议具有以下特点: 一、简单性 r t p 协议不具备传输层的完整功能,其本身也不提供任何机制来保证实时地传输 数据,不保证服务质量,而是依赖下层协议提供的服务来完成这些任务。它不保证提 交或者防止乱序提交,也不假设下层网络是可靠的并且提交的分组是有序的。r t p 报文甚至不包括长度和报文边界的描述,而是依靠下层协议提供长度标识和长度限 制。另外,r t p 协议将部分运输层协议功能( 比如流量控制) 上移到应用层完成,简化 了传输层处理,提高了该层效率】。 二、灵活性 r t p 协议的数据报文和控制报文使用相邻的不同端口,数据流和控制流分离, 这样大大地提高了协议的灵活性,处理也简单。 三、支持组播 如果下层网络支持,r t p 可支持采用组播的传送方式将实时数据传送到多目的地, 满足多媒体会话的需要。 四、可扩展性 r t p 协议通常为一个具体的应用提

温馨提示

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

评论

0/150

提交评论