(通信与信息系统专业论文)多点音视频通信软件的设计.pdf_第1页
(通信与信息系统专业论文)多点音视频通信软件的设计.pdf_第2页
(通信与信息系统专业论文)多点音视频通信软件的设计.pdf_第3页
(通信与信息系统专业论文)多点音视频通信软件的设计.pdf_第4页
(通信与信息系统专业论文)多点音视频通信软件的设计.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

摘要 随着多媒体技术和通信技术的飞速发展,多媒体通信技术已经成为当前计算 机网络领域的发展热点。而作为多媒体通信的代表,多媒体会议应用发展尤为迅 速,已经成为目前最激动人心的多媒体通信应用之一。但是由于多媒体音视频通 信存在数据量大、数据格式多样、对实时和同步要求高等特点,现有多媒体通信 技术发展中存在两大瓶颈,一是多媒体音视频数据的处理,二是多媒体数据的网 络传输。 针对存在的问题,本文介绍一种采用d i r e e t s h o w 和i p 组播技术来实现多点音视 频通信的方法。和其它音视频处理工具相比,d i r e e t s h o w 具有数据处理的高效性等 优点。而与单播和广播相比,i p 组播技术可以减少不必要的重叠发送,减轻了系统 和网络的负荷,极大地改善了音视频数据传输的实时性。 除了研究音视频处理技术、音视频数据网络传输技术外,本文还介绍了多媒 体会议系统的一些现有标准,如会话描述协议s d p ,并将其很好的应用到本软件的 设计中。另外本文还着重研究分析了多媒体通信领域一个热点问题“同步问题”, 通过对几种常用同步方式的对比提出了本系统中采用的同步方式时间戳同步 方式。在以上理论分析的基础上,本文应用d i r e c t s h o w 和i p 组播技术,同时结合s d p 协议和时间戳同步方式,设计并实现了一个实用、低成本的多点音视频通信系统。 关键词:d i r e c t s h o ww i n s o c k 网络编程i p 组播技术 a b s t r a c t w i t ht h ef a s t d e v e l o p m e n t o fm u l t i m e d i aa n dc o m m u n i c a t i o nt e c h n o l o g y , m u l t i m e d i ac o m m u n i c a t i o nt e c h n o l o g yh a sb e c o m eah o ti s s u ei nt h er e s e a r c ho f c o m p u t e rn e t w o r k s a st h er e p r e s e n t a t i v eo fm u l t i m e d i aa n dc o m m u n i c a t i o nt e c h n o l o g y , t h em u l t i m e d i ac o n f e r e n c ed e v e l o p sq u i c k l ya n dh a sb e c o m eo n eo ft h em o s ts t i r r i n g a p p l i c a t i o n so fm u l t i m e d i aa n dc o m m u n i c a t i o nt e c h n o l o g y h o w e v e r , t h e r ea r et w ob i g b a r r i e r si nt h ef i e l do fm u l t i m e d i aa u d i o v i d e oc o m m u n i c a t i o nb e c a u s ei th a ss o m e c h a r a c t e r i s t i c s ,s u c ha sal a r g ea m o u n to fd a t a , m a n yk i n d so fd a t af o r m a ta n dt h eh i g h r e q u i r e m e n t s f o rr e a l t i m ea n ds y n c h r o n i z a t i o n o n eb a r r i e ri s p r o c e s s i n go ft h e a u d i o v i d e od a t a ,t h eo t h e ri st h en e t w o r kt r a n s m i s s i o no fm u l t i m e d i ad a t a a r o u n dt h e s et w oq u e s t i o n s ,an e wa u d i o v i d e oc o m m u n i c a t i o nm e t h o dt h a ti s a c h i e v e db yu s i n gd i r e c t s h o wa n di pm u l t i c a s tt e c h n o l o g yi si n t r o d u c e di nt h i sp a p e r c o m p a r e dw i t ho t h e rf a c i l i t yd e a l i n gw i t ha u d i o v i d e o ,d i r e c t s h o wh a sm a n y a d v a n t a g e s ,s u c ha st h eh i g he f f i c i e n c yo fd a t ap r o c e s sa n dt r e a t i n g 、v i t l lav a r i e t yo f m e d i af i l e s c o m p a r e dw i t hu n i c a s ta n dm u l t i c a s t ,i pm u l t i c a s tt e c h n o l o g yc a na v o i dt h e r e p e a ts e n d i n g ,l i g h t e nt h eb u r t h e no fs y s t e ma n dn e t w o r k ,a n di m p r o v eh u g e l yt h e r e a l t i m ec h a r a c t e r i s t i co fa u d i o v i d e od a t at r a n s m i s s i o n b e s i d e st h et e c h n o l o g i e so f p r o c e s sa n dt r a n s m i s s i o nm u l t i m e d i ad a t a ,s o m e s t a n d a r do fm u l t i m e d i ac o n f e r e n c e ,s u c ha ss e s s i o nd e s c r i b e rp r o t o c o l ( s d p ) ,a r e d e s c r i b e di nt h ep a p e r , a n da r ea p p l i e dt ot h ed e s i g no fs o f t w a r e a f t e ra l lo ft h e s e ,ah o t i s s u eo fm u l t i m e d i aa n dc o m m u n i c a t i o nt e c h n o l o g y , t h a ti ss y n c h r o n o u s ,i sr e s e a r c h e d i nt h ep a p e r c o m p a r e dw i t ho t h e rm e t h o d s ,t h et i m e s t a m pi ss e l e c t e da sam e t h o do f s y n c h r o n o u si nt h ed e s i g no fs o f t w a r e b a s e do nt h ea b o v er e s e a r c h e sa n da n a l y s i s ,t h e d i r e c t s h o wa n di pm u l t i c a s tt e c h n o l o g yc o m b i n e d 、i t hs d pa n dt i m e s t a m pa r ea p p l i e d i nt h ep a p e r , a n dal o wl o s tm u l t i p o i n ta u d i o v i d e oc o m m u n i c a t i o ns y s t e mi sd e s i g n e d a n di m p l e m e n t e d k e y w o r d :d i r e c t s h o w w i n s o c kn e t w o r kp r o g r a m m i n gi pm u l t i c a s t 西安电子科技大学 学位论文创新性声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果:也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名: 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。( 保密的 论文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名: 垩堕查 导师签名: 兰扯 日期: 日期: 为订| s 第一章绪论 第一章绪论弟一早珀t 匕 1 1多媒体通信发展现状 随着社会信息化的发展,多媒体通信由于能够将计算机的交互性、通信的分 布性和多媒体的实时性完美的结合而正在被人们所接受并追求,广泛应用在医疗、 远程教育、电子商务等诸多领域。作为多媒体通信的代表,多媒体会议应用发展 尤为迅速,已经成为目前最激动人心的多媒体通信应用之一。一些国际性标准化 组织,如国际电信联盟( i t u ) 和i n t e m e t - i - 程任务组( i e t f ) 等,都先后投入到多媒体 通信领域的研究当中,制定出了一些相关标准协议( 如会话描述协议s d p ) ,并且 还在不断地完善与扩充。正是这些标准化工作,使得多媒休会议应用得到了迅速 推广。由于多媒体会议应用能产生巨大的社会效益和经济效益,因此越来越多的 人己经或者希望加入到它的行列中来。 与此同时,伴随多媒体通信应用的发展,多媒体数据的处理和网络传输问题 也成了该领域研究的热点。目前,音视频数据的处理领域,在w i n d o w s 操作平台上, 和其它音视频处理工具相比,d i r e c t s h o w 具有数据处理的高效性、处理媒体格式的 多样性等优点而被广泛应用。在音视频数据的网络传输领域,由于i p 组播技术可以 减少不必要的重叠发送,减轻系统和网络的负荷,提高资源和网络带宽的利用率, 极大地改善音视频数据传输的实时性被广泛应用5 1 。 1 2 本文的研究内容 本文旨在对网络多媒体会议系统中的一些关键技术和标准进行研究,并在 w i n d o w s 环境下利用这些技术和标准实现一个有一定实用价值的多点音视频通信 软件。 1 2 1 会议控制策略 会议控制策略也可以称为会议控制协议,是网络多媒体会议的一个必不可少 的内容。它控制整个会议的开始、进行和结束的整个过程。随着多媒体会议的迅 速发展,与多媒体会议有关的各种协议也应用而生,s d p ( s e s s i o nd e s c r i p t i o n p r o t o c 0 1 ) 就是一个典型的会话控制协测1 9 j 。s d p 协议不依赖于某个多媒体会议系统 的具体实现,适用于各种不同的具体环境,l l - , 女a ,不同的多媒体会议系统可能使 用不同的底层协议,不同的传输方法,不同的媒体等等。在本论文中,主要讨论 s d p 协议,并将它应到软件设计和实现中。 2 多点音视频通信软件的设计 1 2 2 多媒体数据的网络传输 1 传输协议的选择 多媒体数据的传输可以采用两种协议:传输控制协议( t c p ) 和用户数据协议 ( u d p ) 。t c p 是面向连接的流方式,在这种方式下,两个通信的应用程序之间先要 建立一个连接链路,而后才能进行数据的传输。流方式的特点是通信可靠,对数 据有校验和重发功能,但实时性较差。u d p 是无连接的数据报文方式,这种方式 中两台计算机像是把数据放在一个信封里通过网络寄给对方,信在传送的过程中 有可能会残缺不全,而且后发出的信也有可能会先收到。u d p 由于取消了重发校 验机制,能够达到较高的通信速率,虽然可靠性不是很好,但实时性较好。 在多媒体会议系统中,多媒体数据传输的实时性要求是第一位的,因此在本系 统中采用u d p 协议传输音视频数据,而会议的控制信息则采用t c p 协议来传输。 2 传输方式的选择 i p 分组传输方式共有三种:单播、广播和组播。 组播是一种允许一个或多个发送者发送单一的数据包到多个接收者的网络技 术。组播源把数据包发送到待定的组播组( m u l t i c a s tg r o u p ) ,而只有加入到该组播 组的主机才能接收到这些数据包。在组播中,无论有多少个目标地址,在整个网 络的任何一条链路上只传送单一的数据包。组播的特性决定了,与单播和广播相 比,组播技术可以减少不必要的重叠发送,减轻了系统和网络的负荷,极大地改 善了音视频数据传输的实时性。鉴于组播技术的种种优势,在本系统中选择组播 来传输音视频数据。 1 2 3 多媒体数据处理 要在w i n d o w s 环境下进行音视频数据的采集和处理,当然首选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 x 大家族的一员,d i r e c t x 软件开发包是微软公司提供的一套 在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 来完成【1 8 j ,这样,基于d i r e c t s h o w 框架开发 多媒体应用程序就变得简单许多。 1 2 4 同步技术 同步问题是音视频通信中一个重要问题。本文通过对几种同步方式的分析和 比较,最后选择时间戳方式来实现本软件设计中媒体内和媒体间的同步。实践证 第一章绪论 明,这种方法达到了很好的效果。 综合以上理论研究,本文运用d i r e c t s h o w 和i p 组播技术并结合s d p 协议和 时间戳同步方式,完成一个多点音视频通信软件的设计。 1 3 系统概述 在本论文设计的多点音视频通信软件中,我们旨在把服务器端( 会议主持人) 的音视频数据通过i p 组播发送给各客户端( 会议参与者) 。其中,服务器通过摄像 头获取视频数据、通过麦克风获取音频数据,然后将音视频数据发送给网络。各 客户机通过身份验证后,能够实时从网络接收音视频数据并在本地终端播放。系 统示意图如图1 1 所示: 摄像头 。 漆 c j 麦克风 图1 1 系统示意图 1 4 本文内容安排 客户机终端 客户机终端 客户机终端 本文内容安排如下: 第一章绪论,介绍多媒体通信技术的发展现状,提出多媒体会议中的一些关 键技术和标准并做概要说明,最后给出本论文的内容安排。 第二章介绍d i r e c t s h o w 系统,着重介绍该系统中的几个重要概念,f i l t e r 、f i l t e r g r a p h 和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 应用中一个简单程序“播放 一个媒体文件程序”对d i r e c t s h o w 做一个整体、清晰的介绍。 第三章讲述多媒体会议的典型传输技术i p 组播技术,在介绍i p 组播理论的基 础上通过对比的方式对i p 组播在音视频传输方面的优势做了详细说明。最后讲了 i p 组播的w i n s o c k 编程实现。 第四章在第二、三章学习的基础上,设计并实现一个简单的音视频会议系统。 在这一章中,分功能模块介绍了系统的各个部分,着重介绍了会话描述协议s d p 及它在会议建立阶段的意义和具体实现。 4 多点音视频通信软件的设计 第五章分析了音视频会议系统中一个重要的问题同步问题,通过对几种同步 方式的对比提出了本软件实现中的同步方法。 第六章总结全文并提出今后的努力方向。 第二章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 的出现完全解决了以上多 媒体领域存在的问题,它尽量让应用程序开发人员从复杂的数据传输、硬件差异 等工作中解脱处理,总体应用框架和底层工作由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 x 大家族说起,介绍了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 1d i r e c t x 介绍 d i r e c t x 软件开发包是微软公司提供的一套在w i n d o w s 操作平台上开发高性能 图形、声音、输入、输出和网络游戏的编程接口。微软将d i r e c t x 定义为“硬件设 备无关性”,即使用d i r e c t x 可以用与设备无关的方法提供设备相关的( 高) 性能。 事实上,d i r e c t x 已经成为一种标准,它可以为应用程序( 特别是游戏) 开发 人员和硬件设备厂家之间的关系“解耦”。d i r e c t x 标准的建立,可以为硬件开发提 供策略,硬件厂商不得不按照这一标准进行产品改进;同时,通过使用d i r e c t x 所 提供的接口,开发人员可以尽情地利用硬件可能带来的高性能,而无需关心硬件 的具体执行细节。 另外,d i r e c t x 采用了组件模型( c o m ) 标准,因此不同对象的版本可以有不 同的接口,这使得用d i r e c t x 开发的程序即使在未来也能得到完全的兼容和支持。 d i r e c t x 是一项卓越的技术。那么,它为什么称为d i r e c t x 呢? 其实也不难理 解,d i r e c t 是直接的意思,x 可以代表很多东西,合在一起就是具有共性的一组东 西( 这个共性就是直接) 。d i r e c t x 是一个大家族,并且随着d i r e c t x 版本的不断更 新,家族成员也在不断的发展壮大1 2 j 。 下面是d i r e c t x9 0 家族的一些成员: d i r e c t xg r a p h i c s :集成了以前的d i r e c t d r a w 和d i r e c t 3 d 技术。d i r e c t d r a w 主要负责2 d 加速,以实现对显卡内存和系统内存的直接操作;d i r e c t 3 d 主要提供三维绘图硬件接口,它是开发三维d i r e c t x 游戏的基础。 d i r e c t l n p u t :主要支持输入服务( 包括鼠标、键盘、游戏杆等) ,同时支持 输出设备。 d i r e c t p l a y :主要提供多人网络游戏的通信、组织功能。 6 多点音视频通信软件的设计 d i r e c t m u s i c :主要支持m i d i 音乐合成和播放功能。 d i r e c t s o u n d :主要提供音频捕捉、回放、音频处理、硬件加速、直接设备 访问等功能。 d i r e c t s h o w :为在w i n d o w s 平台上处理各种格式的媒体文件的回放、音视 频采集等高性能要求的多媒体应用,提供了完整的解决方案。 d i r e c t xm e d i ao b j e c t s :d i r e c t s h o wf i l t e r 的简化模型,提供更方便的流数 据处理方案。 其实,d i r e c t s h o w 开始并不是d i r e c t x 家族中的一员,它是经过d i r e c t x6 0 中 的d i r e c t xm e d i a 发展而来的。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 i r e c t x 中的一位“集大成者”。经 过几个版本的发展,d i r e c t s h o w 架构日趋成熟。 2 2d i r e c t s h o w 系统介绍 d i r e c t s h o w 是在什么样背景下产生并发展的呢? 这需要从多媒体应用开发所 面临的挑战说起。一直以来,多媒体应用开发面临着以下几个大的挑战: ( 1 ) 多媒体数据量巨大,应如何保证数据处理的高效性; ( 2 ) 如何用简单的方法处理复杂的媒体源问题,包括本地文件、计算机网络、 广播电视以及其它一些数码产品等。 ( 3 ) 如何处理各种各样的媒体格式问题,包括a v i ( a u d i o v i d e oi n t e d e a v e d ) 、 a s f ( a d v a n c e ds t r e a m i n gf o r m a t ) 、m p e g ( m o t i o np i c t u r ee x p e l sg r o u p ) ,a n dd v ( d i g i t a jv i d e o ) 。 ( 4 ) 如何支持目标系统中不可预知的硬件。 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 框架开发多媒体应用程序就变得简单许多。 具体解决办法是:为了满足音视频所需要的吞吐量,d i r e c t s h o w 尽可能使用 d i r e c t d r a w 和d i r e c t s o u n d 技术,这些技术可以将音视频数据高效的提交给声卡和 显卡;为了应对来源广泛、格式繁杂、设备差异等问题,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 的概念,用f i l t e r 来匹配不同的软硬件部分。 图2 1 是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 位于应用层中。它使 用一种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 中按一定的顺序连接成一条“流水线” 第二章d i r e c t s h o w 技术介绍 7 协同工作。 2 3 1 f i l t e r 概述 图2 1d i r e c t s h o w 系统 2 3 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 中一个最基本的概念就是 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 来开发程序,也可以开发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 r 一般由一个或多个p i n 组成,f i l t e r 之间通过p i n 相互连接,构成一条顺 序的链路。按照功能来分,f i l t e r 大致分为3 类:s o u r c ef i l t e r 、t r a n s f o r l t lf i l t e r 和 r e n d e r i n gf 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 主 要负责数据的最终去向,将数据送给声卡( 声音再现) 、显卡( 视频内容显示) 、本 地文件系统等,当然也可以最终将数据向网络发送。 另一种实用的判别f i l t e r 类型的方法是,根据f i l t e r 包含的输入p i n 或者输出 p i n 的数量来判别。如图2 2 所示,仅含有输出p i n ,没有输入p i n 的f i l t e r 为s o u r c e f 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 l t lf i l t e r ;仅有输入p i n ,没 有输出p i n 的f i l t e r 为r e n d e r i n gf i l t e r 。 这里引出了p i n 的概念。p i n 在d i r e c t s h o w 中扮演了非常重要的角色,每个 8 多点音视频通信软件的设计 p i n 可以支持若干种媒体格式,f i l t e r 间的连接实际是p i n 间的协商过程。或者可以 说,f i l t e r 封装了处理功能,p i n 封装了通信功能。 l 习徽豁m p e g v i d e o 锹豁r 习 ill j 2 3 2f i l t e r 的媒体类型 图2 23 种f i l t e r 类型 f i l t e r 是d i r e c t s h o w 中最基本单元,它的功能是处理一定格式的数据流。那么, 用什么来描述这种特定的数据流呢? 答案是使用媒体类型( m e d i at y p e ) 。 媒体类型实际上是d i r e c t s h o w 定义的一个数据结构a mm e d i at y p e ,代码 如下: t y p e d e fs t r u c t _ m e d i a t y p e g u i d m a j o r t y p e ; g u i d s u b t y p e ; b o o l b f i x e d s i z e s a m p l e s ; u l o n g 1 s a m p l e s i z e ; g u i d f 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 g c 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 j y p e ; 从代码中可以看出,媒体类型主要用3 部分来描述:m a j o r t y p e ( 主类型) 、s u b t y p e ( 辅助说明类型) 和f o r m a t t y p e ( 格式细节类型) 。这3 部分各自用一个g u i d 来 标识。它们的作用分别是:m a j o r t y p e 定性地描述媒体类型,如制定这是一个视频 ( m e d i a t y p e _ v i d e o ) 、音频( m e d i a t y p e _ a u d i o ) 或者字节流( m e d i a t y p e _ s t r e a m ) 等;s u b t y p e 辅助说明m a j o r t y p e ,指明具体是哪种格式,例如,若m a j o r t y p e 是视 频,s u b t y p e 可以进一步指明这是u y v y ( m e d i a s u b t y p e _ u y v y ) 、 y u y 2 ( m e d i a s u b t y p e y u y 2 ) 、r g b 2 4 ( m e d i a s u b t y p e _ r g b 2 4 ) 还是 r g m 3 2 ( m e d i a s u b t y p e _ r g b 3 2 ) 等;若m a j o r t y p e 是音频,s u b t y p e 可以进一步 说明这是p c m 格式( m e d i a s u b t y p e p c m ) 还是其他格式;f o r m a t t y p e 指定了一 种进一步描述格式细节的数据结构类型,格式细节描述的内容主要包括视频图象 的大小、帧率,或音频的采样频率、量化精度等参数,这个格式结构细节的数据 第二章d i r e c t s h o w 技术介绍9 块指针保存在p b f o r m a t 成员中。 a mm e d i at y p e 结构中的其他成员,如b f i x e d s i z e s a m p l e s 和1 s a m p l e s i z e , 它们都是可选参数。也就是说,f i l t e r 并不一定定义这些参数。这一点对于f i l t e r 开发人员来说尤为重要。 下面,结合本人程序中用到的媒体类型,对常见的媒体类型进行说明。 1 m a j o r t y p e 主类型m a j o r t y p e 主要包括以下类型。 m e d i a t y p e 视频_ v i d e o ; m e d i a t y p ea u d i o ; 音频 2 s u b t y p e 辅助说明类型s u b t y p e 主要包括以下类型。 m e d i a s u b t y p e 各种v 的格式_ y u y 2 ; m e d i a s u b t y p e y v y u ; m e d i a s u b t y p e _ y u y v ; m e d i a s u b t y p e _ u y v y ; m e d i a s u b t y p e 各种的格式_ r b g 2 4 ; r g b m e d i a s u b t y p e _ r b g 3 2 ; m e d i a s u b t y p ep c m ;音频 m e d i a s u b t 也m p e g l v i d e o ; m p e g l 视频数据 m e d i a s u b t ) em p e g l a u d i o ; m p e g l 音频数据 m e d i a s u b t y p em p e g 2 _ v i d e o ;m p e g 2 视频 m e d i a s u b t y p em p e g 2a u d i o ; m p e g 2 音频 3 f o r m a r y p e 格式细节类型f o r m a t t y p e 对应使用的数据结构代码如下。 f o r m a tv i d e o i n f o描述视频数据,使用 f o i 之m a t h v e f o r m a t e x f o r m a tm p e g v i d e o f o i 洲a tm p e g 2 v i d e o v i d e o i n f o h e a d e r 数据结构 描述音频数据,使用w a v e f o r m a t e x 数据结构 描述m p e g i数据,使用 m p e g lv i d e o i n f o 数据结构 描述m p e g 2数据,使用 m p e g 2 v i d e o 烈f o 数据结构 下面针对m p e g l v i d e o i n f o 和w a v e f o r m a t e x 数据结构,做详细描述。 1 ) 结构体m p e g i v i d e o i n f o 格式: t y p e d e f s t r u c tt a g m p e g1v i d e o i n f o 1 0 多点音视频通信软件的设计 v i d e o i n f o h e a d e r h d r ; dwo i m d w s t a r t t i m e c o d e ; d w o r d c b s e q u e n c e h e a d e r ; b y t e b s e q u e n c e h e a d e r 1 ; m p e g 1v i d e o i n f o ; 该结构体中,重点看一下v i d e o i n f o h e a d e r 的格式。格式如下: t y p e d e f s t r u c tt a g v i d e o i n f o h e a d e r r e f e r e n c e t i m ea v g t i m e p e r f r a m e ; b i t m a p i n f o h e a d e r b m i h e a d e r ; v i d e o i n f o h e a d e r ; 上面结构体中,变量a v g t i m e p e r f r a m e 表示每帧的平均时间,单位为纳秒, b m i h e a d e r 则是一个b i t m a p i n f o h e a d e r 类型的结构体,该结构体包含视频位 图的颜色、尺寸等信息,具体结构如下: t y p e d e f s t r u c tt a g b i t m a p i n f o h e a d e r d w o r db i s i z e ; l o n g b i w i d t h ; l o n g b i h e i g h t ; w o r d b i b i t c o u n t ; d w o r db i s i z e l m a g e ; ) b i t m a p i n f o h e a d e r ; 该结构体中各成员变量的意义为:b i s i z e 表示该结构体需要的字节数,b i w i d t h 表示图形的宽度,b i h e i g h t 表示图形的高度,b i b i t c o u n t 表示每个象素所需的比特 数,b i s i z e l m a g e 表示一个位图所需的字节数。 在本文涉及的程序中,定义视频媒体类型的格式为: c m e d i a t y p e m p r e f e r r e d m t ; m p r e f e r r e d m t s e t t y p e ( & m e d i a t y p 黾) i d e o ) ; m p r e f e r r e d m t s e t s u b t y p e ( & m e d i a s u b t y p e m p e g 1v i d e o ) ; m p r e f e r r e d m t s e t f o r m a t t y p e ( & f o r m a t _ m p e g v i d e o ) ; 2 ) 结构体w a v e f o r m a t e x 格式: 第二章d i r e c t s h o w 技术介绍 t y p e d e f s t r u c tw a v e f o r m a t _ e x t e n d e d _ t a g w o r dn c h a n n e l s ; d w o r d n s a m p l e s p e r s e c ; d w o r d n a v g b y t e s p e r s e c ; w o r dw b i t s p e r s a m p l e ; ) w a v e f o r m a t e x ; 该结构体中各成员变量的意义为:n c h a n n e l s 表示音频流的信道数, n s a m p l e s p e r s e c 表示一个信道上每秒的抽样数,n a v g b y t e s p e r s e c 表示每秒的平均 字节数,w b i t s p e r s a m p l e 表示每个抽样的比特数。 在本人程序中,定义音频媒体类型的格式为: c m e d i a t y p em p r e f e r r e d m t ; m p r e f e r r e d m t s e t t y p e ( & m e d i a t y p e _ a u d i o ) ; m p r e f e r r e d m t s e t s u b t y p e ( & m e d i a s u b t y p e _ m p e g 1a u d i o ) ; m p r e f e r r e d m t s e t f o r m a t t y p e ( & f o r m a t _ w a v e f o r m a t e x ) ; 对媒体类型的理解在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 的输入p i n 建立连接,f i l t e rg r a p h 才能建立 起来。 另外,对音视频媒体类型的深入了解,在设置音频、视频同步时也有着重要 意义,这一点在后面的章节中可以看到。 2 3 3f i l t e rg r a p hm a n a g e r 介绍 f i l t e r 是d i r e c t s h o w 中最基本概念,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 hm a n a g e r 是什么,f i l t e r 、f i l t e r g 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 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 位于应用程序与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 发送 1 2 多点音视频通信软件的设计 状态变化命令。相反,它只发送单个命令给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 h m a n a g e r 把这个命令发布到各个过滤器去。 建立参考时钟 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 hm a n a g e r 通常选择声卡的时钟作为系统参考 时钟。 将f i l t e r 事件回传给应用程序 f i l t e rg r a p hm a n a g e r 将f i l t e r 事件放入事件队列,并通知应用程序处理。这很 类似w i n d o w s 的消息处理机制。 创建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 为应用程序提供a p i 来创建 删除f i l t e r ,连接断开f i l t e r 等。 那么d i

温馨提示

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

评论

0/150

提交评论