DirectShow技术介绍(长篇)-1

DirectShow是一个用于多媒体流处理的框架,适用于Windows系统,支持多种格式的音视频播放和捕获。它通过Filter Graph管理和Filter进行数据流控制,允许硬件加速。DirectShow接口和属性丰富,包括IAMAudioInputMixer等,适用于视频会议、捕获和转换任务。此外,它支持多种数据格式和流类型,如KS_VIDEOSTREAM_CAPTURE、KS_VIDEOSTREAM_PREVIEW等。
摘要由CSDN通过智能技术生成

DirectShow 用于控制多媒体数据流;它可以在运行时允许用户播放数字电影和对不同格式的声音进行解码,包括MPEG-1。这种播放性能可以让音视频卡支持Microsoft DirectX?APIDirectShow 同样可以播放AVI电影文件和Apple QuickTime (.mov)格式文件。

 

DirectShow 被广泛地应用于Windows 95, Windows 98, Windows 2000应用程序。DirectShow 直接和驱动程序通讯,DirectShow 不使用AVICap, 因为AVICap分配了数据缓冲区,如果一个DirectShow 层没有放在AVICap 顶层,那么缓存区数据必须要通过转化去指向它,这样会造成效率低下。

 

DirectShow Filter Graph

DirectShow结构定义了标准的组件去控制处理带时间标记(time-stamped)的多媒体数据流,这些组件被称为过滤器(Filter)。把这些Filter放在一个容器中,这个容器就是Filter Graph。可能有三种类型的FilterSource transform render。。(注:有些资料将Filter翻译为过滤器,FilterGraph翻译为过滤器图表,这里我都用原单词)。应用程序可以通过Filter Graph管理器来进行数据访问。Filter Graph 管理器会对Filter Graph配置进行管理,同时还会通过Filter Graph控制数据的转移。Filter Graph 管理器提供了一套COM接口,去允许应用程序与Filter Graph实现通讯。应用程序可以直接调用Filter Graph管理器接口去控制媒体流或者去获得Filter事件。还可以使用DirectShow ActiveXOCX控件进行程序设计。,还有一套MCI子集命令可以用来向后兼容Microsoft VFW 1.x版本和遵循OM-1 MPEG MCI 规范。

 

 

WDM数据流 

WDM数据流主要应用包括视频捕获,电视浏览,VBI数据编码支持和DVD电影播放。DirectShow可以非常容易地使用这些数据。 

 

视频捕获 Minidrivers

视频卡由一些组件构成,比如电视信号调谐器,AM/FM调谐器,视频解码器,音频解码器等,它们都由WDM Minidriver控制。使用Minidrivers ,就可以允许硬件开发商为不同的卡开发器驱动程序,他们只需要把Minidriver写到他们的卡上,当硬件设计修改后,不需要对修改驱动做更多的修改。

 

Windows 98 Windows 2000下,视频设备使用WDM Minidriver去控制视频数据流,视频捕获 Minidrivers 相当与一个客户端,它会去控制处理硬件设备的图像数据和其他相关数据。Minidrivers提供了如下的功能:

捕获压缩和非压缩的视频数据流,VBI数据,时间编码和其他辅助数据流。 

控制视频流相关设备,比如电视信号调谐器,视频路由设备,电视音频控制器和视频压缩编码器。 

在流内核中完成处理工作,减少操作过程提高效率。 

 

Pins, Streams, Formats

数据流视频捕获驱动程序可以同时支持多个压缩数据,非压缩数据,时间编码, VBI解码数据以及自定义数据。为了保证每种数据同步匹配,捕获驱动程序为这些数据创建了一个新的数据流。每个流都会用一个WDM流针脚(Pin)来传递,通过针脚,单个数据流就可以把它的数据连接到不同的流Filter中去,还可以通过DirectShow 用户Filter的输出针脚,把数据转换输出给用户。(前面我们提到Filter3种类型:Source transform renderSource只有输出针脚,而transform有输入、输出2个针脚,render只有输入针脚)

 

每个针脚都可以支持多种不同的数据格式。比如,一个针脚它可以提供RGB16, RGB24, YVU9, JPEG 数字视频。针脚可以连接到一个共享的系统内存的数据缓存区,它还可以直接连接到硬件设备。

 

视频流命名约定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值