今天读到一篇文章,内容是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.