编解码器 API 属性

[与此页面关联的功能(DirectShow)是一项旧功能。 它已被 MediaPlayerIMFMediaEngine取代,并在媒体基金会 音频/视频捕获。 这些功能已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获,而不是 DirectShow。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]

通用音频属性

这些属性适用于音频编码器和音频解码器。

财产 描述
AVAudioChannelConfig 获取音频位流中音频通道的扬声器配置。
AVAudioChannelCount 获取音频位流中的通道数。
AVAudioSampleRate 获取音频位流的采样率(以每秒采样为单位)。
AVDDSurroundMode 指定是否在 Dolby Surround 中编码音频。

 

常见解码器属性

这些属性适用于音频解码器和视频解码器。

财产 描述
AVDecCommonInputFormat 指定解码器的当前输入格式。
AVDecCommonMeanBitRate 获取解码器的当前平均比特率。
AVDecCommonOutputFormat 指定解码器的输出格式。
AVDecMmcssClass 指定解码线程的多媒体类计划程序服务 (MMCSS) 类。

 

通用编码器属性

这些属性适用于音频编码器和视频编码器。

财产 描述
AVEncCodecType 指定编码方案。
AVEncCommonBufferInLevel 指定编码缓冲区的初始级别。
AVEncCommonBufferOutLevel 指定编码过程末尾编码缓冲区的最终级别。
AVEncCommonBufferSize 指定编码期间使用的缓冲区的大小。
AVEncCommonFormatConstraint 指定编码器的目标格式。
AVEncCommonLowLatency 指定是否应对输出流进行结构化,以便编码的流具有低解码延迟。
AVEncCommonMaxBitRate 指定最大比特率。
AVEncCommonMeanBitRate 指定平均比特率。
AVEncCommonMeanBitRateInterval 指定应用平均比特率的时间间隔。
AVEncCommonMinBitRate 指定最小比特率。
AVEncCommonMultipassMode 指定编码器支持的编码传递数。
AVEncCommonPassEnd 停止当前编码传递,或查询当前编码传递是否为最后一个。
AVEncCommonPassStart 启动第一个编码传递。
AVEncCommonQuality 指定编码的质量级别。
AVEncCommonQualityVsSpeed 指定编码质量和速度之间的权衡。
AVEncCommonRateControlMode 指定速率控制模式。
AVEncCommonRealTime 指定应用程序是否需要实时编码性能。
AVEncCommonStreamEndHandling 指定编码器是否放弃流末尾的部分图片组(GOP)。
AVEncMuxOutputStreamType 指定多路复用器生成的输出流的类型。
AVEncStatCommonCompletedPasses 指定已完成的编码传递数。

 

视频解码器属性

财产 描述
AVDecVideoAcceleration_H264 启用或禁用 H.264 视频解码的硬件加速。
AVDecVideoAcceleration_MPEG2 启用或禁用 MPEG-2 视频解码的硬件加速。
AVDecVideoAcceleration_VC1 启用或禁用 VC-1 视频解码的硬件加速。
AVDecVideoDropPicWithMissingRef 指定解码器是否删除缺少引用帧的帧内。
AVDecVideoFastDecodeMode 获取或设置视频解码速度。
AVDecVideoImageSize 获取解码的图像的大小(以像素为单位)。
AVDecVideoInputScanType 指定解码的视频流如何交错。
AVDecVideoPixelAspectRatio 指定解码的视频流的像素纵横比。
AVDecVideoSoftwareDeinterlaceMode 指定解码器的软件反交错模式。
AVDecVideoSWPowerLevel 指定省电级别。
AVDecVideoThumbnailGenerationMode 启用或禁用缩略图生成模式。

 

音频解码器属性

财产 描述
AVDecAACDownmixMode 指定 AAC 解码器是使用标准 MPEG-2/MPEG-4 立体声向下混合公式,还是使用非标准向下混合。
AVDecAudioDualMono 指定 2 声道音频是编码为立体声还是双声道。
AVDecAudioDualMonoReproMode 指定解码器如何重现双声道音频。
AVDecHEAACDynamicRangeControl 启用或禁用 AAC 解码器中的动态范围控件。

 

视频编码器属性

财产 描述
AVEncInputVideoSystem 指定源内容的视频系统。
AVEncStatVideoCodedFrames 返回编码的视频帧数。
AVEncStatVideoOutputFrameRate 返回视频内容的平均帧速率。
AVEncStatVideoTotalFrames 返回编码器接收的视频帧数。
AVEncVideoCBRMotionTradeoff 指定动作和静止图像之间的权衡。
AVEncVideoCodedVideoAccessUnitSize 指定视频访问单位的大小。
AVEncVideoDefaultUpperFieldDominant 指定首先显示哪个字段。
AVEncVideoDisplayDimension 指定解码视频流的大小。
AVEncVideoEncodeDimension 指定编码视频的宽度和高度(如果裁剪视频)。
AVEncVideoEncodeOffsetOrigin 指定剪辑矩形的左上角(如果裁剪视频)。
AVEncVideoFieldSwap 反转源视频中交错字段的顺序。
AVEncVideoForceSourceScanType 指定输入帧是渐进的还是交错的。
AVEncVideoHeaderDropFrame 指定 GOP 标头中的下拉框架标志的值。
AVEncVideoHeaderFrames 指定 GOP 标头中的起始帧编号。
AVEncVideoHeaderHours 指定 GOP 标头中的起始小时数。
AVEncVideoHeaderMinutes 指定 GOP 标头中的起始分钟数。
AVEncVideoHeaderSeconds 指定 GOP 标头中的起始第二个数字。
AVEncVideoInputChromaResolution 指定输入视频的色度分辨率。
AVEncVideoInputChromaSubsampling 指定输入视频的色度。
AVEncVideoInputColorLighting 指定用于查看输入视频的预期照明条件。
AVEncVideoInputColorNominalRange 指定输入视频的名义范围。
AVEncVideoInputColorPrimaries 指定输入视频的颜色初选。
AVEncVideoInputColorTransferFunction 为输入视频指定从 RGB 到 R'G'B' 的转换函数
AVEncVideoInputColorTransferMatrix 为输入视频指定从 Y'Cb'Cr' 颜色空间到 R'G'B' 颜色空间的转换矩阵。
AVEncVideoInverseTelecineEnable 指定编码器是否执行反向电视传送。
AVEncVideoInverseTelecineThreshold 设置编码器认为视频字段冗余的阈值。
AVEncVideoMaxKeyframeDistance 指定关键帧之间的最大帧数。
AVEncVideoNoOfFieldsToEncode 指定要编码的字段数。
AVEncVideoNoOfFieldsToSkip 指定要在编码期间跳过的字段数。
AVEncVideoOutputChromaResolution 指定编码视频的色度分辨率。
AVEncVideoOutputChromaSubsampling 指定编码视频的色度。
AVEncVideoOutputColorLighting 指定用于查看编码视频的预期照明条件。
AVEncVideoOutputColorNominalRange 指定已编码视频的名义范围。
AVEncVideoOutputColorPrimaries 指定编码视频的颜色初选。
AVEncVideoOutputColorTransferFunction 为编码视频指定从 RGB 到 R'G'B' 的转换函数。
AVEncVideoOutputColorTransferMatrix 为编码的视频指定从 Y'Cb'Cr' 颜色空间到 R'G'B' 颜色空间的转换矩阵。
AVEncVideoOutputFrameRate 指定编码器的输出流的帧速率(以每秒帧为单位)。
AVEncVideoOutputFrameRateConversion 指定当输出帧速率与输入帧速率不匹配时,编码器是否转换帧速率。
AVEncVideoOutputScanType 指定编码器如何交错输出视频。
AVEncVideoPixelAspectRatio 指定像素纵横比。
AVEncVideoSourceFilmContent 指定输入视频的原始源是电影还是视频。
AVEncVideoSourceIsBW 指定视频是单色(黑白)还是包含颜色。

 

音频编码器属性

财产 描述
AVEncAudioDualMono 指定 2 声道音频是编码为立体声还是双声道。
AVEncAudioInputContent 指定音频内容是否包含音乐或语音。
AVEncAudioIntervalToEncode 指定要编码的音频样本数。
AVEncAudioIntervalToSkip 指定要跳过的编码器的音频示例数。
AVEncAudioMapDestChannel N 指定哪些音频通道映射到编码音频流中的通道 N
AVEncAudioMeanBitRate 指定编码音频流的平均比特率。
AVEncStatAudioAverageBPS 返回编码音频的每秒平均位数。
AVEncStatAudioAveragePCMValue 返回音频内容的平均音量级别。
AVEncStatAudioPeakPCMValue 返回音频内容中存在的最高音量级别。

 

MPEG 视频编码器属性

财产 描述
AVEncMPVAddSeqEndCode 指定编码器是否在流末尾添加序列结束代码。
AVEncMPVDefaultBPictureCount 指定 I 和 P 帧之间的连续 B 帧的默认数目。
AVEncMPVFrameFieldMode 指定编码器是生成编码字段还是编码帧。
AVEncMPVGenerateHeaderPicDispExt 指定编码器是否生成图片显示扩展标头。
AVEncMPVGenerateHeaderPicExt 指定编码器是否生成图片扩展标头。
AVEncMPVGenerateHeaderSeqDispExt 指定编码器是否生成序列显示扩展标头。
AVEncMPVGenerateHeaderSeqExt 指定编码器是否生成序列扩展标头。
AVEncMPVGenerateHeaderSeqScaleExt 指定编码器是否生成序列可缩放扩展标头。
AVEncMPVGOPOpen 指定编码器是生成打开的 GOP 还是关闭的 GOP。
AVEncMPVGOPSInSeq 指定序列标头之间的 GOP 数。
AVEncMPVGOPSize 指定从一个 GOP 标头到下一个 GOP 标头的最大图片数。
AVEncMPVIntraDCPrecision 指定 DC 系数的精度。
AVEncMPVIntraVLCTable 指定要用于 entropy 编码的可变长度编码 (VLC) 表。
AVEncMPVLevel 指定 MPEG-2 级别。
AVEncMPVProfile 指定 MPEG-2 配置文件。
AVEncMPVQScaleType 指定量化器刻度是线性还是非线性。
AVEncMPVQuantMatrixChromaIntra 指定宏块内的色度量化矩阵。
AVEncMPVQuantMatrixChromaNonIntra 指定非宏块的色度量化矩阵。
AVEncMPVQuantMatrixIntra 指定宏块内的 luma 量化矩阵。
AVEncMPVQuantMatrixNonIntra 指定非宏块的 luma 量化矩阵。
AVEncMPVScanPattern 指定宏块扫描模式。
AVEncMPVSceneDetection 指定编码器在检测到新场景时的行为方式。
AVEncMPVUseConcealmentMotionVectors 指定编码器是否使用隐藏运动向量。

 

MPEG 音频编码器属性

财产 描述
AVEncMPACodingMode 指定 MPEG-1 音频编码模式。
AVEncMPACopyright 指定版权位的默认设置。
AVEncMPAEmphasisType 指定解码时应使用的去强调筛选器的类型。
AVEncMPAEnableRedundancyProtection 指定是否向帧标头添加循环冗余检查(CRC)。
AVEncMPALayer 指定 MPEG 音频层。
AVEncMPAOriginalBitstream 指定原始位的默认设置。
AVEncMPAPrivateUserBit 设置专用用户位的值。

 

Dolby Digital Audio 解码器属性

财产 描述
AVDecDDDynamicRangeScaleHigh 指定解码器执行动态范围控制时的高级剪切。
AVDecDDDynamicRangeScaleLow 指定解码器执行动态范围控制时的低级别提升。
AVDecDDOperationalMode 指定压缩控制模式。

 

Dolby Digital Audio Encoder 属性

财产 描述
AVEncDDAtoDConverterType 指定模拟到数字转换的类型。
AVEncDDCentreDownMixLevel 指定中心下混合级别。
AVEncDDChannelBWLowPassFilter 指定是否将低通筛选器应用于主输入通道。
AVEncDDCopyright 指定版权标志。
AVEncDDDCHighPassFilter 指定是否应用 DC 阻止高传递筛选器。
AVEncDDDialogNormalization 指定对话规范化级别。
AVEncDDDigitalDeemphasis 指定数字取消强调。
AVEncDDDynamicRangeCompressionControl 指定动态范围控制配置文件。
AVEncDDHeadphoneMode 指定耳机模式。
AVEncDDLFELowPassFilter 指定低通筛选器是否应用于低频率效果 (LFE) 通道。
AVEncDDLoRoCenterMixLvl_x10 指定应用于 Lo/Ro 向下混合的中心通道的级别移位。
AVEncDDLoRoSurroundMixLvl_x10 指定应用于 Lo/Ro 向下混合的环绕声道的级别移位。
AVEncDDLtRtCenterMixLvl_x10 指定应用于 Lt/Rt 向下混合的中心通道的级别移位。
AVEncDDLtRtSurroundMixLvl_x10 指定应用于 Lt/Rt 向下混合的环绕声道的级别移位。
AVEncDDOriginalBitstream 指定原始位流标志。
AVEncDDPreferredStereoDownMixMode 指定首选立体声向下混合模式。
AVEncDDProductionInfoExists 指定音频生产信息标志。
AVEncDDProductionMixLevel 指定混合级别。
AVEncDDProductionRoomType 指定房间类型。
AVEncDDRFPreEmphasisFilter 指定 RF 过度模式保护设置。
AVEncDDService 指定音频服务。
AVEncDDSurround3dBAttenuation 指定在编码之前,环绕声道是否衰减。
AVEncDDSurround90DegreeePhaseShift 指定是否将 90 度相移应用于环绕声道。
AVEncDDSurroundDownMixLevel 指定“环绕向下组合”级别。
AVEncDDSurroundExMode 指定音频流是否在“环绕 EX”中编码。

 

数字信号处理 (DSP) 属性

财产 描述
AVDSPLoudnessEqualization 启用或禁用音量均衡
AVDSPSpeakerFill 启用或禁用扬声器填充

 

编解码器 API 参考