Windows Media Encode 9 是 Windows Media 9 Series 组成部分之一,它的主要作用是进行编码。 Windows Media 9 Series 包括了 Windows Media Audio 9 Series 、 Windows Media Video 9 Series 、 Windows Media Encoder 9 Series 、 Windows Media Services 9 Series 、 Windows Media Player 9 Series 、 Windows Media Rights Manager 9 Series 、 Windows Media 9 Series SDK 。 基于这个平台,开发者可以利用播放器、解码器以及服务器端配合开发出数字媒体应用程序,通过与 Windows 家 族的最新成员: Windows XP Media Center Edition 配合,相信能给用 户带来更流畅的数码娱乐享受。
以上是微软的一些产品,微软提供给我们,让我们可以 进行开发的是 Windows Media 9 SDK 。 SDK 是 软件开发工具包 Software Develop Kits 。 Windows Media 9 SDK 主要包括 Windows Media Player SDK 、 Windows Media Format SDK 、 Windows Media Rights Manager SDK 、 Windows Media Encoder SDK 、 Windows Media Services SDK 。
我们可以使用 Windows Media Encoder SDK 开发自己的编 码应用。微软的 Windows Media Encoder ( Windows Media 编码器)就是使用 Windows Media Encoder SDK 进 行开发的。编码应该如何理解呢?或者说编码器应该具有什么功能呢?将设备或者文件中的流媒体采集到并按照微软的媒体格式进行编码,并输出,这就是编码器的 作用。用更加执白的话说就是采集、格式转换、压缩。 Windows Media Encoder 的 源可以是设备也可以是文件,设备可以是屏幕或者摄像头或者其他的视频、音频设备,文件可以是视频文件、音频文件。 Windows Media Encoder 的输出可以将内容编码到文件,也可以对内容进行实况广播。如果要进行广播,既可以通过推传递(在 客户端没有请求数据的情况下传递)将流传输到运行 Windows Media Services 的 服务器上,也可以允许 Windows Media 服务器和播放机通过拉传递(仅在客户端发出请 求时将数据传递给客户)直接从编码器接收流。
Windows Media Encoder SDK 不会和 Windows Media Encoder 一起安装,需要单独下载, Windows Media Encoder SDK 中安装了一些示例和帮助文件。 Windows Media Encoder SDK 以 COM 组件的方式提供服务,可以参考 wmencsdk.chm 的 内容。
下面以一个简单的例子来展示一下 C# 使用 Windows Media Encoder SDK 进行开发的情形。
{
// 创建WMEncoder object.
WMEncoder Encoder = new WMEncoder();
// 获得组源集合
IWMEncSourceGroupCollection SrcGrpColl = Encoder.SourceGroupCollection;
// 向集合中增加一个组源
IWMEncSourceGroup SrcGrp = SrcGrpColl.Add( " SG_1 " );
// 向组源中增加一个音频源和视频源
IWMEncSource SrcAud = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
SrcAud.SetInput( " C://爱就爱了.rm " , "" , "" );
IWMEncVideoSource2 SrcVid = (IWMEncVideoSource2)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
SrcVid.SetInput( " C://爱就爱了.rm " , "" , "" );
// 制定一个输出文件
IWMEncFile File = Encoder.File;
File.LocalFileName = " C://OutputFile.wmv " ;
// 装载配置文件
WMEncProfile2 Pro = new WMEncProfile2();
Pro.LoadFromFile( " c://schi.prx " );
SrcGrp.set_Profile(Pro);
// 增加文件描述信息
IWMEncDisplayInfo Descr = Encoder.DisplayInfo;
Descr.Author = " Author name " ;
Descr.Copyright = " Copyright information " ;
Descr.Description = " Text description of encoded content " ;
Descr.Rating = " Rating information " ;
Descr.Title = " Title of encoded content " ;
IWMEncAttributes Attr = Encoder.Attributes;
Attr.Add( " URL " , " IP address " );
// 开始编码处理
Encoder.PrepareToEncode( true );
Encoder.Start();
MessageBox.Show( " It's OK " );
}
catch (Exception e1)
{
MessageBox.Show(e1.Message + e1.StackTrace);
Windows Media Encoder SDK的下载可以去微软网站下载,本Blog提供英文版SDK帮助文件下载。wmencsdk.chm