Directshow是微软研发出来的一个多媒体框架,它能实现常见多媒体应用的功能,比如文件/流的接收读取 、AV文件的解交织(Demux)、音视频的解码、音视频的同步、音视频的展现等。曾几何时,Directshow是Windows平台的一项热门技术,是做Windows多媒体开发的不二之选,在工业上应用得很广泛。现在市面上很流行的播放器,比如MPC,暴风影音,快播等,都是基于Directshow技术开发的。但是,随着时代的发展,一个框架如果不继续发展,总会有被淘汰的危险,或者被新的更好的框架代替。现在微软已经推荐开发员用他新的框架:Windows Media Foundation, 而使用Directshow来做开发的人也越来越少(看各大招聘网站上招Directshow程序员的职位数就知道了)。
无可否认,Directshow是一个很优秀的框架,具有很多优点。它通过以Filter的形式将复杂的多媒体处理的工作封装起来,程序员通过访问COM接口就能够实现很丰富的多媒体应用功能,大大降低了多媒体开发的难度。比如做一个播放文件的应用,用Directshow只需要将各种解析文件的Source Filter或分离器,还有解码器、渲染器连接起来,连接成一个链路图(叫“Filter Graph”),然后运行起来就可以工作了。如果不需要自己开发底层Filter,程序员用Directshow开发要做的工作很少,开发难度不高。Directshow框架设计有两个核心的优点:1. Plug-in based,即基于插件式,将每个实现具体单一功能(decoding、filter、...)的单元称为一个组件(component)