今天读到一篇文章,内容是wmsdk和dshowsdk的特征比较,以及对于具体需要应如何选择,笔记如下。 About ASF 1. 这篇文章里把ASF解释为Advanced System Format(wmfsdk里也是这样说),而有些论文里是Advanced Stream Format,不知道到底哪个是权威。 2.使用第三方视音频编码的ASF文件,不能用wmv wma结尾了,只能是asf。 3.ASF文件,fat或fat32下最大是4GB,NTFS下可达50GB。
About WMSDK 1.WMFormat SDK是生成包含第三方编码流的asf文件的唯一选择。 2.WMF SDK提供的最底层的操作,从而可以使应用程序拥有最大的灵活性,当然同时伴随着较长的开发时间。 3.WMEncoder SDK生成wmfiles最方便,调用一些简单的api即可实现。 4.WMplayer SDK ,播放asf文件的最简便方法,基本就是一个控件。
About Dshow SDK 1.Dshow提供了一套完整的媒体流架构,已经一些高层的api,其基本单元为filter,实现一个基本的流操作,许多filters连接起来完成一个完整的任务。 2.Dshow还提供一套DirectShow Editing Services (DES),用于开发非线性编辑软件。 3.Dshow通过提供一个ASF Writer和 Asfreader 来实现对asf的支持。这两个filter都是internally 使用了wmfsdk。 4.ASF read filter有新旧两个版本,新版本的支持rate control。但是在dshow中自动构建graph时其调入的是老版本,如果需要用新版本的需特别指定,在dshow sdk里有说明。 5.对于创建asf文件,dshow的优势在于比起encodersdk来has a smaller footprint in host memory.(这个不太理解)
Conclusion: When To Use Which SDK
1.在程序或网页中播放asf文件,用player sdk。 2.To add Windows Media Format support to an application not based on DirectShow,use WM format sdk。(这不跟没说一样嘛^_^) 3.to add Windows Media Format support to a DirectShow-based application,use directx8 or 9。 4.To build a Windows-based universal-format player,use directx sdk. 5.To build an application for editing Windows Media Format files,ues directx with DES.

|