Compartir a través de


Codificador de vídeo H.265 /HEVC

El codificador de vídeo de Media Foundation H.265 es una transformación de Media Foundation que admite la codificación de contenido en el formato H.265/HEVC. El codificador admite los siguientes perfiles:

  • Perfil Main

El codificador de vídeo H.265 expone las siguientes interfaces:

Tipos de entrada

El tipo de medio de entrada debe tener uno de los subtipos siguientes:

  • MFVideoFormat_IYUV
  • MFVideoFormat_NV12
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12

Para obtener más información sobre estos subtipos, vea GUID de subtipo de vídeo.

El tipo de salida debe establecerse antes del tipo de entrada. Hasta que se establece el tipo de salida, el método IMFTransform::SetInputType del codificador devuelve MF_E_TRANSFORM_TYPE_NOT_SET.

Tipos de salida

El codificador admite un único subtipo de salida:

  • MFVideoFormat_H265

Establezca los atributos siguientes en el tipo de medio de salida.

Atributo Descripción
MF_MT_MAJOR_TYPE Tipo principal. Debe ser MFMediaType_Video.
MF_MT_SUBTYPE Subtipo de vídeo. Debe ser MFVideoFormat_HEVC.
MF_MT_AVG_BITRATE Velocidad media de bits codificada, en bits por segundo. Debe ser mayor que cero.
MF_MT_FRAME_RATE Velocidad de fotogramas.
MF_MT_FRAME_SIZE Tamaño del marco.
MF_MT_INTERLACE_MODE Modo de intercalación.
MF_MT_VIDEO_PROFILE Perfil de codificación H.265.
Los valores admitidos son:
  • eAVEncH265VProfile_Main_420_8
MF_MT_MPEG2_LEVEL Especifica el nivel del vídeo codificado. Para obtener más información sobre las restricciones de perfil y nivel, consulte el Anexo A del UIT-T H.265.
MF_MT_PIXEL_ASPECT_RATIO Opcional. Especifica la relación de aspecto de píxeles. El valor predeterminado es 1:1.

 

Una vez establecido el tipo de salida, el codificador de vídeo actualiza el tipo agregando el atributo MF_MT_MPEG_SEQUENCE_HEADER . Este atributo contiene el encabezado de secuencia.

Métodos IMFTransform admitidos

Los métodos siguientes de la interfaz IMFTransform son compatibles con el codificador H.265/HEVC:

Todos los demás métodos IMFTransform devolverán el error E_NOTIMPL.

Métodos ICodecAPI admitidos

Los métodos siguientes de la interfaz ICodecAPI son compatibles con el codificador H.265/HEVC:

Todos los demás métodos ICodecAPI devolverán el error E_NOTIMPL.

Propiedades de códec

El codificador H.265 implementa la interfaz ICodecAPI para establecer parámetros de codificación. Admite las siguientes propiedades.

Para conocer los requisitos de códec para la certificación del codificador HCK, consulte la sección Certified Hardware Encoder (Codificador de hardware certificado ) a continuación.

Propiedad Descripción
CODECAPI_AVEncCommonRateControlMode Establece el modo de control de velocidad. Los modos admitidos son:
  • eAVEncCommonRateControlMode_CBR
  • eAVEncCommonRateControlMode_Quality
Si se especifican otros modos, se usará el control de velocidad de eAVEncCommonRateControlMode_CBR .
Se trata de un valor de VT_UI4.
CODECAPI_AVEncCommonMeanBitRate Establece la velocidad media de bits para la secuencia de bits codificada, en bits por segundo.
El intervalo válido es [1 ... 2³²–1].
Se trata de un valor de VT_UI4.
CODECAPI_AVEncCommonBufferSize Establece el tamaño del búfer, en bytes, para la codificación de velocidad de bits constante (CBR).
El intervalo válido es [1 ... 2³²–1].
Se trata de un valor de VT_UI4.
CODECAPI_AVEncCommonMaxBitRate Establece la velocidad de bits máxima para los modos de control de velocidad que permiten una velocidad de bits máxima.
El intervalo válido es [1 ... 2³²–1].
Se trata de un valor de VT_UI4.
CODECAPI_AVEncMPVGOPSize Establece el número de imágenes de un encabezado GOP al siguiente, incluido el delimitador inicial, pero no el siguiente.
El intervalo válido es [0 ... 2³²–1]. Si es cero, el codificador selecciona el tamaño de GOP. El valor predeterminado es cero.
Se trata de un valor de VT_UI4.
CODECAPI_AVLowLatencyMode Habilita o deshabilita el modo de baja latencia.
Se trata de un valor de VT_BOOL.
CODECAPI_AVEncCommonQualityVsSpeed Establece el equilibrio de calidad/velocidad. Este valor afecta a la forma en que el codificador realiza varias operaciones de codificación, como la compensación de movimiento. En niveles de complejidad más altos, el codificador se ejecuta más lentamente, pero genera una mejor calidad a la misma velocidad de bits.
El intervalo válido es de 0 a 100. Internamente, este valor se asigna a un conjunto más pequeño de niveles de calidad/velocidad admitidos por el codificador.
Se trata de un valor de VT_UI4.
CODECAPI_AVEncVideoForceKeyFrame Obliga al codificador a codificar el siguiente fotograma como fotograma clave.
Se trata de un valor de VT_UI4.
CODECAPI_AVEncVideoEncodeQP Cuando se establece esta propiedad, hará que el codificador use el QP especificado para codificar el siguiente fotograma y todos los fotogramas subsiguientes hasta que se especifique un nuevo QP.
Intervalo válido: 0–51, ambos incluidos
CODECAPI_AVEncVideoMinQP Esta propiedad establecerá un límite en el QP mínimo que el codificador puede usar durante el control de velocidad CBR.
Se trata de un valor de VT_UI4.
CODECAPI_AVEncVideoMaxQP Esta propiedad establecerá un límite en el QP máximo que el codificador puede usar durante el control de velocidad CBR.
Se trata de un valor de VT_UI4.
CODECAPI_VideoEncoderDisplayContentType Establece si el contenido es vídeo de pantalla completa, en lugar de contenido de pantalla que podría tener una ventana más pequeña de vídeo o no tener ningún vídeo.
Se trata de un valor de VT_UI4.
CODECAPI_AVEncNumWorkerThreads Establece el número de subprocesos usados para realizar la operación de compresión. El codificador dividirá el marco en iconos de forma que el número de subprocesos sea igual al número de iconos.
  • Número de procesadores lógicos. El número de subprocesos debe ser menor o igual que el número de procesadores lógicos.
  • Tamaño del marco. El tamaño de un icono debe ser mayor o igual que 265 x 64 píxeles.
  • Paridad. El número de subprocesos debe ser un valor par. Si el valor especificado es impar, se usará el siguiente valor par inferior.
Se trata de un valor de VT_UI4.

 

Codificador de hardware certificado

Si existe un codificador de hardware certificado, se usará generalmente en lugar del codificador del sistema de bandeja de entrada para escenarios relacionados con Media Foundation. Los codificadores certificados son necesarios para admitir un determinado conjunto de propiedades de ICodecAPI y, opcionalmente, pueden admitir otro conjunto de propiedades. El proceso de certificación debe garantizar que las propiedades necesarias se admiten correctamente y, si se admite una propiedad opcional, también se admite correctamente.

A continuación se muestra el conjunto de propiedades obligatorias y opcionales de ICodecAPI para que los codificadores pasen la certificación del codificador HCK.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 10 [solo aplicaciones de escritorio]
Servidor mínimo compatible
No se admite ninguno
Archivo DLL
Mfh265enc.dll

Consulte también

Objetos de códec