Windows Media Encode 9簡介及SDK

weixin_34054866發表於2006-09-28
 
Windows Media Encode 9Windows Media 9 Series組成部分之一,它的主要作用是進行編碼。Windows Media 9 Series包括了 Windows Media Audio 9 SeriesWindows Media Video 9 SeriesWindows Media Encoder 9 SeriesWindows Media Services 9 SeriesWindows Media Player 9 SeriesWindows Media Rights Manager 9 SeriesWindows Media 9 Series SDK。基於這個平臺,開發者可以利用播放器、解碼器以及伺服器端配合開發出數字媒體應用程式,通過與Windows 家族的最新成員:Windows XP Media Center Edition配合,相信能給使用者帶來更流暢的數碼娛樂享受。

以上是微軟的一些產品,微軟提供給我們,讓我們可以進行開發的是Windows Media 9 SDKSDK是軟體開發工具包Software Develop KitsWindows Media 9 SDK主要包括Windows Media Player SDKWindows Media Format  SDKWindows Media Rights Manager SDKWindows Media Encoder SDKWindows Media Services SDK

我們可以使用Windows Media Encoder SDK開發自己的編碼應用。微軟的Windows Media EncoderWindows 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 SDKCOM元件的方式提供服務,可以參考wmencsdk.chm的內容。

下面以一個簡單的例子來展示一下C#使用Windows Media Encoder SDK進行開發的情形。

 

None.gif            try
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                
// 建立WMEncoder object.
InBlock.gif
                WMEncoder Encoder = new WMEncoder();
InBlock.gif                
//獲得組源集合
InBlock.gif
                IWMEncSourceGroupCollection SrcGrpColl = Encoder.SourceGroupCollection;
InBlock.gif
InBlock.gif                
//向集合中增加一個組源
InBlock.gif
                IWMEncSourceGroup SrcGrp = SrcGrpColl.Add("SG_1");
InBlock.gif
InBlock.gif                
//向組源中增加一個音訊源和視訊源
InBlock.gif
                IWMEncSource SrcAud = SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_AUDIO);
InBlock.gif                SrcAud.SetInput(
"C:\\愛就愛了.rm""""");
InBlock.gif
InBlock.gif                IWMEncVideoSource2 SrcVid 
= (IWMEncVideoSource2)SrcGrp.AddSource(WMENC_SOURCE_TYPE.WMENC_VIDEO);
InBlock.gif                SrcVid.SetInput(
"C:\\愛就愛了.rm""""");
InBlock.gif
InBlock.gif                
//制定一個輸出檔案
InBlock.gif
                IWMEncFile File = Encoder.File;
InBlock.gif                File.LocalFileName 
= "C:\\OutputFile.wmv";
InBlock.gif
InBlock.gif                
//裝載配置檔案
InBlock.gif
                WMEncProfile2 Pro = new WMEncProfile2();
InBlock.gif                Pro.LoadFromFile(
"c:\\schi.prx");
InBlock.gif                SrcGrp.set_Profile(Pro);
InBlock.gif              
InBlock.gif                
//增加檔案描述資訊
InBlock.gif
                IWMEncDisplayInfo Descr = Encoder.DisplayInfo;
InBlock.gif                Descr.Author 
= "Author name";
InBlock.gif                Descr.Copyright 
= "Copyright information";
InBlock.gif                Descr.Description 
= "Text description of encoded content";
InBlock.gif                Descr.Rating 
= "Rating information";
InBlock.gif                Descr.Title 
= "Title of encoded content";
InBlock.gif
InBlock.gif                IWMEncAttributes Attr 
= Encoder.Attributes;
InBlock.gif                Attr.Add(
"URL""IP address");
InBlock.gif               
InBlock.gif                
//開始編碼處理
InBlock.gif
                Encoder.PrepareToEncode(true);
InBlock.gif                Encoder.Start();
InBlock.gif                MessageBox.Show(
"It's OK");
InBlock.gif
ExpandedBlockEnd.gif            }

None.gif            
catch (Exception e1)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                MessageBox.Show(e1.Message
+e1.StackTrace);
ExpandedBlockEnd.gif            }

None.gif


Windows Media Encoder SDK的下載可以去微軟網站下載,本Blog提供英文版SDK幫助檔案下載。wmencsdk.chm

相關文章