Descodificador de vídeo H.264
El descodificador de vídeo de Media Foundation H.264 es una transformación de Media Foundation que admite la descodificación de perfiles de línea base, principal y alto, hasta el nivel 5.1.
El descodificador de vídeo H.264 expone las siguientes interfaces.
- ICodecAPI (compatible con Windows 8)
- IMFGetService
- IMFQualityAdvise
- IMFQualityAdvise2
- IMFRateControl
- IMFRateSupport
- IMFRealTimeClient
- IMFTransform
Para crear una instancia del descodificador, realice una de las acciones siguientes:
- Llame a la función MFTEnum o MFTEnumEx .
- Llame a CoCreateInstance. El CLSID del descodificador se CLSID_CMSH264DecoderMFT, declarado en wmcodecdsp.h.
Tipos de entrada
El tipo de entrada debe contener al menos los dos atributos siguientes:
Atributo | Descripción |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Video |
MF_MT_SUBTYPE | MFVideoFormat_H264 o MFVideoFormat_H264_ES |
Si el tipo de entrada contiene solo estos dos atributos, el descodificador ofrecerá un tipo de salida predeterminado, que actúa como marcador de posición. Cuando el descodificador recibe suficientes muestras de entrada para generar un marco de salida, señala un cambio de formato devolviendo MF_E_TRANSFORM_STREAM_CHANGE de IMFTransform::P rocessOutput. Consulte la documentación de ProcessOutput para obtener más información sobre cómo controlar los cambios de formato.
Para evitar un cambio de formato inicial, proporcione tanta información en el tipo de entrada como sea posible, entre las que se incluyen:
Atributo | Descripción |
---|---|
MF_MT_FRAME_RATE | Velocidad de fotogramas. |
MF_MT_FRAME_SIZE | Dimensiones de marco. |
MF_MT_INTERLACE_MODE | Modo de interlace.
Nota: En el vídeo H.264, la estructura de interlace puede cambiar dinámicamente, por lo que el valor recomendado de este atributo es MFVideoInterlace_MixedInterlaceOrProgressive. La intercalación de la información en la secuencia elemental de vídeo tiene prioridad sobre el tipo de medio. Para obtener más información, vea Video Interlacing. |
MF_MT_PIXEL_ASPECT_RATIO | Relación de aspecto de píxeles. |
El tipo de entrada debe establecerse antes del tipo de salida. Hasta que se establece el tipo de entrada, el método IMFTransform::SetOutputType del codificador devuelve MF_E_TRANSFORM_TYPE_NOT_SET.
Tipos de salida
El descodificador admite los siguientes subtipos de salida:
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Para obtener más información sobre estos subtipos, vea Guid de subtipo de vídeo.
Transformar atributos
El descodificador H.264 implementa el método IMFTransform::GetAttributes . Las aplicaciones pueden usar este método para obtener o establecer los siguientes atributos.
Atributo | Descripción |
---|---|
CODECAPI_AVDecVideoAcceleration_H264 | Habilita o deshabilita la aceleración de hardware. |
CODECAPI_AVDecVideoThumbnailGenerationMode | Habilita o deshabilita el modo de generación de miniaturas. |
MF_SA_D3D_AWARE | Indica que el descodificador admite la aceleración de vídeo directX (DXVA). Trate como de solo lectura. |
En Windows 8, el descodificador H.264 también admite los siguientes atributos.
Atributo | Descripción |
---|---|
CODECAPI_AVLowLatencyMode | Habilita o deshabilita el modo de descodificación de baja latencia. |
CODECAPI_AVDecNumWorkerThreads | Establece el número de subprocesos de trabajo usados por el descodificador. |
CODECAPI_AVDecVideoMaxCodedWidth | Establece el ancho máximo de imagen que el descodificador aceptará como un tipo de entrada. |
CODECAPI_AVDecVideoMaxCodedHeight | Establece el alto máximo de imagen que el descodificador aceptará como un tipo de entrada. |
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT | Especifica el número máximo de muestras de salida. |
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER | Especifica si un descodificador expone tipos de salida IYUV/I420 (adecuados para transcodificación) antes de otros formatos. |
En Windows 8, el descodificador H.264 admite la interfaz ICodecAPI . Esta interfaz proporciona una API alternativa para establecer las siguientes propiedades de códec.
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoAcceleration_H264
- CODECAPI_AVDecVideoMaxCodedHeight
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoThumbnailGenerationMode
Restricciones de formato
El descodificador admite los siguientes formatos:
Configuración | Formato |
---|---|
Perfiles o niveles | Perfiles de línea base, principal y alto, hasta el nivel 5.1. (Véase la especificación UIT-T H.264 para obtener más información). |
Formatos cromáticos | 4:2:0 cromática o monocromática |
Resolución mínima | 48 × 48 píxeles |
Resolución máxima | 4096 × 2304 píxeles La resolución máxima garantizada para la aceleración DXVA es de 1920 × 1088 píxeles; en resoluciones superiores, la descodificación se realiza con DXVA, si es compatible con el hardware subyacente; de lo contrario, la descodificación se realiza con software. Nota: En Windows 7, la resolución máxima admitida es de 1920 × 1088 píxeles para la descodificación de DXVA y software. |
DXVA | El descodificador admite la versión 2 de DXVA, pero no la versión 1 de DXVA. La descodificación de DXVA solo se admite para secuencias de bits de línea base compatibles con Main, Main y High Profile. (Las secuencias de bits de línea base compatibles con main se definen como profile_idc=66 y constrained_set1_flag=1). |
Los datos de entrada deben cumplir con el anexo B de ISO/IEC 14496-10. Los datos deben incluir los códigos de inicio. El descodificador omite bytes hasta que encuentra un conjunto de parámetros de secuencia (SPS) válido y un conjunto de parámetros de imagen (PPS) en la secuencia de bytes.
El descodificador no admite la tecnología de grano de película.
Nota:
Una versión anterior de la documentación incorrectamente indicó que el descodificador es compatible con Windows Server 2008 R2.
Si se instala Platform Update Supplement para Windows Vista, el descodificador de vídeo H.264 está disponible en Windows Vista, pero solo es accesible en Windows Vista mediante el Lector de origen.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
No se admite ninguno |
Archivo DLL |
|
Consulte también