DirectShow 的原理及其应用 DirectShow 的原理及其应用

DirectShow 的原理及其应用

  • 期刊名字:微型电脑应用
  • 文件大小:661kb
  • 论文作者:郑鸿,陈青山,张文渊
  • 作者单位:上海交通大学自动化
  • 更新时间:2020-06-12
  • 下载次数:
论文简介

Microcomputer Applications Vol 17. No 8, 2001开发应用微型电脑应用2001年第17卷第8期Directshow的原理及其应用郑鸿①陈青山②张文渊③摘要本文介绍了微软提供的多媒体开发工具因此,用户可以以三种方式访问 Direct show:COM接口,Direct show的工作原理,并给出了一个基于 Direct show的网媒体播放机控件或媒体控制接口(MCI),如图1所示。络MPEG-1解码器的实例关键词 Direct Show filter Filter Graph COM应用程序概述ActiveMovie媒体控制接控件随着数字视音频处理、数字信息存储技术的不断发展,基过滤器图表管理于数字编解码的多媒体应用已经越来越深入到人们的日常生源过滤忑鞅换过滤思递交过滤活中。为了向开发人员提供功能更完备的处理软件,在以前推出 Activemovie和Ⅴ ideo for windows的基础上, Microsoft谋体源端媒体目的端公司推出了新一代多媒体开发软件包— Direct show。Direct show主要提供播放本地文件或 Internet服务器上国1 Directshow的休泉构的多媒体数据,以及从视音频釆集卡等硬件设备中捕荻多媒体流的功能。它能够播放多种压缩格式的视音频文件(或流)包括MPEG, Quick Time,AVl,WAV以及基于Ⅴ ideo for过滤器图表的基本组成Windows和wDM( Windows Driver model)的视音频捕获个过滤器图表是由不同类型的过滤器组合而成的。过Direct show的核心是被称为过滤器(er)的插件式模滤器是一个执行特殊任务的COM对象,例如从磁盘读数据块系统该系统配置在过滤器图表( filter graph)中。过滤器图大多数过滤器可类成表1中三种类型中的一种表管理器( filter graph manager)组件负责检查这些过滤表1主要的过滤器及其功能的连接和控制过滤器间的数据流动。类型功能二、 Directshow的体系结构从源端(如磁盘文件, Internet服务器,VCR)读源过滤器数据,将其引入过滤器图表Direct show自身是一种通过自定义或内置的过滤器来控传换过滤器获得、处理、往前传递数据制和处理多媒体数据的体系结构。该体系结构定义了如何控制和处理过滤器內部和相互间的多媒体数据流。每个过滤器交过滤递交数据:通常被递交到一个硬件设备,但也都拥有输入或输出针。过滤器之间通过过滤器图表结构相互可以递交到任何能够接受媒体输入的位置连接起来。应用程序通过过滤器图表管理器对象装配过滤器图表,并且在其中移动数据。默认情况下,过滤器图表管理器过滤器图表通过过滤器来传递多媒体数据。一个过滤器将自动处理数据流。例如,它在需要时自动插入正确的编解码往下传递媒体数据到下一个过滤器。上游过滤器描述传递数器,并且自动将转换过滤器的输出针连接到默认的递交过滤据的过滤器,下游的过滤器描述数据应到达的下一个过滤器。器( rendering filter)。用户也可以自定义过滤器而不使用这种差异很重要,因为媒体数据往下流动,而其它信息可以往Directshow提供的默认连接上传递应用程序可以通过过滤器图表管理器所提供一组组件对对过滤器处理的每一个流,它至少实现到一个针上。针是象模型(COM)接口来访问过滤器图表。可以直接调用过滤器中国煤化工表现为过滤器上的单向数表管理器接口来控制媒体流,获得过滤器事件,或者也可以H据流CNMHG提供与其它针相连并传送使用媒体播放机控件来播放媒体文件。数据的按上海交通大学自动化系硕士研究生上海交通大学自动化研究生上海方数擦通大学自动化系研究员上海200Microcomputer Applications Vol 17. No 8, 2001开发应用微型电脑应用2001年第17卷第8期dr.cpp四个文|输出针输入针种换过输出输入针这器件作为源过滤器基础,同时改写 Asyncflt.h中 Cmem Strean类,在Read方法实现代码中,加入从存储MPEG-1包的内图2针连接示意图存区拷贝数据进入源过滤器缓存的代码输入针接收数据进入过滤器,输岀针向其它过滤器提供3.建立过滤器图表管理器数据。源过滤器为文件中的毎个数据流提供一个输出针。典型根据MPEG-1数据流分解程序,判定网络数据包的媒的转换过滤器,如压缩/解压缩( codec)过滤器,提供一个输入体类型是否为指定类型。为简单起见我们设定 majortype针和一个输出针,而音频输出过滤器仅拥有一个输入针MEDIATYPE StreaMEDIASUBTYPE为了使过滤器图表能够正常工作,过滤器必须以正确的 MPEGISystem,当然也可以根据分解程序的结果自动设定媒顺序相连数据流也必须以正确的次序启动和停止过滤器图体类型。表管理器负责连接过滤器和控制媒体流。它能够搜寻可以递调用 CoCreateinstance方法创建过滤器图表实例交指定媒体类型的过滤器配置,并且建立与之相应过滤器图CoCreateInstance CLSID. FilterGraph, NULL表过滤器图表也能被预置在这种情况下过滤器图表管理器 CLSCTX INPROC, IID IgraphBuilder,(void**8m不需要搜寻配置当搜寻递交配置时,过滤器图表管理器使用过滤器映射其中m-pig为 Ifilter Graph型指针,指向生成的过滤器器,首先读注册表决定可用的过滤器类型接着过滤器图表图表管理器不断地试图连接接受该数据类型的过滤器,直到数据然后调用m-pig的 AddFilter方法,将已生成的源过滤到达递交过滤器每个过滤器都注册有一个优先值在都可以器加入过滤器图表中。同时可以根据需要调用 m-pifg Query处理数据时,优先值最高的过滤器首先被使用Interface方法调用必需的接口,如 igraphBuilder等。每次调用四、基于 Directshow的网络MPEG接口时,应调用 Addref方法,增加该接口的引用次数。停止解码器设计调用该接口时,应调用 Release方法,降低该接囗的引用次数,旦该接口的引用次数降为零,则系统将释放为引用该接口我们利用 Direct show能够实现网络视音频数据实时解所创建的所有资源这在网络多媒体中,往往是整个系统的核心组成部分,因4.启动解码器此设计一个功能强大而稳定的解码器是非常重要的关键环调用的 igraphBuilder的 Render方法,将源过滤器的输节。这里给出一个网络MPEG-1解码器的主要设计步骤,其出针的数据加入过滤器图表结构组成如图3所示m-pigb->Render(m-rdr->Get Pin());结构组成其中m-pigb为 IgraphBuiler型指针,m-rdr为指向源过滤器的指针然后只要调用Imeol的Run方法就可以启动解“输出针上“输入针这要输出针输入针器码器。同时应该利用 Video window接口设置图像显示的窗口句柄,以及图像大小等,以便荻得理想的显示效果图2针连接示意国5.暂停或停止解码、获得解码信息可以调用Control的 Pause和Stop方法暂停和停止解码。如果想获得更多关于解码器的解码信息,可以调用ideo接口。通过调用该接口的一些方法,如Get TypeInfo, get- Avg Time Per Frame, get- Bit Rate设计步骤iMage等方法,可以分别获得当前1.设计网络接收模块媒体类型、当前帧率、位速率、当前图像大小、当前图像拷贝等创建UDP套接字并建立数据接收缓存队列,用来存放重要中国煤化工些接口对接码器进行更高数据包级的CNMHG出了一些常用的接囗及其2.设计源过滤器主要功能源过滤器负责接收由网络接收模块采集的MPEG-1数(下转第62页)据,并将其递交给MPEG-1分解过滤器们可势费搪yc例程(SDK附带异步读过滤器):以(上接第42页)表2常用的接口及其主要功能码器。妾口名功能描述五、结束语IfilterGraph过滤器图表的抽象描述继承于 Ifitlter Graph,允许应用程序调用Igraphbuilde本文主要讲述了 Direct show的主要组成部分和工作原过滤器图表管理器创建过滤器图表允许应用程序通过图表中的过滤器控制理,并给出了一个用 Direct show实现的网络MPEG-1解码IMediacontrol器,对从事数字监控及基于 Internet/LAN的视音频处理以及媒体流从事多媒体软件开发的编程人员有一定的参考价值Video Window支持视频递交过滤器的视频窗口特性获得时长、启动停止时间、速率、当前位置Imedia Position参老立献等信息中国煤化工Imedia event支持过滤器图表和过滤器的事件通知CNMHG SDK 6. 0. Microsoft抽象一个已经具有输入输出连接的对象I basic video并能对其进行动态整合2] Guy Eddon Henry,COM组件编程技术内幕,北京希望电实际应用该解码器的结果表明,它能很好地完成解码功子出版社,2000.4能,并能对解于数较理想的控制,是一套较成功的软件解(收稿日期:2001年2月19日

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。