Compartilhar via


Codificador de vídeo H.265 /HEVC

O codificador de vídeo do Media Foundation H.265 é uma Media Foundation Transform que dá suporte à codificação de conteúdo no formato H.265/HEVC. O codificador dá suporte aos seguintes perfis:

  • Perfil Principal

O codificador de vídeo H.265 expõe as seguintes interfaces:

Tipos de entrada

O tipo de mídia de entrada deve ter um dos seguintes subtipos:

  • MFVideoFormat_IYUV
  • MFVideoFormat_NV12
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12

Para obter mais informações sobre esses subtipos, consulte GUIDs de subtipo de vídeo.

O tipo de saída deve ser definido antes do tipo de entrada. Até que o tipo de saída seja definido, o método IMFTransform::SetInputType do codificador retornará MF_E_TRANSFORM_TYPE_NOT_SET.

Tipos de saída

O codificador dá suporte a um único subtipo de saída:

  • MFVideoFormat_H265

Defina os atributos a seguir no tipo de mídia de saída.

Atributo Descrição
MF_MT_MAJOR_TYPE Tipo principal. Deve ser MFMediaType_Video.
MF_MT_SUBTYPE Subtipo de vídeo. Deve ser MFVideoFormat_HEVC.
MF_MT_AVG_BITRATE Taxa média de bits codificados, em bits por segundo. Deve ser maior que zero.
MF_MT_FRAME_RATE Taxa de quadros.
MF_MT_FRAME_SIZE Tamanho do quadro.
MF_MT_INTERLACE_MODE Modo de entrelaçamento.
MF_MT_VIDEO_PROFILE Perfil de codificação H.265.
Os valores com suporte são:
  • eAVEncH265VProfile_Main_420_8
MF_MT_MPEG2_LEVEL Especifica o nível do vídeo codificado. Para obter mais informações sobre restrições de perfil e nível, consulte Anexo A de ITU-T H.265.
MF_MT_PIXEL_ASPECT_RATIO Opcional. Especifica a taxa de proporção de pixel. O valor padrão é 1:1.

 

Depois que o tipo de saída é definido, o codificador de vídeo atualiza o tipo adicionando o atributo MF_MT_MPEG_SEQUENCE_HEADER . Esse atributo contém o cabeçalho de sequência.

Métodos IMFTransform com suporte

Os seguintes métodos da interface IMFTransform têm suporte para o codificador H.265/HEVC:

Todos os outros métodos IMFTransform retornarão o erro E_NOTIMPL.

Métodos ICodecAPI com suporte

Os seguintes métodos da interface ICodecAPI têm suporte para o codificador H.265/HEVC:

Todos os outros métodos ICodecAPI retornarão o erro E_NOTIMPL.

Propriedades do Codec

O codificador H.265 implementa a interface ICodecAPI para definir parâmetros de codificação. Ele dá suporte às propriedades a seguir.

Para obter os requisitos de codec para certificação de codificador HCK, consulte a seção Certified Hardware Encoder abaixo.

Propriedade Descrição
CODECAPI_AVEncCommonRateControlMode Define o modo de controle de taxa. Os modos suportados são:
  • eAVEncCommonRateControlMode_CBR
  • eAVEncCommonRateControlMode_Quality
Se outros modos forem especificados, o controle de taxa de eAVEncCommonRateControlMode_CBR será usado.
Esse é um valor VT_UI4.
CODECAPI_AVEncCommonMeanBitRate Define a taxa média de bits para o fluxo de bits codificado, em bits por segundo.
O intervalo válido é [1 ... 2\²–1].
Esse é um valor VT_UI4.
CODECAPI_AVEncCommonBufferSize Define o tamanho do buffer, em bytes, para codificação cbr (taxa de bits constante).
O intervalo válido é [1 ... 23²–1].
Esse é um valor VT_UI4.
CODECAPI_AVEncCommonMaxBitRate Define a taxa de bits máxima para modos de controle de taxa que permitem uma taxa de bits de pico.
O intervalo válido é [1 ... 23²–1].
Esse é um valor VT_UI4.
CODECAPI_AVEncMPVGOPSize Define o número de imagens de um cabeçalho GOP para o próximo, incluindo a âncora à esquerda, mas não a seguinte.
O intervalo válido é [0 ... 23²–1]. Se zero, o codificador selecionará o tamanho do GOP. O valor padrão é zero.
Esse é um valor VT_UI4.
CODECAPI_AVLowLatencyMode Habilita ou desabilita o modo de baixa latência.
Esse é um valor VT_BOOL.
CODECAPI_AVEncCommonQualityVsSpeed Define a compensação de qualidade/velocidade. Esse valor afeta como o codificador executa várias operações de codificação, como compensação de movimento. Em níveis de complexidade mais altos, o codificador é executado mais lentamente, mas produz melhor qualidade na mesma taxa de bits.
O intervalo válido é 0 a 100. Internamente, esse valor é mapeado para um conjunto menor de níveis de qualidade/velocidade com suporte do codificador.
Esse é um valor VT_UI4.
CODECAPI_AVEncVideoForceKeyFrame Força o codificador a codificar o próximo quadro como um quadro-chave.
Esse é um valor VT_UI4.
CODECAPI_AVEncVideoEncodeQP Quando essa propriedade for definida, ela fará com que o codificador use o QP especificado para codificar o próximo quadro e todos os quadros subsequentes até que um novo QP seja especificado.
Intervalo válido: 0 a 51, inclusive
CODECAPI_AVEncVideoMinQP Essa propriedade definirá um limite no QP mínimo que o codificador pode usar durante o controle de taxa CBR.
Esse é um valor VT_UI4.
CODECAPI_AVEncVideoMaxQP Essa propriedade definirá um limite no QP máximo que o codificador pode usar durante o controle de taxa CBR.
Esse é um valor VT_UI4.
CODECAPI_VideoEncoderDisplayContentType Define se o conteúdo é vídeo em tela inteira, em vez de conteúdo de tela que pode ter uma janela de vídeo menor ou não ter nenhum vídeo.
Esse é um valor VT_UI4.
CODECAPI_AVEncNumWorkerThreads Define o número de threads usados para executar a operação de compactação. O codificador dividirá o quadro em blocos de modo que o número de threads seja igual ao número de blocos.
  • O número de processadores lógicos. O número de threads deve ser menor ou igual ao número de processadores lógicos.
  • O tamanho do quadro. O tamanho de um bloco deve ser maior ou igual a 265 x 64 pixels.
  • Paridade. O número de threads deve ser um valor par. Se o valor especificado for ímpar, o próximo valor par inferior será usado.
Esse é um valor VT_UI4.

 

Codificador de hardware certificado

Se um codificador de hardware certificado estiver presente, ele geralmente será usado em vez do codificador do sistema de caixa de entrada para cenários relacionados ao Media Foundation. Codificadores certificados são necessários para dar suporte a um determinado conjunto de propriedades ICodecAPI e, opcionalmente, podem dar suporte a outro conjunto de propriedades. O processo de certificação deve garantir que as propriedades necessárias têm suporte adequado e, se houver suporte para uma propriedade opcional, também terá suporte adequado.

Veja a seguir o conjunto de propriedades ICodecAPI necessárias e opcionais para codificadores passarem pela certificação do codificador HCK.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 10 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Nenhum compatível
DLL
Mfh265enc.dll

Confira também

Objetos Codec