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.

Para criar uma instância do decodificador, siga um destes procedimentos:

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.

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
Msmpeg2vdec.dll

Confira também

Objetos Codec

Suporte do MPEG-4 na Media Foundation

Formatos de mídia compatíveis com o Media Foundation

Tipos de mídia de vídeo