(通信与信息系统专业论文)基于directshow的web视频监控系统的研究与实现.pdf_第1页
(通信与信息系统专业论文)基于directshow的web视频监控系统的研究与实现.pdf_第2页
(通信与信息系统专业论文)基于directshow的web视频监控系统的研究与实现.pdf_第3页
(通信与信息系统专业论文)基于directshow的web视频监控系统的研究与实现.pdf_第4页
(通信与信息系统专业论文)基于directshow的web视频监控系统的研究与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(通信与信息系统专业论文)基于directshow的web视频监控系统的研究与实现.pdf.pdf 免费下载

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

文档简介

西南科技大学硕士研究生学位论文第1 页 摘要 随着带宽的不断升级和三网融合的快速部署,网络视频监控以它内容直 观、信息量丰富的优点越来越受用户的青睐。视频监控在近几十年经历了三 个发展阶段,本课题研究第三代监控系统的关键技术和实现原理。 本文分析了视频监控技术的研究背景和应用价值,研究了w e b 技术的 模型和优点,研究了d i r e c t s h o w 技术的应用和开发。并将这三种技术有效的 结合起来,实现了一种基于d i r e c t s h o w 的w e b 视频监控系统。在系统监控 端的研究和设计过程中,详细描述了h 2 6 4 的编码原理和具体实现过程,对 t so v e ri p 传输技术进行了深入的研究,并完成了d i r e c t s h o w 过滤器的编写。 本文分析了d s s 服务器源码的框架结构,并进行二次开发,完成了视频监控 服务器分发子系统的设计。在客户端设计中,完成了监控流的请求、解码和 播放,并实现了a c t i v e x 控件的封装。 系统设计完成后,对系统的测试过程中,系统运行稳定、可靠、可移植 性好、组网灵活。视频监控的各项参数达到了预期的目标,充分验证了本文 研究方案的可行性。本课题的研究对第三代视频监控系统的应用有较高的参 考价值。 关键词:视频监控;d i r e c t s h o w ;h 2 6 4 ;a c t i v e x :d s s 西南科技大学硕士研究生学位论文第1 i 页 a b s tr a c t w i t ht h ec o n s t a n tu p g r a d i n go fb a n d w i d t ha n dr a p i dd e p l o y m e n to f t h r e e n e t w o r k sc o n v e r g e n c e ,n e t w o r kv i d e om o n i t o rg e t si n t og o o dg r a c e sb ym o r e a n dm o r ep e o p l eb e c a u s eo fi t si n t u i t i o n i s t i cc o n t e n ta n da b u n d a n ti n f o r m a t i o n i th a su n d e r g o n et h r e ep h a s e so fd e v e l o p m e n ti nt h ep a s ts e v e r a ld e c a d e s t h i s t o p i cr e s e a r c h e sk e yt e c h n o l o g ya n di m p l e m e n t a t i o np r i n c i p l eo ft h et h i r d g e n e r a t i o n a lm o n i t o r i n gs y s t e m t h i sp a p e ra n a l y s e st h er e s e a r c hb a c k g r o u n da n da p p l i c a t i o nv a l u eo f v i d e o m o n i t o rt e c h n o l o g y ,r e s e a c h st h em o d e la n d a d v a n t a g e so fw e bt e c h n o l o g y , r e s e a c h sa p p l i c a t i o na n de x p l o i t a t i o no fd i r e c t s h o wt e c h n o l o g y i tp u t sf o r w a r d aw e bv i d e om o n i t i n gs y s t e mb a s e dd i r e c t s h o wt h r o u g hc o m b i n a t t i n gt h e s e t h r e et e c h n o l o g i e sp e r f e c t l y i nt h er e s e a r c ha n dd e s i g nw o r ko ft h em o n i t i n g f o r w o r d s y s t e m ,i td e s c r i b e si n d e t a i lt h ec o d i n gp r i n c i p l ea n dr e a l i z a t i o n p r o c e s so fh 2 6 4 ,d e e p l yr e s e a r c h e st h et so v e ri pw h i c hi sat r a n s m i s s i o n t e c h n o l o g y , a n dc o m p i l e st h ed i r e c t s h o wf i l t e r t h i sp a p e ra n a l y s e st h ef r a m e s t r u c t u r eo fd sss e r v e rc o d e ,a n dc o m p l e t e sv i d e om o n i t i n gs e r v e rd i s t r i b u t i o n s u b s y s t e mb ys e c o n d a r yd e v e l o p m e n t i nt h ed e s i g no fc l i e n t ,i tc o m p l e t e st h e r e q u s t i n g ,d e c o d i n g ,p l a y i n go fm o n i t i n g s t r e a m ,a n di ta l s or e a l i z e st h e e n c a p s u l a t i o no fa c t i v e xc o n t r 0 1 f i n a l l y , i nt h ep r o c e s so ft e s t i n ga f t r e rd e s i g n ,t h es y s t e mw h i c hh a sg o o d p o r t a b i l i t ya n df l e x i b l en e t w o r k i n gr u n ss t a b l ya n dc r e d i b l y , p r e v i o u st a r g e t sa r e o b t a i n e d i th a sf u l l yv a l i d a t e dt h e f e a s i b i l i t yo ft h er e s e a r c hs c h e m e t h e r e s e a r c ho ft h i s t o p i ch a s a g r e a tr e f e r e n c e t ot h e a p p l i c a t i o no ft h i r d g e n e r a t i o n a lm o n i t o r i n gs y s t e m k e yw o r d s :v i d e om o n i t o r ;d i r e c t s h o w ;h 2 6 4 ;a c t i v e x ;d s s 西南科技大学硕士研究生学位论文 第l 页 1 绪论 1 1选题的背景及意义 随着计算机技术、通信技术以及视频编解码技术的快速发展和应用,网 络视频监控技术应运而生,它是在原有的视频监控技术基础上,结合当前的 网络传输技术,用来满足远程视频监控的需求。网络视频监控技术因其人机 交互友好性、网络分布性和内容直观性,突破了传统信息产业的界线,已经 发展成为一个新兴的i t 产业,被广泛应用于众多领域,比如,交通监管、 水利监控、公共场所监控、文物监控等。宽带接入技术的不断成熟,使企业 及个人通过互联网获取远程视频监控信息成为可能。越来越多的企业单位和 科研机构正在致力于无线网和有线网的视频监控技术的研发工作。在今天, 视频监控已经逐步进入了一个网络化、数字化、智能化的新时代,本地监控 向远程网络监控的发展势不可挡。 w 曲是建立在b s ( 浏览器服务器) 模型之上,以h t t p 协议为基础, 使用h t m l 语言,能够提供面向各种网络服务的、并使用大致相同的用户 界面的信息浏览系统。w e b 技术因为其实用性和便捷性,从一开始就得到了 快速的发展并风靡全球。基于w e b 的网络视频监控系统将w e b 技术的优点 与网络视频监控技术结合起来,在互联网的多媒体技术和i p t v 技术之上, 利用现有的网络基础设施,以高性价比实时传送监控数据,从而提供更方便、 更稳定、更高质量的视频监控服务。研究基于w e b 的网络视频监控系统对 处于高端领域的视频监控技术的普及和应用具有良好的推动作用和参考价 值。 网络视频监控在全世界范围内得到了广泛的研究和应用,在中国,它也 正处于高速发展时期。现有的网络视频监控系统的缺点是系统移植性差、难 以做到大规模组网、并发能力不强。另外,在i n t e m e t 网络上传输监控数据, 尤其是实时的高清音视频流,传输数据量较大,需要较高的带宽、且对数据 传输实时性和稳定性都有较高的要求。而现阶段的互联网环境是:网络带宽 有限,网络数据包的传输可能会产生不可预知的延时和抖动,并且还不可避 免地出现i p 丢包现象。如何在现有的网络环境下,实现实时稳定的网络音 视频监控是一个极具挑战的课题。 西南科技大学硕士研究生学位论文 第2 页 本课题的研究是在现有流媒体技术和w 曲技术的基础上,开发出具有 低成本、方便实用、传输带宽低、视频质量高、网络兼容性和系统移植性好 的网络音视频监控系统,这对满足日益扩大的远程视频监控、远程视频控制、 远程应急处理指挥等需求具有重要意义。 1 2国内外研究现状与发展趋势 1 2 1 视频监控的发展历程 视频监控在近几十年发展中,伴随着信息技术、多媒体技术和网络通信 技术的高速发展,历经三个阶段的应用发展。 第一代视频监控系统一c c t v ( c l o s ec i r c u i tt v ) 系统:闭路电视监控系 统是在闭路电视系统的基础上构建的,它是由显示器、摄像机和磁带录影机 等构成的模拟监控系统n ,。该系统中,前端监控摄像机采集的监控流信号不 经过数字化处理,直接由专门的视频电缆,将视频信息以模拟信号直接传输 到模拟视频矩阵,再由视频矩阵输出到监视器。第一代视频监控的缺点非常 明显,很难做到多路视频监控的切换,组网不灵活,抗干扰能力极差,不能 对前端采集设备进行控制且价格昂贵,很难满足大型监控系统的需求。 第二代视频监控系统一数字数字视频监控d v r ( d i g i t a lv i d e or e c o r d e r ) 系统:第二代视频监控参数得益于计算机技术和多媒体压缩处理技术不断发 展,系统由视频采集卡、工控机、监控系统软件、应用服务软件组成瞳,。现 代计算机的强大处理能力提高了前端监控的采集速度和编码效率,显示器的 高分辨率使多路视频监控的分格显示成为可能,改善了视频监控的渲染质 量。但d v r 系统在设计上的缺陷也逐渐暴露出来,缺乏友好的人机交互界 面,存在操作繁琐、移植性差、组网规模较小、维护相对困难。 第三代视频监控系统一网络视频监控系统:它是以各种网络为依托,基 于p c 和其他手持设备,运用最新的多媒体编码技术、现场总线技术和网络 通信技术而建立的一套软硬结合的系统,使监控技术的发展上了一个新的台 阶。第三代视频监控系统正处于高速发展的时期,它应满足如下要求:系 统采用b s 技术,系统构架简单;组网灵活,能完成大规模的组网。服务区 域广,只要有网络接入的地方就可以通过浏览器登录监控页面;服务器实现 智能化管理,并且性能稳定,可以接入有线网络或无线网络;服务器端设计 西南科技大学硕士研究生学位论文第3 页 基于实时多任务操作平台设计,并发处理能力强。 当前网络视频监控技术获得良好的发展机遇,不少科研机构和企业正对 无线通信视频监控技术进行研究开发并取得不错效果,相信伴随着物联网技 术和三网融合技术的应用发展,真正数字化、网络化、智能化的视频监控不 再是期待。 1 2 2流媒体技术的发展状况 近年来,作为计算机、多媒体、信号处理、网络通信的交叉学科,流媒 体技术的应用和研究得到了快速发展。流媒体技术作为一种炙手可热的网络 视频技术,它能实现在互连网上的实时综合处理声音、文字、图像。目前在 互联网上使用的较多的流媒体技术主要有r e a l n e t w o r k s 公司的r e a l s y s t e m , m i c r o s o f t 公司的w i n d o w sm e d i a 和a p p l e 公司的q u i c k t i m e ,在流媒体应 用领域影响最大1 4 j 。流媒体技术广泛的被用于网络视频监控中,它的迅速发 展进一步推动了新一代网络视频监控的发展和应用。 1 3主要研究内容与章节安排 本课题来源于江苏联优信息科技有限公司视频互联产品的一个子项目, 结合项目要求,基于微软d i r e c t s h o w 多媒体处理框架并采用b s 架构进行开 发,重点实现在较低带宽下提供高质量的视频监控服务,整个系统应实用、 方便、升级简单,并且实现流媒体分发服务器的高并发处理和灵活组网。设 计开发这套监控系统的核心技术主要有:d i r e c t s h o w 技术,音视频编解码技 术,网络传输技术,a c t i v e x 技术,以及流媒体服务器技术。研究方向主要 集中在以下几个方面: ( 1 ) 音视频采集方面,基于w i n d o w s 平台,采用微软推出的较为成熟的 d i r e c t s h o w 技术。主要研究其使用的c o m 组建技术,过滤器的设计,以及 g r a p h 的管理和控制等。 ( 2 ) 数据压缩方面,采用现阶段最先进的编码标准- h 2 6 4 编码,能够 在较低带宽的i p 网络下保证监控视频流的质量。主要研究h 2 6 4 的新特性和 实现原理。 ( 3 ) 传输方面,采用t so v e ri p 的传输方式,该传输方式有较好的容错 西南科技大学硕士研究生学位论文 第4 页 和纠错能力,能够适应恶劣的网络环境。主要研究t s 的复用和解复用机制, 以及t so v e ri p 的传输技术。 ( 4 ) 传输协议方面,采用r t p r t c p 协议来保证视频监控的q o s 服务。 主要研究协议的封装结构和控制机制。 ( 5 ) 服务器设计方面,加入转码支持,较好的保证了跨网络和跨终端的 视频监控质量。主要研究d a r w i ns t r e a m i n gs e r v e r 的程序架构和二次开发思 想。 ( 6 ) 客户端设计方面,结合w e b 技术,实现客户端程序a c t i v e x 控件 封装,并嵌入到浏览器中完成视频监控流的请求、解码和渲染,方便了用户 的使用和升级应用。 对于以上所提到的研究内容,本文的内容安排如下: 第一章为绪论,主要讨论网络视频监控的国内外研究背景,课题研究的 意义和目的。 第二章描述系统的整体构架以及各部分组成,介绍了流媒体相关技术。 第三章完成监控端模块的设计,基于d i r e c t s h o w 实现了音视频数据的采 集,并实现了监控流的编码、复用和传输。对d s s 进行二次开发,完成了 流媒体分发服务器的设计。 第四章完成客户端的设计,实现了监控流的请求、解码、播放,并完成 了客户端软件a c t i v e x 控件的封装。 第五章为系统测试,完成对整个系统的测试,验证了课题研究方案的可 行性。 西南科技大学硕士研究生学位论文第5 页 2 流媒体技术及监控系统架构 2 1 流媒体技术概述 2 1 。1 流媒体概述 简单的讲,流媒体就是i n t e m e t 传输多媒体数据。所谓的多媒体包括文 本、图片、声音、动画等,但主要以音视频数据为主。由于音视频数据量巨 大、数据传输的要求较高、对数据处理的时间要求严格。所以在i n t e r n e t 网 络上传输受到了很大的限制,尤其是采用传统的传输方式,在网络带宽有限 的情况下,常常造成非常大的传输延时。为了更好的在i n t e m e t 网络上传输 实时音视频数据,产生了流式传输技术。流式传输采用边下载边处理的思想 实现流媒体服务器向客户端实时、连续地传送音视频数据,和以前先下载完 成再处理的思想不同。在流式传输系统中,用户不必等到整个媒体文件全部 下载完成,而只需经过短暂的启动延时即可进行媒体流的观看,。流式传输 过程如图2 1 所示,客户端通过w e b 服务器,找到流媒体服务器,采用h t t p 协议与w e b 服务器交换控制信息,然后浏览器启动媒体播放器,采用r t s p 协议从流媒体服务器获取媒体参数。并初始化播放器,流媒体服务器通过 r t p 协议将多媒体数据推送到客户端播放器进行解码播放。 图2 - 1 流式传输过程 根据实现方式的不同,流式传输分为实时传输流( r e a lt i m es t r e a m i n g ) 和顺序传输流( p r o g r e s s i v es t r e a m i n g ) 。实时流式传输能够实时的推送媒体流 数据,支持用户随机访问,可以应用于现场广播、视频监控、电视直播等。 但实时流式传输必须保证足够的带宽和采用专用的传输协议,以保证高质量 西南科技大学硕士研究生学位论文第6 页 的视频服务。顺序流式传输则按照一定的顺序传送媒体流,它不支持用户随 机访问,在某一时刻,只能观看已下载的部分。顺序流式技术常常应用在传 输高清的短片,如v o d 的广告、片尾等,顺序流式传输不适合现场直播和 视频监控等。 2 1 2 流媒体相关技术 2 1 2 1 相关协议 r t p 、r t c p 和r t s p 是流媒体传输所用的主要协议与关键技术。 实时传输协议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 ) 是一个属于应用层的 协议,r t p 协议能够支持在单播和多播网络服务中传输实时的音视频数据。 r t p 通常位于u d p 协议之上,采用u d p 协议封装r t p 来传输数据具有很 强的并发性,以保证较高的实时性,但是r t p 同样可以工作于t c p 或者其 它协议之上。一台计算机上可以同时多个r t p 会话,当客户端或服务器开 始一个r t p 会话时,将使用两个端口号,分别分配给r t p 和r t c p 。r t p 协 议并没有提供可靠的传输机制来保证数据包的按序到达,也没有实现拥塞处 理和流量控制,它依靠r t c p 协议以及应用程序来提供这些服务支持。r t p 协议提供了端到端网络数据传输的功能,适合用于组播和点播传输实时的音 视频数据。 r t c p ( r t pc o n t r o lp r o t o c 0 1 ) 全称是r t p 控制协议,与r t p 密不可分。 r t c p 和r t p 协议配合使用以提供高质量的q o s 服务。在r t p 会话期间, r t c p 允许收发双方相互传送一系列报告,通过这些报告可以实时的监视和 控制数据的传输,报告的内容是关于当前网络状况和数据传输的额外信息, 如数据包丢包率、传输时延、抖动等。发送方通过分析r t c p 报文可以动态 的改变数据包传输速率以适应当前的网络状态。 r t s p ( r e a l t i m es t r e a m i n gp r o t o c 0 1 ) 协议是一个流媒体控制协议,它 是由r e a ln e t w o r k s 和n e t s c a p e 两个公司联合提出的。在语法规则和操作上 与h t t p 类似。主要区别在于r t s p 协议是一个有状态、对称的协议,用户 可以在播放视频的同时进行快进、快退、暂停和播放等控制操作阽1 。 2 1 2 1 流媒体编码技术 西南科技大学硕士研究生学位论文第7 页 流媒体中使用的另一项关键技术是数据压缩技术,由于原始的音视频数 据量巨大,如3 2 0 * 2 4 0 的普通视频数据的流量大概为2 m b s ,不适合在互联 网上传输,必须先经过编码压缩。i t u t 和i s o i e c 制定了一系列音视频编 码技术标准,如h 2 6 x 系列和m p e g 系列标准,这些编码标准的制定极大 地推动了流媒体技术的发展。目前,在低速率视频传输的应用方面,主要有 h 2 6 1 、h 2 6 3 、h 2 6 4 三种编码标准。h 2 6 1 是一个典型的采用第一代编码 技术的混合编码方案,大体上分为帧内编码和帧间编码两种模式。h 2 6 3 标 准是在h 2 6 1 基础上以混合编码为核心,为低于6 4 k b p s 的窄带信道制定的 视频编码标准。h 2 6 4 是由i t u t 和i s o 两个国际组织联手制定的新一代数 字视频编码标准,并且和m p e g 系列标准形成技术体系,是一种高性能的 视频编解码技术。h 2 6 4 继承了h 2 6 3 和m p e g l 、2 、4 视频编码标准的优 秀之处,充分考虑了多媒体通信对视频编解码的各种要求,因而具有明显的 优势。h 2 6 4 的技术特点主要表现在以下几个方面:高压缩率;网络适应性 强;具有动态码率调整特性。课题采用h 2 6 4 编码标准以降低视频监控所需 带宽。在音频编码方面,主流的音频编码标准主要有g 2 7 x 系列编码、a a c 、 m p 3 、a m r 等。相比之下,a a c 编码具有很高的压缩比,音频保真度高, 能够在较低带宽下提供高质量的音频服务。 2 2d i r e c t s h o w 技术及应用 2 2 1 g o m 组件技术 c o m ( c o m m o no b j e c tm o d e l ) 技术,即组件对象模型。c o m 是一种 以组件为基本单元的对象模型,各个组件之间通过某种统一的方式交换数 据,也是一种独立于语言的共享二进制代码。c o m 提供了一种适用于组件 之间交互的规范,并且这种规范不依赖任何特定的语言,因此,c o m 使不 同语言之间的并行开发成为可能。当c o m 组件运行时,可以不用重新编译 就能完成替换组件等工作,因此,组件技术的使用,极大地方便了程序的升 级。c o m 技术由规范和实现两部分组成:规范部分定义了组件之间通信方 式,这种通信方式独立于语言或是操作系统,主要符合规范,可以使用任何 一种语言进行开发;实现部分是为c o m 规范提供服务的,完成组件之间的 通信阳】。 西南科技大学硕士研究生学位论文第8 页 每一种语言在处理对象的时候都有所不同,例如,c + + 可以在堆栈中创 建对象也可以动态分配。由于c o m 技术与语言无关,所以c o m 库必须为 自己提供对象管理例程。要创建c o m 对象并从这个对象获得接口,必须调 用c o m 库的a p i 函数c o c r e a t e l n s t a n c e 0 ,类工厂是负责产生c o m 对象的, 其实它本身也是个c o m 对象。每一个c o m 对象都拥有一个对应的类工厂, 支持接口i c l a s s f a c t o r y ,而接口方法i c l a s s f a c t o r y :c r e a t e i n s t a n c e 就是用于 创建相应的c o m 对象。当c o m 组件以d l l 的形式存在时,类工厂由引出 函数d l l g e t c l a s s o b j e c t 创建。如图2 2 所示,c o m 对象的创建过程如下: ( 1 ) c o c r e a t e l n s t a n c e 调用c o g e t c l a s s o b je c t ( ) 方法。 ( 2 ) c o m 库根据c l s i d 在注册表中寻找到d l l 路径载入到进程中。 ( 3 ) 调用引出函数d l l g e t c l a s s o b j e c t ( ) 仓0 建类工厂。 ( 4 ) 在方法c o c r e a t e l n s t a n c e 0 ,类工厂对象调用c o m 对象提供的 方法c r e a t e i n s t a n c e ( ) 创建c o m 对象。 ( 5 ) 类工厂把c o m 对象指针返回给c o c r e a t e i n s t a n c e ( ) 方法。 ( 6 ) 用户可直接通过返回指针调用c o m 对象。 包建l 孙撇孙缸蕾蹿 c 接黝对象 图2 - 2c o m 对象创建示意图 在c o m 中,所有的对象都有自己的一个引用计数,调用者必须知道对 象该在什么时候被销毁,当对象引用计数为零时,c o m 对象将自己从内存 中释放。可见,对象处理的分为两个阶段:创建和销毁,缺一不可。 西南科技大学硕士研究生学位论文第9 页 2 2 2dir 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 来完成, 这样,开发多媒体应用就变得非常简单。d i r e c t s h o w 系统框架如图2 3 所 示,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 是d i r e e t s h o w 中最基本的概念。d i r e e 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 rg 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 中的最小功能模块。f i l t e r 一般由一个或多个p i n 组成,f i l t e r 之间通过p i n 相互连接,构成一条顺序的链路。p i n 也是一种c o m 组件,并且每一个p i n 上都实现i p i n 接口,该接口提供了相关的调用函数。p i n 可以分为输入p i n 和输出p i n ,输入p i n 提供接口i m e m l n p u t p i n ,该接口提供了r e c e i v e 方法, 用于接收上一级f i l t e r 的输出数据,而输出p i n 一般继承于基类 c b a s e o u t p u t p i n ,实现数据输出d e l i v e r 方法,实现数据传输到下游的f i l t e r 。 图2 3 :d i r e e t s h o w 系统框架 如图2 3 所示,按照功能来分,d i r e c t s h o wf i l t e r 主要分为s o u r c ef i l t e r 、 t r a n s f o r mf i l t e r 、和r e n d e r i n gf i l t e r 三类。 ( 1 ) s o u r c ef i l t e r 仅含有输出p i n ,没有输入p i n 。它负责获取源数据, 源数据主要来自文件系统、网络接收、数据采集卡等,然后将数据推送到下 西南科技大学硕士研究生学位论文第1 0 页 游f i l t e r 。在课题中主要通过采集卡和网络获取数据。 ( 2 ) t r a n s f o r mf i l t e r 既有输入p i n 也有输出p i n 。它主要负责数据流的 格式转换,例如对音视频数据进行编解码,然后将数据流继续传输到下一级 f i l t e r 。本课题使用t r a n s f o r mf i l t e r 主要完成对监控音视频流的编解码和复 用。 ( 3 ) r e n d e rf i l t e r 只有输入p i n ,没有输出p i n 。它主要完成数据流的渲 染,比如音视频数据流的播放,也可以将数据流发送到网络或者进行储存。 利用d i r e c t s h o w 技术进行应用软件开发,主要涉及到两项关键技术: 过滤器图表的建立和过滤器的开发。过滤器图表的建立过程有如下几个步 骤: ( 1 ) 创建一个f i l t e rg r a p hm a n a g e r 组件,关键代码如下: i g r a p h b u i l d e r 奉m _ p g r a p h b u i l d e r2n u l l ; h r e s u l t h r = c o c r e a t e l n s t a c e ( c l s i d _ f i l t e r g r a p h , n u l l ,c l s c t x i n p r o c ,i i d i g r a p h b u i l d e r , ( v o i d 料) & mp g r a p h b u i l d e r ) ; ( 2 ) 根据实际的需求,连接各f i l t e r 创建一条完整的链路。连接链路有 智能连接和手动创建两种方式,智能连接通过r e n d e r ( ) 、r e n d e r f i l e 0 接口来 完成,例如打开一个本地文件,最简单的代码如下: h r e s u l th r = m _ p g r a p h b u i l d e r 一 r e n d e r f i l e ( l d :t e s t m p 4 n u l l ) ; 手动连接首先需要通过调用i g r a p h b u i l d e r :a d d f i l t e r 接口方法将指定c l s i d 的过滤器加入到过滤器图表中,然后可以调用i g r a p h b u i l d e r :c o n n e c t d i r e c t 或是i g r a p h b u i l d e r :c o n n e c t 来进行连接。当需要删除某个过滤器时,可调 用i g r a p h b u i l d e r :r e m o v e f i l t e r 接口。 ( 3 ) 调用f i l t e rg r a p hm a n a g e r 的各个接口方法进行媒体控制,比如调 用i m e d i a c o n t r o l :s t o p ( ) 接口方法控制f i l t e rg r a p h 的进入停止状态,代码如 下: i m e d i a c o n t r o l 木p m e d i a c o n t r o l = n u l l ; p g r a p h b u i l d e r - q u e r y i n t e r f a c e ( i i d i m e d i a c o n t r o l , ( v o i d 水幸) & m _ p m e d i a c o n t r 0 1 ) ; p m e d i a c o n t r o l 一 s t o p ( ) ; 西南科技大学硕士研究生学位论文第1 1 页 图2 4 过滤器图表 在程序中构建完f i l t e rg r a p h 链路后,需要对滤波器图表进行调试, g r a p h e d i t 提供了一种能够显示应用程序创建的f i l t e rg r a p h 的功能,这样可 以直观的看到f i l t e r 在程序中是怎么连接的川。g r a p h e d i t 可以算是一个 d i r e c t s h o w 的程序,他有简单的w m d o w s 界面,利用它可以看到系统中所 有注册的过滤器。要使用g r a p h e d i t 的这个功能,在程序中创建了一个f i l t e r g r a p hm a n a g e r 之后,应该立即将其注册到活动对象表( r u n n i n go b j e c tt a b l e , r o t ) 中,然后,通过g r a p h e d i t 的滤波器图表连接功能,显示该f i l t e rg r a p h 链路。如图2 4 所示,它是一个简单的r a p 4 封装格式的文件播放链表,其中 m p 4 解复用、h 2 6 4 解码和a a c 解码的f i l t e r 都需要开发者设计,并注册到 系统中。 f i l t e r 属于是进程内c o m 组件,因此f i l t e r 的开发设计,也必须遵守 c o m 组件设计的规则,比如c o m 组件都必须继承于接口i u n k n o w n 等。f i l t e r 的开发过程大致有如下几个步骤: 首先,选择一个合适的基类,d i r c c t s h o ws d k 提供了一套开发过滤器的 基类。根据自己的过滤器在过滤器图表中的位置以及功能,选择一个合适的 基类。 其次,完成过滤器功能,选择了一个合适的基类后,需要针对实际的应 用、数据传输与处理等因素,创建必要的p i n ,重载和实现所需的接口方法。 最后,生成g u i d ,无论是c o m 对象还是接口,都必须用到标识符 g u i d 。利用工具g u i d g e n e x e 获得一个1 2 8 位的g u i d 。f i l t e r 开发完成后 注册到系统供d i r e c t s h o w 框架调用。 西南科技大学硕士研究生学位论文第1 2 页 2 3 监控系统构架 课题在研究视频监控相关技术的基础上,提出基于d i r e c t s h o w 技术的 w e b 视频监控系统的设计方案。该方案通过枚举系统设备找到麦克风和摄像 头,并由d i r e c t s h o w 包装成f i l t e r 加入链路中,从而完成音视频流的采集。 音视频编码则采用h 2 6 4 编码技术和a a c 编码技术,针对开源的编码库 x 2 6 4 和f a a c 进行二次开发,编写相应的音视频编码过滤器并注册到系统 供d i r e c t s h o w 调用进行实时编码。监控系统前端将编码后的音视频数据流复 用成t s 流,并通过r t p 协议封装推送到d a r w i ns t r e a m i n gs e r v e r 服务器, 服务器则调用转码程序对媒体流进行转码,并生成相应的s d p 文件。客户 端基于d i r e c t s h o w 框架开发,完成对媒体流进行相应的请求、接收、解码、 显示,并封装成a c t i v e x 控件放在w e b 服务器,用户则通过浏览器下载控 件,从而实现视频监控功能。 图2 - 5 视频监控系统架构 客 户 端 监 控 前 端 系统构架如图2 5 所示,整个系统分为监控端和客户端两大部分。监控 端主要由前端采集设备、前端预处理模块、视频服务器组成。前端设备负责 西南科技大学硕士研究生学位论文第1 3 页 音视频数据的采集,由d i r e c t s h o w 完成对摄像头和麦克风的控制和数据流的 捕获。前端预处理模块完成对原始数据的压缩编码,以及音视频数据流复用 和r t p 协议封装。视频服务器完成对接收t s 传输流的解复用和转码,以及 对实时监控流的分发。客户端主要由w e b 服务器和远程用户终端组成,w e b 服务器实现a c t i v e x 控制的更新、用户信息管理等。远程用户终端以浏览器 的方式下载控件嵌入的w e b 页面上,通过调用a c t i v e x 控件封装的客户端 接口,采用r t s p 协议请求流媒体服务器的s d p 文件,并完成媒体流的接 收、解码和播放。从而实现w e b 视频监控。 2 4本章小结 介绍了d i r e c t s h o w 框架和流媒体开发的关键技术,并提出了基于 d i r e c t s h o w 的w e b 视频监控的技术方案。 西南科技大学硕士研究生学位论文第1 4 页 3 监控端模块设计 3 1 音视频采集 在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 对采集设备进行包装, w d m 驱动模型的采集设备使用w d mv i d e oc a p t u r ef i l t e r ,实现文件为 k s w d m c a p a x 。v f w 驱动模型的采集设备使用v f wc a p t u r ef i l t e r ,实现文 件为q c a p d l l 。摄像头和麦克风正确安装之后,d i r e c t s h o w 就能把它包装成 一个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 注册在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 es o u r c e s 目录下,视频采集f i l t e r 注册 在v i d e oc a p t u r es o u r c e s 目录下,而在上述两个目录下注册的采集f i l t e r 一 般也会在w d ms t r e a m i n gc a p t u r ed e v i c e s 目录下注册。有时候,w d m s t r e a m i n gc a p t u r ed e v i c e 还会包含一些既不在a u d i oc a p t u r es o u r c e s 下也不 在v i d e oc a p t u r es o u r c e s 下注册的采集设备。类型目录都用一个c l s i d 标 示来表示,音频采集设备为c l s i d _ a u d i o l n p u t d e v i c e c a t e g o r y ,视频采集设 备的c l s i d 为c l s i d _ v i d e o i n p u t d e v i c e c a t e g o r y 。w d m 采集设备的c l s i d 为a mk s c a t e g o r yc a p t u r e 。在系统的设计过程中,封装了一个 c a v c a p t u r e 类,用于实现d i r e c t s h o w 的枚举接口和控制接口,专门负责设 备的选入、绑定到采集滤波器,以及参数的设置等。 d i r e c t s h o w 提供了一个的系统媒体组建( c l s i ds y s t e m d e v i c e e n u m ) , 通过它来枚举设备的过程如下: ( 1 ) 使用c o c r e a t e l n s t a n c e 函数创建一个系统枚举组建对象,并获得 i c r e a t e d e v e n m 接口,关键代码如下。 h r e s u l t h r = c o c r e a t e l n s t a n c e ( c l s i d s y s t e m d e v i c e e n u m ,n u l l , c l s c t x i n p r o c s e r v e r ,i i d _ i c r e a t e d e v e n u m ,( v o i d 木木) & p s y s d e v e n u m ) ; 其中参数c l s i ds y s t e m d e v i c e e n u m 为所创建的系统设备枚举器对象的类 标识符,参数c l s c t xi n p r o cs e r v e r 表明是创建同一个进程内运行的 组件对象,i i di c r e a t e d e v e n u m 是成功创建系统设备枚举器的接口i d , 西南科技大学硕士研究生学位论文第1 5 页 p s y s d e v e n u m 是存储系统设备枚举器接口对象的指针。 ( 2 ) 使用接口方法i c r e a t e d e v e n u m :c r e a t e c l a s s e n u m e r a t o r 为指定的 f i l t e r 注册类型目录创建一个枚举器,并获得i e n u m m o n i k e r 接口,关键代码 如下。 h r e s u l t h r = p s y s d e v e n u m - c r e a t e c l a s s e n u m e r a t o r ( c l s i d v i d e o l n p u t d e v i c e c a t e g o r y ,& p e n u m c a t ,o ) ; 其中,参数c l s i d v i d e o l n p u t d e v i c e c a t e g o r y 表示创建视频采集的设备 目录的枚举器接口,p e n u m c a t 是存储设备目录枚举器接口的指针,参数0 表示枚举指定目录下的每一个f i l e t r 。 ( 3

温馨提示

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

评论

0/150

提交评论