编解码器 API 属性

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

常见音频属性

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

属性 说明
AVAudioChannelConfig 获取音频位流中音频通道的扬声器配置。
AVAudioChannelCount 获取音频位流中的通道数。
AVAudioSampleRate 获取音频位流的采样率(以每秒样本数为单位)。
AVDDSurroundMode 指定音频是否以杜比环绕编码。

 

常见解码器属性

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

属性 说明
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 指定是将双声道音频编码为立体声还是双单声道。
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 指定是将双声道音频编码为立体声还是双声道。
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 指定 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 数字音频解码器属性

属性 说明
AVDecDDDynamicRangeScaleHigh 指定解码器执行动态范围控制时的高级剪切。
AVDecDDDynamicRangeScaleLow 指定解码器执行动态范围控制时低级提升。
AVDecDDOperationalMode 指定压缩控制模式。

 

Dolby Digital Audio Encoder 属性

属性 说明
AVEncDDAtoDConverterType 指定模拟到数字 (A/D) 转换的类型。
AVEncDDCentreDownMixLevel 指定中心下混合级别。
AVEncDDChannelBWLowPassFilter 指定是否将低通筛选器应用于main输入通道。
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 参考