IEncoderAPI 接口 (strmif.h)
[与此页面关联的功能 Microsoft TV Technologies 是一项旧功能。 Microsoft 强烈建议新代码不使用此功能。]
[IEncoderAPI 不再可供使用。 请改用 ICodecAPI。]
IEncoderAPI 接口为应用程序和驱动程序定义了一种标准方式,用于与实现接口的第三方硬件或软件编码器进行通信。 有关此接口的详细信息,请参阅 编码器 API。
继承
IEncoderAPI 接口继承自 IUnknown 接口。 IEncoderAPI 还具有以下类型的成员:
- 方法
方法
IEncoderAPI 接口具有这些方法。
IEncoderAPI::GetDefaultValue GetDefaultValue 方法检索参数的默认值(如果存在)。 |
IEncoderAPI::GetParameterRange GetParameterRange 方法检索参数支持的有效值范围,如果参数支持一个阶梯范围,而不是特定值的列表。 |
IEncoderAPI::GetParameterValues GetParameterValues 方法检索给定参数支持的值列表。 |
IEncoderAPI::GetValue GetValue 方法检索指定参数的当前值。 |
IEncoderAPI::IsAvailable IEncoderAPI 不再可供使用。 (IEncoderAPI.IsAvailable) |
IEncoderAPI::IsSupported IsSupported 方法查询给定参数是否受支持。 |
IEncoderAPI::SetValue SetValue 方法设置参数的当前值。 |
注解
在各种接口方法中,uuids.h 中定义的以下 GUID 用于指示正在设置或检索哪个参数。
参数 | 说明 |
---|---|
ENCAPIPARAM_BITRATE | 指定比特率(以比特/秒为单位)。 在固定比特率 (CBR) 模式下,该值提供恒定比特率。 在任一可变比特率模式下,它提供平均比特率。 值为 32 位无符号长。 |
ENCAPIPARAM_PEAK_BITRATE | 指定峰值比特率。 仅当 ENCAPIPARAM_BITRATE_MODE 设置为 VariableBitRatePeak 时,此参数才相关。 |
ENCAPIPARAM_BITRATE_MODE | 指定比特率模式,作为 VIDEOENCODER_BITRATE_MODE 枚举值 (32 位有符号长) 。 |
下表描述了 在 VIDEOENCODER_BITRATE_MODE 中定义的两种可变比特率模式下,编码器在极高或低比特率条件下的预期行为。
条件 | 模型 | 行为 |
---|---|---|
场景下降到黑色或零运动 | VariableBitRateAverage | 在短时间内 (几秒钟) 比特率将低于为 ENCAPIPARAM_BITRATE 参数指定的速率。 但是,在四分钟的时间段内,编码器将通过向流添加“虚拟”位(如有必要)来维持平均速率。 |
场景下降到黑色或零运动。 | VariableBitRatePeak | 比特率将低于 ENCAPIPARAM_BITRATE 参数的值中指定的预期速率。 该速率将一直处于该级别,直到更复杂的场景开始。 |
场景非常复杂。 | VariableBitRateAverage | 几秒钟后,速率将上升。 如果场景保持复杂,速率将下降,并且图片将变为块状,以保持ENCAPIPARAM_BITRATE参数的值中指定的平均值。 |
场景非常复杂。 | VariableBitRatePeak | 速率将上升并持续上升,可能高于 ENCAPIPARAM_BITRATE 参数的值中指定的预期速率,但永远不会高于 ENCAPIPARAM_PEAK_BITRATE 参数中指定的峰值。 |
OCUR 设备
此接口支持 OpenCable 单向电缆接收器 (OCUR) 设备。 请参阅 OCUR 设备。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |