基于DirectShow的媒体播放器设计0
基于DirectShow的流媒体系统的研究与实现

WE B网页服务和流媒体数据的发送服务, 包括音视频的采集、 编码和打包发送。客户端实现基于 WE B的浏览和配置以及
音、 视频的接收、 解码和播放显示。这里的发送服务器部分也 是通过 Dr thw实现的。与实际基于硬件的网络摄像机功 ic o eS 能一致。在流媒体系统各个部分的设计功能如下: 21 . 服务端的实现 根据 Dr S w的要求, t o ic h e 每个 F t 都是一个 C M组件, ir l e O 送。 ic h D eSo rt w广泛地支持各种媒体格式, 包括a , , 而且都是相应的a 文件。这些文件需注册到系统中才能使用。 sm e a , fp v g i x
福 建
电 脑
20 年第 3 05 期
基 于 D rcS o i th w的流碟 体 A偏的研 究与实现 e
王金庭‘ 崔洪芳, 杨 敏2
பைடு நூலகம்(, 1 湖北经济学院计算机与电 子科学系2 中国地质大学信息工程学院) 、
【 要】 本文介绍了基于 Dr t o 的框架实现一个基本的流媒体传输系统。系统采用 MP G 摘 ic hw eS E -4和G. 音频编解码器和 R P等传输协议栈实现流媒体的直播和点播服务。 T 73 1的视 、 2. 流媒体 协议 R P T 【 关键词】 网络监控
F M) G 的模型来管理整个数据流的处理过程。
做色彩空间转换, 得到符合 M 4 - PE n
cdr oe要求的输入采样格式。经过 MP G一4编码后数据在 E R P d T Sn 中打包发送。语音从声卡采集, e 经过语音编码器 G . 731 2 . 压缩后 与视频一起经过 R P发送。音、 T 视频捕捉源 (or Ft) Su e e 可以采用系统提供的Ft.需要实现的是音视 c ir l ir l e 频编码器和R P T 打包发送的Ft . ir l e 编码器的Ft 是将输人的一帧媒体数据经过编码压缩后 i r l e 输出, 属于Tas r Flr r fm t。音视频的编码过程都是在 Tas no i e r - n
c#中用DirectShow实现媒体播放器的核心

c#中用DirectShow实现媒体播放器的核心(1) DirectShow简介用.net做多媒体开发的似乎不多,所以网上资源也少,看的人更少。
不过我的博客上居然还有几位在等新文章的人,有点出乎我的意料了。
目前我已不再从事多媒体相关的工作,加入新公司至今都忙到吐血,再加上害怕水平不够误人子弟,所以一直都没有更新这个系列。
但是之前有承诺过得着空就一定要更新,现在总算稍微空了那么一点点,继续烂着这个坑的理由就没有了。
DirectShow是微软平台上处理多媒体相关事务的一个平台,本身是基于COM技术上的框架,所以可以和.net配合的非常好。
在这套框架里,多媒体相关事务被分成一个一个的子任务,每个任务都放在一些名为Filter的COM组件里。
如果你只是做一些简单的工作,那么微软自带的那些filter估计已经够用了;但是如果你还有更高级的任务要完成,那么写filter估计就不可避免了。
在陷入到细节的泥潭之前,我们先给DirectShow拍个快照以便有一个整体的印象。
一开始火星人用竹竿捅下地球人的探测器后,在里面发现了一张光盘,火星人的计算机水平都巨高无比,他们在硬盘上用小刀刻一个操作系统只需要三分钟(相信我,还是破解版的),他们很想看看光盘里的内容,因为火星人是如此的土,以至于饭岛爱去世的新闻都不知道,还都在等她的无码片。
现在他们有操作系统了,他们也有光驱,他们什么都有,可是他们没有播放器。
火星人上有个广电不急,时刻准备把那一小撮不明真相的不看电视的群众消灭干净。
火星人只看电视。
可是在饭岛爱面前,广电不急一败涂地,火星人打算用他们的智慧开发出一款播放器,来观看精彩的饭岛爱无码片,他们不怕死。
很快他们就画出了草图:后来火星人发现把所有的功能都放到一个盒子里不好。
虽然没有老板检测他们的代码,逼他们加班重写,扣他们工资,但他们都是计算机水平巨高无比的生物,他们甚至知道27种设计模式,他们忍受不了如此丑陋的代码。
基于DirectFB的流媒体播放终端的研究与设计的开题报告

基于DirectFB的流媒体播放终端的研究与设计的开题报告一、研究背景随着互联网技术的快速发展,流媒体技术在网络视频领域的应用越来越广泛。
流媒体技术能够将音视频数据按照一定的压缩格式进行编码,并通过网络以流的方式进行传输,具有节省带宽、实时性强等优点。
现在许多应用软件都借助流媒体技术实现音视频播放和视频会议等功能。
流媒体技术的发展也催生了相应的嵌入式设备,并成为了新一代家庭娱乐的标配产品。
然而,由于嵌入式设备资源有限,流媒体播放终端需要具有较好的性能和低功耗特性。
目前较流行的软件平台有Qt、GStreamer等,这些平台的效率较低,占用系统资源过多,难以满足嵌入式设备的要求。
DirectFB是一种轻量级的嵌入式图形平台,可以在Linux系统下运行,并提供了硬件加速和嵌入式设备特性的支持。
因此,利用DirectFB开发流媒体播放终端可以有效解决嵌入式设备资源不足的问题。
二、研究内容和目的本项目将基于DirectFB平台设计和实现一款流媒体播放终端,实现以下功能:1.支持常见的流媒体格式,如RTSP、RTP等协议以及H.264、MPEG-4等视频编码格式;2.支持网络视频流的接收和解码,同时支持硬件加速,提高播放效果;3.提供简单易用的用户界面,实现播放进度、音量控制等功能,并支持全屏播放模式;4.低功耗。
通过DirectFB平台的优秀设计,可以大幅降低系统资源占用率,实现低功耗稳定运行。
本项目的研究目的如下:1.掌握DirectFB平台的基本功能和使用方法,并深入了解DirectFB 在嵌入式设备上的应用;2.实现一款高效、稳定、低功耗的流媒体播放终端,提高视频播放效果,并满足嵌入式设备资源有限的要求;3.提高嵌入式设备开发的技能,增强自身的竞争力。
三、研究方法和进度安排1.研究方法(1)调研:首先对流媒体技术和DirectFB平台进行深入调研,了解技术的基本原理及应用场景。
(2)设计:根据调研结果,结合研究目的,设计流媒体播放终端的整体框架和模块设计。
基于DirectShow的可控视野视频点播系统的设计与实现

基于DirectShow的可控视野视频点播系统的设计与实现王艺娜;王广生【摘要】随着网络和计算机技术的不断发展,视频点播的功能也不断完善,但仍然存在不足之处,不能满足观众个性化的需求.通过分析DirectShow的组成结构和工作原理,以及VMR的结构和渲染原理,介绍了利用VMR实现可控视野视频点播系统的方法.该系统可以让观众自己掌控收视的主动权,自由选择想看的电视画面.【期刊名称】《现代电子技术》【年(卷),期】2007(030)008【总页数】3页(P48-50)【关键词】视频点播;过滤器;DirectShow;VMR【作者】王艺娜;王广生【作者单位】北京工业大学,北京,100022;北京工业大学,北京,100022【正文语种】中文【中图分类】TP3111 引言视频点播(Video on Demand,VOD)是利用视频服务器存储的视频节目和其他多媒体信息,通过传输网络和用户前端设备(如机顶盒)向用户提供交互式的视频服务。
用户能够通过计算机或相应的用户前端设备,对服务器提供的视频节目进行编辑与处理,如暂停、快/慢进、搜索等等。
VOD还可以实现上网、家庭购物、旅游指南、订票预约、股票交易等其他功能。
但是,目前的视频点播功能具有一定的局限性。
播放的节目都是由电视台决定的,尤其是在比赛的转播中,电视台播放哪些画面、镜头,观众只能被动地接受,无法选择。
而可控视野的视频点播是利用摄像机组将现场各方位的画面都拍摄下来,然后利用视频融合技术进行处理,供用户进行点播。
这样,用户就可以自由地左看、右看了。
2 DirectShow技术DirectShow是建立在DirectDraw和DirectSound组件基础上的流媒体处理的开发包,他通过DirectDraw对显卡进行控制以显示视频,通过DirectSound对声卡进行控制以播放声音。
过滤器是DirectShow最基本的组成元件。
过滤器是一个COM组件,是完成DirectShow处理过程的基本单元。
基于DirectShow的媒体播放器的设计与实现

! ! "# ! ! !
计算机应用与软件
$%%& 年
图 $! 过滤器的结构
在过滤器图中, 为了完成特定的任务, 必须将所有需要的过 滤器连接起来, 因此上游过滤器的输出必定成为下游过滤器的 输入。一个过滤器至少有一个输入 ’(), 并将特定的输出送到输 出 ’()。从结构上来说, 一个源过滤器有一个或多个输出 ’(), 一 个典型的转换过滤器有一个输入 ’() 和一个输出 ’(), 而播放过 滤器通常只有一个输入 ’()。
这里, “ LL+P(” 表示各种 9T4 接口的 L+, “ 9<0L+P(” 表示 执行 9T4 组件的各种类的 L+。KPJ6,HJ1 为 L6,HJ1>?(;I-, 类型 的指针, 指向过滤器图管理器。 同样地, 调用这个函数, 可以创建各种类型的过滤器, 如源 过滤器和 4’567" 分解过滤器。要注意的是, 在创建时, 由于过 滤器的种类和它们的作用不同, 指定过滤器的 9<0L+P号和 LL+P 号时, 也有所不同。 在创建成功后, 通过调用过滤器图接口提供的 EIIQ(;/-, 函 数, 可以把我们刚刚创建的过滤器加入到过滤器图中去。调用 语句如下:
!+’,-. /.! 0+/1,2/3,4. 45 6+!,/ 71/8+0 9/’+! 4. !,0+:3’;4<
C17K L476$ I/ M14767
( !"# $#%&’()#*( +, -+)%.(#’ /01#*0# &*2 !#0"*+3+45, !+*461 7*18#’91(5, /"&*4"&1 !***>! , -"1*&)
基于DirectShow的音/视频传输系统设计与实现

基于DirectShow的音/视频传输系统设计与实现摘要:在IP网络基础之上,应用DirecShow这种流媒体处理开发包搭建框架,进行音/视频相关数据的回放、解码、网络传输、编码、采集的处理方案设计,最后实现时采用VC++编程软件进行操作。
基于DirecShow的音/视频传输系统为远距离视频监控、诊断故障、技术支援等计算机系统,给予利用音/视频开展实时沟通、交流的可能。
关键词:DirecShow;音/视频传输系统;设计;实现在远距离视频监控、诊断故障、技术支援等计算机系统之中,利用音/视频传输系统开展实时沟通、交流是其中较为关键的功能。
音/视频传输系统为关键设备或系统的维护修理、诊断故障给予远距离技术保障,同时为获得“实时”帮助的效果提供了较为关键的策略。
为实现现场、实时音/视频沟通、交流的功能,需要先保证音/视频相关数据得以有效的远距离传输,因为基于DirecShow的音/视频传输系统的基础在于IP网络,所以音/视频相关数据的传输也是利用卫星通信的TP网络,且在Windows这个平台之上得以实现。
一、基于DirecShow的音/视频传输系统方案设计1.选择DirecShow架构我们从程序开发应用的视角来说,利用卫星通信的TP网络,达到音/视频相关数据远距离传输必须从总体上考量数据的网络接收、数据采集、数据编/解码、数据回放与传输的方案,进而将数据传输的效率与质量有效提升,与此同时还应当尽量降低系统开发投入的成本与难度。
所以第一件要做的就是选择一个适宜的开发平台。
一般来说有以下三种开发平台可以选择:①直接利用Windows中API函数,这种平台虽然有着较大的灵活性,然而却具有开发难度高,需要较长开发时间的缺点。
②直接应用成熟的如NetMeeting等满足本系统需求的组件。
这种开发平台虽然没有多大的灵活性,却具有开发难度低,不需要过多的开发时间的优势。
③选择介于第一种与第二种开发平台之间的开发方式,结合拟开发的音/视频传输系统特点进行二次开发,这种开发平台难度与第一种开发方式相比较有很大程度的降低,却有着比第二种开发方式更大的灵活性。
基于Directshow的H.264流媒体播放器设计
命令控 制等 ; 其二就是客户端对接收到 的多媒体流实 时解 码 后播 放的技 术 。显然 , 网络 通信 可 以使 用 wn o ssce 技 i w ok t d 术 , 媒 体 流 的解 码 播 放 可 以使 用 dr t o 多 i es w技 术 。本 文 采 e h 用 dr t o i cs w应 用 框 架 , 计 了 网 络 源 ftr h 2 解 码 e h 设 i e 和 .6 l 4 ie 并 ft , 通过 Fl r rp lr ie ah构建 了流媒体播放器 J t G 。
1 D rc h w技术 和 H.6 i to es 2 4视频 压 缩标 准简 介
Dr t o i cs w是微软公 司提供的一套流媒体开发软件包 , e h 为 在 wno s 台 上处 理 各 种格 式 的媒 体 文件 的 回放 、 视 频 采 idw 平 音 集的高性能要求的多媒体应用 , 了完整的解决方案 。。 提供 Dre hw是一套完 全基 于 C M 的应用 系统 , i to es O 该系统位 于 应 用 层 中 , 使 用 Fl r rp 它 ie ah的 模 型 来 管 理 整 个 数 据 流 t G 的 处 理 过 程 ; 与 数 据 处 理 的 各 个 功 能 模 块 叫 Fl r各 个 参 ie ; t Fl r Fl rG ah中按 照 一定 的顺 序连 接成 一 条 “ 水 ie 在 ie rp t t 流 线” 同工作 。Flr 协 ie 是一个 C M 组件 , 功能可 以 由用 户 t O 其 自行 实 现 , i c hwS K 电为 用 户 提 供 了一 些 标 准 的 Fl r D r t o D eS ie t 供 用 户 使 用 。各 个 Fl r FlrG ah中按 一 定 顺 序 通 过 ie 在 ie rp t t
基于DirectShow的p2p流媒体播放器的实现
[ 键 词 ] Die th w; 媒 体 播 放 器 ; 2 关 rcS o 流 pp [ 图 分 类 号 ]P3 7 中 , 1 I 【 献 标 识 码 ]A 文 [ 章 编 号 ]1 0 — 5 0( 0 7 0 一 1 8 0 文 09 9 3 2 0 )3 O 1— 3
基于 Di cS o r th软件 学院 , 徽 合 肥 2 0 5 ) 中 安 3 0 2
的实现
【 摘 要 】 文 章 介 绍 了一 种 基 于 Die th w 技 术 的 p p流 媒 体 播 放 器 , 要 着 重 于 几 项 关 键 技 术 : rcS o 2 主
Di cS o 是 微 软 公 司 提 供 的 一 套 在 据 并 将 其 导 入 过 滤 器 图 ; 换 过 滤 器 用 来 获 取 、 r th w e 转 处 Wid w n o s平 台 上 进 行 多 媒 体 处 理 的 开 发 包 . 多 媒 理 和 传 送 媒 体 数 据 . 它 包 括 分 离 视 频 和 音 频 的 切 为 体 流 的 捕 捉 和 回 放 提 供 了 强 有 力 的 支 持 运 用 分 过 滤 器 、 压 视 频 数 据 的 视 频 解 码 过 滤 器 、 压 解 解 Die th w . 们 可 以 很 方 便 地 播 放 从 本 地 文 件 和 音 频 数 据 的 音 频 解 码 过 滤 器 : 表 现 过 滤 器 用 来 在 rcS o 我 网 络 播 放 多 媒 体 流 . 支 持 W DM 驱 动 模 型 的 采 集 硬 件 上 表 现 媒 体 数 据 . 如 显 卡 和 声 卡 或 是 磁 盘 文 从
户 。 P P流 媒 体 的 应 用 是 在 P P文 件 交 换 的 基 础 2 2 上产 生 的 . 户 在互 联 网 上观 看 视 频 流媒 体 时 , 用 可
基于DirectShow的WinCE多媒体编程
DirectShow 应用程序应该至少连接库文件strmiids.lib 和quartz.lib。
前者定义了DirectShow 标准的CLSID 和IID,后者定义了导出函数AMGetErrorText(如果应用程序中没有使用到这个函数,也可以不连接这个库)。
如果程序里包含了头文件streams.h,则一般库文件还要连接strmbasd.lib、uuid.lib、winmm.lib。
DirectShow是由微软开发的处理多媒体文件的应用程序接口(API),基于COM(组件对象模型)框架。
如图所示,DirectShow主要由Filters和Filter Graph Manager组成。
其中Filters有好多种,Source Filters叫做源过滤器,主要作用是从多媒体文件(来自本地或者Internet等)引入源数据流。
Transform Filters 叫做传输过滤器,作用是对源数据流进行处理,如编解码(包括软解码和硬解码)、转换格式、解压缩等等。
Rendering Filters是渲染过滤器,它会在最后将处理完的数据流传送给相关硬件播放,如通过DirectDraw控制显卡显示图形,通过DirectSound控制声卡发出声音等等。
除此之外,DirectShow还包含其它很多过滤器,以后再详细了解。
图中Source Filters、Transform Filters、Rendering Filters组合在一起,称为过滤器图。
DirectShow就是由这些完成各自分工的Filters 前后串联在一起来完成工作。
Filter Graph Manager称为“过滤器图管理对象”,主要作用是协调不同的Filters,建立参考时钟供Filters使用,采用队列机制将DirectShow事件传递给应用程序等等。
图中每个过滤器,都包含有称为Pin(引脚)的私有对象,它们派生自IPin。
Pin分为两类:输入Pin和输出Pin。
基于DirectShow技术的媒体播放器
基于DirectShow技术的媒体播放器作者:秦晓梅张艺博来源:《电脑知识与技术·学术交流》2008年第18期摘要:介绍了DirectShow技术的基本概念和Filter Graph及其组成,提出了一个基于DirectShow技术的媒体播放器的设计,并构建了过滤器图表,同时文中详细叙述了软件开发的实现框架。
本文以VC + + 6.0和DirectShow技术开发媒体播放器,并给出了关键代码的示例。
关键词:DirecShow;Filter;Filter Graph;媒体播放器中图分类号:TP37文献标识码:A文章编号:1009-3044(2008)18-2pppp-0cMedia Player Based on DirectShow TechnologyQIN Xiao-mei, ZHANG Yi-bo(Henan Economy and Trade Vocational College,Zhenzhou 450053,China)Abstract: This thesis mainly introduces the basic concept of DirectShow technology, and Filter Graph with its composition, the thesis suggests a media player based on DirectShow technology one, and designs filter graph. The realization frame of software development is discussed at the same time detailedly in the main body of this thesis. VC + + 6.0 and DirectShow technology is used in the course of programming. the key code of the program is also available.Key words:DirecShow;Filter;Filter Graph;Media Player1 引言DirectX软件开发包是微软公司提供的一套在Windows平台上开发高性能图形、声音、输入输出和网络游戏的编程接口,DirectShow是DirectX家族的成员之一,DirectShow可以实现高质量的音视频采集、编辑、编码、解码和播放。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号: 学号:200706705 作者: 作者:国艳松
基于DirectShow的媒体播放器设计 的媒体播放器设计 基于
• • • • • • • 研究背景与意义 开发相关技术 DirectShow体系结构 体系结构 播放器的功能设计 智能连接 DirectShow播放器的实现 播放器的实现 播放器系统演示
4. 播放器的功能设计
• 本论文中要求基于DirectShow设计播放器,根据对 媒体的分析得到系统的主要功能如下:
媒体播放器
播 放 器 的 基 本 功 能
截 图 功 能
全 屏 功 能
声 音 控 制 功 能换 肤 来自 能播 放 模 式 控 制
播 放 列 表 操 作
6. 智能连接 • 是构建Filter Graph的一种方法 • 智能连接的优点 • 1:与传统方法相比,具有智能 化 • 2:避免了代码冗余 • 智能连接原理
7.2应用程序构建过滤器图
• 文件路径中不包括协议名,Filter Graph就分 析这个文件的扩展名,然后到注册表中区匹 配扩展名。如果找到了,就根据Source Filter 键值指定的CLSID创建Filter。 • 若找不到,Filter Graph Manager 就进行文件 的校验字节判断。如果没有符合的,Source Filter就要创建一个File Source的Filter.
截图 实现
• 从Filter Graph Manage中可以获取IBasicVideo接口 ,这个接口支持通用的视频窗口的视频属性,当 视频提交过滤器处于连接状态时,可以使用接口 方法GetCurrentImage返回,在提交过滤器中等待 的当前图片的副本,达到抓取图片的目的。 • 另外,Filters之间是以Sample的形式传送数据的, Sample是一个封装了一定大小数据内存的COM组 件。当Graph构建成功之后,Sample从上一级的输 出Pin传送给下一级的输入Pin。因此,同样可以通 过抓取Sample的方式,在视频流中抓取图片。
8.3智能连接构建Filter Graph
• DirectShow提供了两种枚举Filter的方法。一 种是利用系统设备枚举器(System Device Enumerator),通过Filter的分类枚举各种过滤 器。另一种方法是通过过滤器图,根据程序 提供的搜索条件寻找合适的过滤器。搜寻到 合适的Filter后,利用Filter Graph Manager的 IFilterGraph接口实现该Filter的添加。Filter之 间的连接,也是通过Filter Graph Manager所提 供的COM接口实现的。
• DirectX SDK9.0
• 微软将DirectX定义为“硬件无关性”,从而提高 设备性能
• Microsoft Visual C++6.0平台 平台
• Windows提供的可视化集成开发环境
3. DirectShow体系结构 体系结构
• • • • COM组件 组件 Filter Filter Graph Filter Graph Manager
9 播放器系统演示
换肤演示
打开文件演示
截图界面
声道/声音控制
总 结
• 流媒体的应用方兴未艾,各种基于流媒体的应用 研究正成为热点,取得的成果是有目共睹,而定 制组件开发技术必将在流媒体应用中发挥更为广 泛的作用。 • DirectShow SDK是基于COM组件,该技术是开发多 媒体的一个行之有效的方法。目前,网络上多媒 体数据的急剧增大,以及对实时性需求的增加, 使得DirectShow越来越广泛地应用在媒体播放程序 中。在未来几年中,DirectShow技术的发展前景相 当广阔。
7.2应用程序构建过滤器图
• 利用IGraphBuilder::RenderFile函数,进行智能连 接 • 该参数提供源文件名,自动加入必要的Filter完 成这个文件的回放Filter Graph构建。 • RenderFile RenderFile函数机理: • 分析文件路径中是否有协议名(如http、ftp),如 果有,则在注册表的位置下寻找这个协议名,找 到了则使用Source Filter键值指定的CLSID。 • 找不到的情况下,Filter Graph Manager就创建一 个成为File Source的Filter。
3.3 过滤器图 过滤器图(Filter Graph) • 过滤器图 (Filter Graph)是过滤器 (Filter)的容器。 • 过滤器图作用 • 过滤器图数据传输模式 • 过滤器图状态
3.4 过滤器图管理器 过滤器图管理器(Filter Graph Manager)
• 应用程序用于控制过滤器图和过滤器的COM 组件。 • 过滤器图管理器功能: • 1:状态改变 • 2:参考时钟 • 3:Graph事件
7. DirectShow应用程序开发 应用程序开发
• 创建过滤器管理器实例 • 使用过滤器管理器构建过滤器图 • 过滤器管理器控制过滤器图和流数据通 过过滤器。 • 应用程序释放过滤器管理器和所有的过 滤器。
7.1 创建过滤器管理器实例
• 首先初始化DirectX SDK动态库: • CoCreateInstance(CLSID_FilterGrap h, NULL, CLSCTX_INPROC_SERVER,IID_IGrap hBuilder, (void **)&mGraph)
8.3智能连接构建Filter Graph
• 在操作系统中,通过安装各种媒体软件和 DirectShow开发包,就会存在了大量的实现特 定功能的Filter,利用这些己有Filter,可以开 发各个功能的应用程序,提高了开发效率。 • 利用Filter Graph Manager组建Filter Graph时, 寻找Filter是程序开发的关键。 • 那DirectShow 是如何寻找Filter?
1. 研究的背景与意义
• 随着信息技术的发展,流媒体播放器迎来 新的挑战。 • DirectShow简化多媒体应用程序的开发, 不必考虑复杂的数据流格式和不同的终 端设备,以及数据同步的问题。 • DirectShow 给多媒体程序开发员提供了 标准的、统一的、高效的API 接口
2. 开发相关技术
致 谢 • 感谢指导老师 • 感谢评委 • 感谢我的朋友和同学
8.3智能连接构建Filter Graph
IGraphBuilder::RenderFile是根据文件媒体类型利用智 能连接机制构造了一个能够播放特定文件的Filter Graph。播放的准备工作完成后,就可以利用 IMediaControl::Run方法让Filter Graph进入运行模式 ,使媒体数据开始在Filter Graph 中流动。主要代码 如下: mGraph->QueryInterface(IID_IMediaControl,(void **)&mMediaControl);//获取媒体控制接口 • mMediaControl->Run();//对Filter Graph中的媒体流进 行控制
7.2应用程序构建过滤器图
• IGraphBuilder::RenderFile 使用上述方法检测 文件的类型,确定并找到正确的源过滤器 (Source Filter)。确定源过滤器(Source Filter)后, 就从源过滤器(Source Filter)的各个输出Pin开 始,进行剩下的智能连接过程。这是一个 “递归过程”,直到所有的分支都连接到一 个Rendering Filter上为止。
3.1 COM组件
• 是一种软件架构,它规定了不同的 对象使用统一的协议来进行通讯的 一套机制。
• COM组件的特点 • COM组件类型 • GUID
3.2 过滤器 过滤器(Filter)
• DirectShow是基于模块化,每个功 能模块都采取COM组件方式,称为 过滤器(Filter)。 (Filter) • Filter存在形式 • Filter 分类 • Filter 状态