Graph Editor 教程 如果有看过本人做的Ogg Vorbis的评测文章,就会发现我在测试时由于WINAMP本身不支持将WMA的播放输出连接到它自己的DiskWriter插件进行保存而使用了一个工具来解码WMA文件。那就是GRAPH EDITOR。这个名字一看下去很容易给人造成误解,以为是一个图象编辑器。其实它是一个可视化的DirectShow Filter Graph Builder,也就是可以可视化地将DirectShow滤镜连接在一起运行的软件。 这个软件是Microsoft在DirectX SDK里面带的一个用于程序查错用的工具,如果就凭它是不足以做解码工作的。不过由于Microsoft顺带在DirectX SDK里面带了两个示例性质的DirectShow插件:Dump.ax 和 WavDest.ax,于是利用Graph Editor进行解码工作就成为现实了。有兴趣的朋友可以按这里下载。由于原则上只有微软才有此软件的传播权力,因此下载的压缩包是有密码的,密码是“世纪音频”的拼音全称。 可以在这里先告诉大家的是,现在充斥在网络上的从DVD上抓取的DivX;-)影片,Graph Editor是其中一个重要的辅助制作工具。Microsoft的软件变成盗版工具了,这倒是比较讽刺的。 下载回来之后,要做的第一步是将压缩包里面的两个扩展名为ax的DirectShow Filter插件注册到Windows中。方法有两个: 1、将.ax文件一次一个地拖到REGDROP文件上松开。 2、在MS-DOS方式下键入regsvr32 ".ax文件全路径",比如:regsvr32 “c:\graphedit\dump.ax”。 注册了之后如果又将ax文件移走了,则要重新注册。然后运行GraphEdit.exe。下面是其窗口:
在图里有4个方框,每个方框代表一个DirectShow Filter插件。每个框的左右两边都有些突起,称为pin。Pin是在DirectShow里面用来连接各种Filter插件的接口。Pin旁边的名字代表了这个pin所能接受和输出的数据类型。两个pin之间的箭头连线表示数据的流动方向。从上图中,我们可以很清晰的看出DirectShow系统(也就是当使用Windows Media Player时)播放mp3文件究竟经过了一个怎样的处理过程。这里需要注明一下的是,我的Windows里面装了另外一个mp3的解码器,所以显示的是InterVideo Audio Decoder,与一般的Windows的显示是不同的(正常情况下应该显示MPEG Layer-3 Decoder)。当这么一个解码流程图建立以后,我们就可以通过工具栏上的播放按钮进行播放了。 下面的是播放WMA的图:
一开始可能觉得这个过程比较复杂,动手试过之后就会觉得非常简单。所以下面详细介绍一下这个软件实现起来的机制。Graph Editor其实是基于DirectX中的DirectShow的。自从DirectShow成为DirectX中的一个标准组成部分之后,微软便将Windows中一切与多媒体处理相关的东西都使用DirectShow技术来实现。按照通用性的原则,每一个处理过程都会被设计为一个独立的插件,添加到系统中,在处理媒体的时候再按需要进行调用。GraphEditor实现的便是将原本大家见不到的插件连接调用以可视化的形式显示出来。换句话说,其实就是将我们本来要写程序才能实现的操作用菜单,鼠标等等的操作来实现了。 - END -
版权所有,未经作者(苏信东)本人许可不得转载于任何媒体 .ax文件就是DirectShow Filters的DLL文件,用regsvr32加载。http://www.mcaleely.com/freeware/DXMFilter/ 这里有一个创建DirectShow Filter工程的Visual Studio IDE的Template, 下载并且安装他的DXMFilter,可以在你的Visual Studio IDE里多出一个'DirectXMedia Filter Wizard' 向导。有了这个向导,开发DirectShow Filters就更容易了。 |