Decodificador de Vídeo H.264
O decodificador de vídeo do Media Foundation H.264 é uma Media Foundation Transform que dá suporte à decodificação de perfis de Linha de Base, Principal e Alto, até o nível 5.1.
O decodificador de vídeo H.264 expõe as interfaces a seguir.
- ICodecAPI (com suporte no Windows 8)
- IMFGetService
- IMFQualityAdvise
- IMFQualityAdvise2
- IMFRateControl
- IMFRateSupport
- IMFRealTimeClient
- IMFTransform
Para criar uma instância do decodificador, siga um destes procedimentos:
- Chame a função MFTEnum ou MFTEnumEx .
- Chame CoCreateInstance. O CLSID para o decodificador é CLSID_CMSH264DecoderMFT, declarado em wmcodecdsp.h.
Tipos de entrada
O tipo de entrada deve conter pelo menos os dois atributos a seguir:
Atributo | Descrição |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Video |
MF_MT_SUBTYPE | MFVideoFormat_H264 ou MFVideoFormat_H264_ES |
Se o tipo de entrada contiver apenas esses dois atributos, o decodificador oferecerá um tipo de saída padrão, que atua como um espaço reservado. Quando o decodificador recebe amostras de entrada suficientes para produzir um quadro de saída, ele sinaliza uma alteração de formato retornando MF_E_TRANSFORM_STREAM_CHANGE de IMFTransform::P rocessOutput. Consulte a documentação processOutput para obter detalhes sobre como lidar com alterações de formato.
Para evitar uma alteração de formato inicial, forneça o máximo possível de informações no tipo de entrada, incluindo:
Atributo | Descrição |
---|---|
MF_MT_FRAME_RATE | Taxa de quadros. |
MF_MT_FRAME_SIZE | Dimensões de quadro. |
MF_MT_INTERLACE_MODE | Modo de entrelaçamento.
Nota: No vídeo H.264, a estrutura de entrelaçamento pode mudar dinamicamente, portanto, o valor recomendado desse atributo é MFVideoInterlace_MixedInterlaceOrProgressive. As informações de entrelaçamento no fluxo elementar de vídeo têm precedência sobre o tipo de mídia. Para obter mais informações, consulte Video Interlacing. |
MF_MT_PIXEL_ASPECT_RATIO | Taxa de proporção de pixel. |
O tipo de entrada deve ser definido antes do tipo de saída. Até que o tipo de entrada seja definido, o método IMFTransform::SetOutputType do codificador retornará MF_E_TRANSFORM_TYPE_NOT_SET.
Tipos de saída
O decodificador dá suporte aos seguintes subtipos de saída:
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Para obter mais informações sobre esses subtipos, consulte GUIDs de subtipo de vídeo.
Transformar atributos
O decodificador H.264 implementa o método IMFTransform::GetAttributes . Os aplicativos podem usar esse método para obter ou definir os atributos a seguir.
Atributo | Descrição |
---|---|
CODECAPI_AVDecVideoAcceleration_H264 | Habilita ou desabilita a aceleração de hardware. |
CODECAPI_AVDecVideoThumbnailGenerationMode | Habilita ou desabilita o modo de geração de miniaturas. |
MF_SA_D3D_AWARE | Indica que o decodificador dá suporte à Aceleração de Vídeo (DXVA) do DirectX. Trate como somente leitura. |
No Windows 8, o decodificador H.264 também dá suporte aos atributos a seguir.
Atributo | Descrição |
---|---|
CODECAPI_AVLowLatencyMode | Habilita ou desabilita o modo de decodificação de baixa latência. |
CODECAPI_AVDecNumWorkerThreads | Define o número de threads de trabalho usados pelo decodificador. |
CODECAPI_AVDecVideoMaxCodedWidth | Define a largura máxima da imagem que o decodificador aceitará como um tipo de entrada. |
CODECAPI_AVDecVideoMaxCodedHeight | Define a altura máxima da imagem que o decodificador aceitará como um tipo de entrada. |
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT | Especifica o número máximo de amostras de saída. |
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER | Especifica se um decodificador expõe tipos de saída IYUV/I420 (adequados para transcodificação) antes de outros formatos. |
No Windows 8, o decodificador H.264 dá suporte à interface ICodecAPI . Essa interface fornece uma API alternativa para definir as propriedades de codec a seguir.
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoAcceleration_H264
- CODECAPI_AVDecVideoMaxCodedHeight
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoThumbnailGenerationMode
Restrições de formato
O decodificador dá suporte aos seguintes formatos:
Configuração | Formatar |
---|---|
Perfis/Níveis | Perfis de linha de base, principal e alto, até o nível 5.1. (Confira a especificação ITU-T H.264 para obter detalhes.) |
Formatos chroma | 4:2:0 chroma ou monocromático |
Resolução mínima | 48 × 48 pixels |
Resolução máxima | 4096 × 2304 pixels A resolução máxima garantida para aceleração de DXVA é de 1920 × 1088 pixels; em resoluções mais altas, a decodificação é feita com DXVA, se for compatível com o hardware subjacente, caso contrário, a decodificação é feita com software. Nota: No Windows 7, a resolução máxima com suporte é de 1920 × 1088 pixels para decodificação de software e DXVA. |
DXVA | O decodificador dá suporte à DXVA versão 2, mas não à DXVA versão 1. A decodificação DXVA tem suporte apenas para fluxos de bits de linha de base, principal e de alto perfil compatíveis com main. (Os bits de linha de base compatíveis com main são definidos como profile_idc=66 e constrained_set1_flag=1.) |
Os dados de entrada devem estar em conformidade com o Anexo B do ISO/IEC 14496-10. Os dados devem incluir os códigos iniciais. O decodificador ignora bytes até encontrar um SPS (conjunto de parâmetros de sequência) válido e um PPS (conjunto de parâmetros de imagem) no fluxo de bytes.
O decodificador não dá suporte à Tecnologia de Grãos de Filme.
Observação
Uma versão anterior da documentação afirmou incorretamente que o decodificador tem suporte no Windows Server 2008 R2.
Se o Suplemento de Atualização de Plataforma para Windows Vista estiver instalado, o decodificador de vídeo H.264 estará disponível no Windows Vista, mas só poderá ser acessado no Windows Vista usando o Leitor de Origem.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Nenhum compatível |
DLL |
|
Confira também