DirectShow概述

DirectShow是微软的多媒体处理框架,属于DirectX的一部分,它采用COM组件(Filter)串联方式处理流数据,广泛应用于多媒体文件播放、音视频采集、网络流媒体等领域。通过Filter Graph Manager管理过滤器流水线,实现数据的高效处理。开发者可以方便地扩展DirectShow功能,通过配置VC编译环境和使用Filter Graph Manager接口来开发应用程序。
摘要由CSDN通过智能技术生成

1. 关于DirectShow

1.1
DirectX是微软公司开发的一套基于Windows平台的编程接口(API);它能出色地完成高速的实时动画渲染、交互式音乐和环境音效、高效多媒体数据处理等一般API很难完成的任务。
DirectShow是DirectX大家族中的一位成员。DirectX的家族成员很多,而且各有各的本领,就如DirectDraw和Direct3D负责二维图形图像/三维动画加速、DirectMusic和DirectSound负责交互式音乐/环境音效处理一样,DirectShow为Windows平台上处理各种格式的媒体文件播放、音视频采集等高性能要求的多媒体应用,提供了完整的解决方案。

DirectShow是一个开放性的应用框架,也是一套基于COM的编程接口。DirectShow的系统功能参见图1.1。可以看到,图中最大的一块即是DirectShow系统,它的基本工作原理就是“流水线”:将单元组件——Filter——串联在一起,交由Filter Graph Manager统一控制。系统的输入可以是本地文件系统、硬件插卡、因特网等,系统的输出可以是声卡(声音再现)、显卡(视频内容显示)、本地文件系统,当然也可以最终将数据向网络发送。

事实上,计算机应用领域中的很多模块都可以和DirectShow系统交互。也就是说,DirectShow的应用范畴很广。单纯从本地系统来说,DirectShow可以实现不同格式的媒体文件的解码播放、或格式之间的相互转换,可以从本地机器中的采集设备采集音视频数据并保存为文件,可以接收、观看模拟电视等。而从网络应用的角度来说,DirectShow更可用于视频点播、视频会议、视频监控等领域。其实,广义上来说,DirectShow系统适合于一切流式数据的处理,这些数据可以是音频、视频这样的多媒体数据,但又不局限于多媒体数据。

随着信息技术的发展,多媒体技术迎来新的挑战:
(1)多媒体流包含了大量的数据,这些数据要求被迅速处理以达到实时性。
(2)视频流和音频流的同步。
(3) 流的来源非常复杂,包括本地文件、Internet 网络、摄像头、视频卡和电视广播网等。
(4)流的格式也多种多样,包括Audio2Video Interleaved(AVI) ,Advanced Streaming Format (ASF) , Motion Picture Experts Group (MPEG) ,and Digital Video (DV)等。
(5)开发人员事先并不知道终端用户的硬件设备。

Microsoft的DirectShow正是为了适应以上的挑战而设计的多媒体开发工具, Microsoft 设计它的意图就是简化多媒体应用程序的开发,使开发者不必考虑复杂的流数据格式和不同的终端设备,以及数据同步的问题。
Microsoft 通过DirectShow给多媒体程序开发员提供了标准的、统一的、高效的API接口。DirectShow技术是建立在DirectX的DirectDraw和DirectSound 的基础之上的,它通过 DirectDraw 对显卡进行控制以显示视频,通过DirectSound 对声卡进行控制以播放声音。DirectX为了最大限度提高效率而允许用户直接访问硬件,如允许用户直接读写显存,因此,DirectShow也同样具有快速的优势。

为了实现对多种对象(不同流格式和不同的终端设备)的处理,DirectShow使用了组件(COM)封装的实现方法,在DirectShow中组件称为滤波器(Filter) 。
图1为用户程序与DirectShow及外部对象的关系框


图1  DirectShow系统框图
从图1 中可以看到,DirectShow的滤波器支持多种外部设备,包括本地文件系统、视频采集卡、有线电视接口、视频播放卡(通过 DirectDraw 或 Graphic Dev

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值