Dolby 数字音频编码器

Dolby 音频编码器是 媒体基础转换 (MFT) ,可将单声道或立体声音频编码为 Dolby Digital,也称为 Dolby AC-3。 编码器不支持多通道输入,例如 5.1 通道配置。

重要

对于 Windows 8 之前的 Windows 版本,根据 Dolby Digital 许可计划的条款,Microsoft 对 Dolby Digital 技术的实现受到限制,可供 Microsoft 应用程序使用。

 

有关 Dolby 数字音频的详细信息,请参阅高级电视系统委员会 (ATSC) 文档 数字音频压缩标准 (AC-3、E-AC-3) 修订版 B

类标识符

dolby 音频编码器的 CLSID) (类标识符 CLSID_CMSDolbyDigitalEncMFT,在头文件 wmcodecdsp.h 中定义。

输出类型

必须先设置输出类型,然后再设置输入类型。 下表列出了输出媒体类型的必需属性和可选属性。

Attribute 说明 备注
MF_MT_MAJOR_TYPE 主要类型。 必需。 必须 MFMediaType_Audio
MF_MT_SUBTYPE 音频子类型。 必需。 必须 MFAudioFormat_Dolby_AC3
MF_MT_AUDIO_SAMPLES_PER_SECOND 每秒样本数。 必需。 支持以下值:
  • 32000
  • 44100
  • 48000
MF_MT_AUDIO_NUM_CHANNELS 通道数。 必需。 必须为 1 (单声道) 或 2 (立体声) 。
MF_MT_AUDIO_CHANNEL_MASK 指定将音频声道分配给扬声器位置。 可选。 如果设置该值,则必须0x3立体声 (左声道和右前声道) 或单声道 (前中心声道) 的0x4。
MF_MT_AUDIO_AVG_BYTES_PER_SECOND 编码的 AC-3 流的比特率(以字节/秒为单位)。 可选。 有关有效值,请参阅备注。 如果未设置此属性,编码器将使用默认比特率,如备注中所述。

 

如果未设置可选属性,则编码器会在设置类型后将它们添加到媒体类型。

输入类型

下表列出了输入媒体类型的必需属性和可选属性。

Attribute 说明 备注
MF_MT_MAJOR_TYPE 主要类型。 必需。 必须 MFMediaType_Audio
MF_MT_SUBTYPE 音频子类型。 必需。 必须是 MFAudioFormat_PCMMFAudioFormat_Float
MF_MT_AUDIO_BITS_PER_SAMPLE 每个音频样本的位数。 必需。 如果子类型 MFAudioFormat_PCM,则该值必须为 16;如果子类型MFAudioFormat_Float,则 该值必须为 32。
MF_MT_AUDIO_SAMPLES_PER_SECOND 每秒样本数。 必需。 必须与输出类型匹配。
MF_MT_AUDIO_NUM_CHANNELS 通道数。 必需。 必须与输出类型匹配。
MF_MT_AUDIO_BLOCK_ALIGNMENT 阻止对齐(以字节为单位)。 必需。 计算值,如下所示:
  • MFAudioFormat_PCM:通道数× 2。
  • MFAudioFormat_Float:通道数× 4。
MF_MT_AUDIO_AVG_BYTES_PER_SECOND 编码的 AC3 流的比特率(以字节/秒为单位)。 必需。 必须等于块对齐×样本/秒。
MF_MT_AUDIO_CHANNEL_MASK 指定将音频声道分配给扬声器位置。 可选。 如果设置,该值必须与输出类型匹配。
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE 每个音频样本中的有效音频数据位数。 可选。 如果设置,该值必须与 MF_MT_AUDIO_BITS_PER_SAMPLE相同。

 

编码器不支持采样率转换或立体声/单声道转换。

备注

每个 Dolby AC-3 音频帧每个通道包含 1536 个音频样本。 但是,编码器的每个输入缓冲区可能包含任意数量的 PCM 样本。 每个输入缓冲区的大小必须是块对齐方式的倍数。 编码器缓存输入样本,直到每个通道有足够的 1536 个音频样本;此时,编码器输出一个 AC-3 帧。

每个输出缓冲区包含一个原始 AC-3 帧。 持续时间相当于当前采样率 1536 个 PCM 样本的持续时间 (32 毫秒,) 在 48 kHz 采样率下为 32 毫秒,在 44.1 kHz 时为 34.83 毫秒,在 32 kHz) 时为 48 毫秒。 每个输出缓冲区的大小取决于比特率和采样率。

若要指定编码比特率,请在输出类型中设置 MF_MT_AUDIO_AVG_BYTES_PER_SECOND 属性。 下表显示了编码比特率与MF_MT_AUDIO_AVG_BYTES_PER_SECOND之间的关系。

比特率 (kbps) MF_MT_AUDIO_AVG_BYTES_PER_SECOND 备注
64 8000 仅单声道。
80 10000 仅单声道。
96 12000 仅单声道。
112 14000 仅单声道。
128 16000 单声道或立体声。
160 20000 单声道或立体声。
192 24000 单声道或立体声。 这是单声道的默认设置。
224 28000 单声道或立体声。
256 32000 单声道或立体声。 这是立体声的默认设置。
320 40000 仅限立体声。
384 48000 仅限立体声。
448 56000 仅限立体声。

 

对于立体声,默认编码比特率设置为 256 kbps,单声道设置为 192 kbps。 默认设置反映在编码器的 IMFTransform::GetOutputAvailableType 方法返回的媒体类型中。

示例媒体类型

下面是以 256 kbps 的默认比特率对 16 位整数 PCM、48-kHz 立体声音频进行编码所需的媒体类型示例。

输出媒体类型:

Attribute
MF_MT_MAJOR_TYPE MFMediaType_Audio
MF_MT_SUBTYPE MFAudioFormat_Dolby_AC3
MF_MT_AUDIO_SAMPLES_PER_SECOND 48000
MF_MT_AUDIO_NUM_CHANNELS 2

 

输入媒体类型:

Attribute
MF_MT_MAJOR_TYPE MFMediaType_Audio
MF_MT_SUBTYPE MFAudioFormat_PCM
MF_MT_AUDIO_BITS_PER_SAMPLE 16
MF_MT_AUDIO_SAMPLES_PER_SECOND 48000
MF_MT_AUDIO_NUM_CHANNELS 2
MF_MT_AUDIO_BLOCK_ALIGNMENT 4
MF_MT_AUDIO_AVG_BYTES_PER_SECOND 192000

 

要求

要求
最低受支持的客户端
Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器
无受支持的版本
DLL
Msac3enc.dll

请参阅

编解码器对象