,VC   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,VC
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VC > 正文
基于DirectShow的流媒体解码和回放
[文章信息]
作者:刘 涛
时间:2002-12-10
出处:yesky
责任编辑:方舟
[文章导读]
流媒体的定义很广泛,大多数时候指的是把连续的影像和声音信息经过压缩处理后放上网站服务器
advertisement
热点推荐
· 深入探讨SQL Server 2000对XML的支持
· Swing(空)
· 3DS Stodio Max 宝典
· 中小企业服务器配置方案--前 言
· 中小企业服务器配置方案--代理接入服务器(3)
[正文]

1 2  下一页


  一、 前言

  流媒体的定义很广泛,大多数时候指的是把连续的影像和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己机器就可以观看的视频/音频传输、压缩技术。流媒体也指代由这种技术支持的某种特定文件格式:压缩流式文件,它通过网络传输,并通过个人电脑软件进行解码。

  MCI是微软为Windows最初提出的多媒体编程接口,随着多媒体技术的迅速发展,各种压缩算法在该领域的的应用,MCI技术越来越显的力不从心,最明显的是它不支持可变比特率的压缩算法,对于处理DVD等近年出现的多种新的媒体格式已显得无能为力,而使用微软提供的vfw之类的多媒体库又太麻烦。怎么办呢?
作为MCI的"接班人",微软又适时推出了建立在DirectX(包含DirectDraw、DirectSound、Direct3D)之上的DirectShow技术,它是在DirectX之上的媒体层,支持来自本地或网络的各种视频、音频压缩格式的媒体文件的解码和回放,可以从设备上捕捉多媒体流,也可以处理各种压缩算法处理的流媒体。这些格式包括:MPEG的音频和视频标准、音频和视频交互标准(AVI)、WAVE、MIDI和高级流格式ASF。DirectShow对媒体数据处理采用流媒体(Multimedia Stream)的方式,在应用中使用该方式可以大大的减少编程的复杂程度,同时又可以自动协商从数据源到应用的转换,流接口提供了统一的、可以预测的数据存取的控制方法,这样应用程序在播放媒体数据时不需要考虑它最初的来源和格式。
 
  二、理解DirectX

  DirectX是一个用于多媒体应用程序和硬件增强的编程环境,它是微软为了将其Windows建设成适应各种多媒体的最好平台而开发设计的。DirectX目前已经成为微软自身SDK的一部分,而Windows 98/Windows 2000内则集成了DirectX,表明它已成为操作系统的一部分。

  DirectX技术是一种API(应用程序接口),每个DirectX部件都是用户可调用的API的总和,通过它应用程序可以直接访问计算机的硬件。这样,应用程序就可以利用硬件加速器(Hardware Accelerator)。如果硬件加速器不能使用,DirectX还可以仿真加速器以提供强大的多媒体环境。

  为了理解DirectX,我们可以把系统分为四层:

  ●硬件/网络层:放置有多媒体设备,包括图形加速器、声卡、输入设备以及网络通信设备等;

  ●DirectX基础层:为图像、声音和设备提供多媒体基本服务;

  ●DirectX媒体层:为动画制作、音频和视频等提供API功能;

  ●组件层:包括ActiveX控制和应用,它利用DirectX的API功能的优势为用户提供多媒体服务。

  DirectShow就是建立在DirectX媒体层之上的技术,其前身是ActiveMovie2.0。它以一组API函数或ActiveX控件出现,用途是让开发者能够在网络上传递高质量的音频和视频信号。值得一提的是,DirectShow为我们提供了一个开放式的开发环境,我们可以根据自己的需要定制组件。

  三、DirectShow技术结构

  DirectShow定义了如何利用标准组件来处理流媒体数据,这些组件称为过滤器。过滤器带有输入、输出针角(pin),或二者兼而有之。在DirectShow技术中处于最核心位置的就是作为"过滤器"的可插入标准组件,它是执行特定任务的COM对象。过滤器又可被细分为源过滤器(Source filter)、变换过滤器(Transform filter)、表现过滤器(Renderer filter)等。过滤器通过向文件读写、修改数据和显示数据到输出设备上来操作流媒体。为了完成整个任务,必须要将所有的过滤器Filter连接起来,这三种过滤器组成了过滤器图表结构,如图3.1所示:


图3.1 过滤器图表结构(Filter Graph)

  从图3.1中可以看出,过滤器图表是各种过滤器的集合,它是通过过滤器的输入输出针脚"pin"顺序连接而成的,这些过滤器的针脚通过协商来决定它们将支持何种形式多媒体。由于DirectShow支持可重构的过滤器图表结构,所以使用相同的软件组件可以播放多种类型的媒体。开发人员可以通过定义自己的过滤器来扩展DirectShow对媒体的支持功能。

  在过滤器图表结构中,源过滤器用来从数据源获取数据,并将数据传送到过滤器图表中,这里的数据源可以是摄像机、因特网、磁盘文件等;转换过滤器用来获取、处理和传送媒体数据,它包括分离视频和音频的分解变换过滤器(Splitter transform filter)、解压视频数据的视频转换过滤器(Video transform filter)、解压音频数据的音频转换过滤器(Audio transform filter);表现过滤器用来在硬件上表现媒体数据,如显卡和声卡,或者是任何可以接受媒体数据的地方,如磁盘文件。它包括用来显示图像的视频表现过滤器(Video renderer filter)、将音频数据送到声卡上去的音频表现过滤器(Audio renderer filter)。

  在过滤器图表中,为了完成特定的任务,必须将所有需要的过滤器连接起来,因此前级过滤器的输出必定成为下级过滤器的输入。一个过滤器至少有一个输入针(Input pin),并将特定的输出送到输出针(Output pin);图3.2显示了一个过滤器连接图:


3.2 过滤器连接图

  你的应用程序不需要对过滤器图表中的各个过滤器进行单独的处理,因为在更高的层次上,DirectShow提供的一个称为过滤图表管理器的部件(FGM)管理着这些过滤器的连接和流媒体数据在过滤器之间的流动,FGM提供了一套COM接口,应用程序可以通过它来访问过滤器图表、控制流媒体或者接收过滤器事件。如果需要,它可以自动的插入一个合适的解码器,并将转换过滤器的输出针脚连接到表现过滤器。应用程序可以通过与过滤图表管理器的通信来控制过滤器图表的活动。程序开发人员只需要调用API函数来实现对流媒体的控制,如run方法启动流媒体在过滤器图表(Filter graph)中的流动;pause方法暂停流媒体的播放;stop方法停止播放流媒体等。

  另外,利用Filter Graph Manager能够将事件信息传送到应用层这一特点,可以使应用程序可以响应事件处理,例如播放或搜索流媒体中的特定时间段的数据、流结束信息等。

  图3.3是一个MPEG解码播放的实例,可以看出Source filter将获取的多媒体数据通过Outpin送到MPEG分解转换过滤器,MPEG分解转换过滤器有一个输入针脚,两个输出针角分别将视频和音频解释码器进行解码,最后两路数据分别通过视频表示过滤器、音频表示过滤器送到显卡和声卡进行回放。


图3.3 MPEG解码实例


1 2  下一页

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
,VC相关内容,VC焦点新闻
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,VCAdvertisement

    天极无线
    经典名曲 华语流行 欧美风情 人声音效 原声大碟
    你好周杰伦-安又琪
    直线-张韶涵
    天边-张韶涵
    看我72变-蔡依林
    乱世佳人-Twins
    全世界下雨-张娜拉
    我们的爱-飞儿乐队
    分手快乐-梁静茹
    爱在西元前-周杰伦
    三万英尺-迪克牛仔
    爱如潮水-张信哲
    爱情宣言-齐秦
    寻找玛依拉-刀郎
    驼铃-刀郎
    老鼠爱大米-杨臣刚
    功夫主题曲
    仙剑主题曲杀破狼
    天下无贼片尾曲
    冲动的惩罚-刀郎
    情人-刀郎
    爱情-莫文蔚
    挪威的森林-伍佰
    奔跑 - 羽泉
    因为爱 - 羽泉
      ·时尚女人圈
    ·经典影视专集
    ·美女秀场
    ·美丽大自然专题
    ·流行金曲
    ·科幻电影特区
    | 最新推荐
    ·你好周杰伦
    ·杀破狼
    ·寻找玛依拉
    ·孤单公园
    ·男人海洋
    | 魔术铃声
    ·少女丰胸
    ·少妇丰胸
    ·减肥魔铃
    ·增高魔铃
    ·美容魔铃

    今日报价查询 更多报价