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 | 每秒样本数。 | 必需。 支持以下值:
|
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_PCM 或 MFAudioFormat_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 | 阻止对齐(以字节为单位)。 | 必需。 计算值,如下所示:
|
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 |
|
请参阅