DirectShow 简介

    微软DirectShow是微软Windows平台上的流媒体体系结构。DirectShow提供了高质量的多媒体流采集和回放功能。它支持多种多样的媒体文件格式,包括ASF、MPEG、AVI、MP3和WAV文件,同时支持使用WDM驱动或早期的VFW驱动来进行多媒体流的采集。DirectShow整合了其他的DirectX技术,能自动地侦测并好使用可利用的音视频硬件加速,也能支持没有硬件加速的系统。     

    DirectShow大大简化了媒体回放、格式转换和采集工作。但与此同时,它也为用户自定义的解决方案提供了底层流控制框架,从而使用户可以自行创建支持新的文件格式或其他用户的DirectShow组件。

    使用DirectShow编写的典型应用程序包括:DVD播放器、视频编辑程序、AVI到ASF转换器、MP3播放器和数字视频采集应用。

    DirectShow是基于组件对象模型(COM)的,因此当你编写DirectShow应用程序时,你必须具备COM客户端程序编写的知识。对于大部分的应用程序,你不需要实现自己的COM对象,DirectShow提供了大部分你需要的DirectShow组件,但是假如你需要编写自己的DirectShow组件来进行扩充,那么你必须编写实现COM对象。

    多媒体应用开发由于其特殊性,因此需要处理一些特殊的问题:

    (1)高效性:多媒体包含了大量的需要快速处理的数据

    (2)协调性:音频和视频必须同步,以便它们同时开始或停止,并以同一速率播放

    (3)多样性:数据可能有多种来源,如本地文件、网络、电视广播和视频摄像机。同时它们也可能以各种各样的格式出现,如AVI、ASF、MPEG和DV。

    (4)可移植性:程序员无法预知用户最终在其终端用户系统中使用的硬件设备。

     从上面的问题可以看出,在多媒体程序设计中,这些典型问题是多媒体程序开发的关键问题,也是普遍问题。如果每次的程序设计都要根据不同的软硬件重新设计编程解决这些问题,无疑会给程序员开发带来极大的工作量,很显然这是不希望的。DirectShow就是被设计用来解决这些难题的。它主要的设计目的,就是通过将复杂的数据传输、硬件的多样性和同步问题从应用程序中独立出来,从而简化在Windows平台上数字媒体应用程序的开发任务。总体应用程序框架和底层工作由DirectShow来完成,使得基于DirectShow框架的多媒体应用程序开发变得非常简单。

     当视频和音频数据被转化为数据流之后,是实现数据流的快速处理,DirectShow会尽可能地使用DirectDraw和DirectSound,从而高效地将数据送到用户的声音和图形设备中进行播放。同步则是通过在媒体数据封装成数据块,并加入时间戳来实现的。而DirectShow模块化的架构,使其可以轻松操纵各种各样的数据源、文件格式和硬件设备,采用这样的架构,应用程序只需完成Filter组合和匹配即可。

 

参考:

https://www.yuque.com/docs/share/bde90eb7-f903-4090-ae4f-12ebdafe08b2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值