配置一个编码进程
要想完全地配置一个编码程序,下面的接口必须被正确地设置。注意可选择的接口。
1. The IWMEncAttributes interface (optional).(可选择的,随意的)
2. The IWMEncBroadcast interface (optional).
3. The IWMEncDisplayInfo interface (optional).
4. The IWMEncFile interface (optional).
5. The IWMEncProfile interface (必选)
6. The IWMEncSource interface. (必选)
7. The IWMEncVideoSource interface (optional)
或者IWMEncBroadcast和IWMEncFile 任选一个为编码内容指定目的地。或者广播出去,或者存放在本地磁盘。或者两者都进行。
下面就每个接口做简要叙述:
The IWMEncAttributes interface (optional)
这个属性接口管理一个自定义接口的集合。它包含了一组已经定义好的属性并允许用户自己定义。举例来说,你可以说明一个流的编成日期,通过把字符串“DATE”赋值给属性名,并且这个字符串包含了这个属性值的数据格式。而且,你可以利用这一接口对一目录进行分类。其方法有:Add 增加一个用户新定义的属性。get_Count 得到已经定义好的属性。
Item 得到特定的一项。Remove 移除特定的一项属性。RemoveAll 移除全部属性。
The IWMEncBroadcast interface (optional).
这个接口管理广播编码内容的协议和端口号。其方法继承于Idispatch 接口。它的方法有
get_PortNumber 返回用于广播编码内容的端口号。其中包含了传输的协议,正确的设置应为HTTP。(Encoder7不支持msdb协议)指定一个端口号用put_PortNumber 方法。
The IWMEncDisplayInfo interface (optional).
这个接口负责管理编码内容的一些信息。可以设置和读取诸如作者、版权等字符串。作为代表性的,它包含了作者、版权日期、标题、等级以及关于作者对于编码内容所加的一些额外描述信息。它继承于Idispatch 接口。它的方法有:get_Author 得到作者的名字。get_Copyright 得到版权,get_Description 得到关于编码内容的一般性描述信息。get_Description 返回关于内容的等级信息。(质量的好坏) get_Title 得到标题。put_Author,
put_Copyright,put_Description,put_Rating,put_Title分别为设置相应信息。其中,这些信息的变量类型为BSTR 或CComBSTR,与CString类型的转化方法为:
BSTR Author(L”let5fly”);
CString str;
Str=Author.Copy();
The IWMEncFile interface (optional).
这个接口用来管理存储编码内容的文件。它继承于 Idispatch 接口。该接口的方法有:get_LocalFileName 得到用来存储编码内容文件的全路径。put_LocalFileName 设置用来存储编码内容文件的全路径。
The IWMEncProfile interface
这个接口用来得到关于一个具体框架的名字、描述信息和媒体类型。Windows编码器通过一个和被广播内容与客户端用户带宽相匹配的方案(框架)对媒体流进行编码压缩。在一个编码进程中可以有多个方案(框架),但在任一时刻,只有一个是工作的。框架决定了媒体流的输出格式、客户端的带宽、是否被编码成多位率流等。只有一个框架(方案)和一个媒体源组相关联。并且一次只能有一个源被编码。系统定义好的框架不能被改变或移除,但用户可以自己定义。但你必须用框架管理或Windows Media Format SDK进行编辑。你可以通过IWMEncProfileManager接口建立框架管理对话框进行编辑。该接口继承于Idispatch接口。
其方法有:get_Description 返回一个框架的描述信息。get_MaxPacketSize 得到在编码过程中数据包的最大尺寸,单位是字节。get_MediaCount 得到一个框架所支持的音频、视频和脚本的数目。get_MultipleBitrate 得到一个关于框架是否支持多位媒体流的布尔值。get_Name 得到框架的名。put_MaxPacketSize 设置编码过程中最大的数据包大小,单位字节。
The IWMEncSource interface.
这个接口装载一个捕获源,整理和反复一个特定的源。(用于广播的时候)并且得到转换插件程序和数据观察对象。该接口继承于Idispatch接口。有如下方法:
GetInput 得到一个捕获源,通常是一个文件或者插件程序。get_MarkIn 得到一个媒体流的起始点。get_MarkOut 得到一个媒体文件的结束点。get_PostviewCollection 返回一个发送数据窗口的接口(A postview is an IWMEncDataView object that renders content in a window after the content has been both compressed and decompressed)。
get_PreviewCollection 得到一个预览窗口的接口。get_Repeat 得到一个源的循环、反复属性。GetSourcePlugin 得到与源相关联的插件程序,这不是一个自适应的方法。
get_TransformCollection 得到所有的已注册的转换插件的集合。GetTransformPlugin (通过索引,为媒体源)得到一个特定的插件程序,这不是一个自适应的方法。
GetTransformPluginCount 得到可以被利用的所有插件程序的数目。get_Type 得到输入流的类型。 put_MarkIn 指定一个媒体流的开始点。put_MarkOut 指定结束点。put_Repeat
指定流的循环属性。 SetInput 设置输入源。
The IWMEncVideoSource interface [optional].
这个接口用于修饰图象,去除一些不好的(无用的)的像素。通常是在视频流和关键图象的边缘。编码器调整图象的大小以适应框架(属性)的要求。该接口继承于IWMEncSource
方法有:get_CroppingBottomMargin 得到与下边缘无关的像素数目。
get_CroppingLeftMargin 得到与左边缘无关的像素数目。get_CroppingMode 得到一个关于处理(修剪)图象的布尔型的值。get_CroppingRightMargin 得到从右边缘移除的像素数。get_CroppingTopMargin 得到从上端边缘移除的像素。 get_Optimization 在编码的时候得到视频最优化的类型。get_PixelFormat 得到视频图象的像素格式。
put_CroppingBottomMargin put_CroppingLeftMargin put_CroppingMode
put_CroppingRightMargin put_CroppingTopMargin put_Optimization
put_PixelFormat 分别为设定具体值。