为什么解码器不接受我设置的输入格式?

解码器可能拒绝格式的原因有很多。 最常见的是扩展格式数据缺失或不正确。 扩展格式数据是特定于编解码器的信息,追加到描述媒体类型的结构中。

使用编码器对象枚举输出类型时,DMO_MEDIA_TYPE 结构的 pbFormat 成员将指向一个 WAVEFORMATEX 结构。 此结构具有附加的扩展格式数据,并且该数据的大小存储在 WAVEFORMATEX.cbSize 成员中。 无论用于存储压缩数据的容器如何,都必须保留 WAVEFORMATEX 结构,并在解码器的输入类型中使用它。 如果没有扩展格式数据,解码器将无法解压缩内容。

对于视频格式,必须手动检索扩展格式数据并将其追加到 VIDEOINFOHEADER 结构。 有关详细信息,请参阅 使用视频编解码器专用数据

常见问题解答