Introducción a la codificación en Media Foundation

Este tema es una introducción a las API de codificación de archivos proporcionadas en Microsoft Media Foundation.

Terminología

La codificación es un término general que abarca varios procesos distintos:

  1. Codificación de una secuencia de audio o vídeo en formatos comprimidos. Por ejemplo, codificar una secuencia de vídeo en vídeo H.264.
  2. Multiplexación ("multiplexación") una o varias secuencias en una sola secuencia de bytes. Normalmente, las secuencias entrantes se codifican primero. Este paso podría implicar la paqueteización de las secuencias codificadas.
  3. Escribir una secuencia de bytes multiplexada en un archivo, como un archivo MP4 o formato de sistemas avanzados (ASF). Como alternativa, la secuencia multiplexada se puede enviar a través de la red.

En el diagrama siguiente se muestran estos tres procesos:

diagrama que muestra los procesos de codificación y multiplexación

Entre las variaciones de este proceso se incluyen la transcodificación y la reasignación:

  • La transcodificación significa descodificar un archivo existente, volver a codificar las secuencias y volver a multiplexar las secuencias codificadas. La transcodificación puede realizarse para convertir un archivo de un tipo de codificación a otro; por ejemplo, para convertir vídeo H.264 en Windows Media Video (WMV). También se puede hacer para cambiar la velocidad de bits codificada; el tamaño del fotograma de vídeo; velocidad de fotogramas; u otros parámetros de formato.
  • Remultiplexing o remuxing significa desmultiplexar un archivo y volver a multiplexar las secuencias, sin paso de descodificación o codificación. Esto puede hacerse para cambiar cómo se multiplexan los paquetes de audio y vídeo, para quitar una secuencia o para combinar secuencias de dos archivos de origen diferentes.
  • La transratización es un caso especial de transcodificación, donde la velocidad de bits cambia sin cambiar el tipo de compresión. Por ejemplo, puede convertir un archivo de velocidad de bits alta en una velocidad de bits inferior. Un escenario típico en el que se podría usar la transratización es cuando se sincroniza el contenido multimedia desde un equipo a un dispositivo portátil. Si el dispositivo portátil no admite una velocidad de bits alta, es posible que el archivo se transrrate antes de copiarlo en el dispositivo portátil.

En el diagrama de bloques siguiente se muestra el proceso de transcodificación.

diagrama que muestra el proceso de transcodificación

En el diagrama de bloques siguiente se muestra el proceso de reasignación.

diagrama que muestra el proceso de reasignación

Esta documentación a veces usa el término codificación para incluir la transcodificación y la reasignación. Cuando sea importante distinguir entre ellos, la documentación observará la diferencia.

Consulte también: Media Foundation: Conceptos esenciales.

Arquitectura de codificación de Media Foundation

En la capa más baja de la arquitectura de Media Foundation, se usan los siguientes tipos de componentes para la codificación:

  • Para la transcodificación, los orígenes multimedia se usan para desmultiplexar el archivo de origen.
  • Para el proceso de codificación, las transformaciones de Media Foundation se usan para descodificar y codificar secuencias.
  • Para el proceso de multiplexación, los receptores multimedia se usan para multiplexar las secuencias y escribir la secuencia multiplexada en un archivo o red.

En el diagrama siguiente se muestra el flujo de datos entre estos componentes en un escenario de transcodificación:

diagrama que muestra los componentes usados en la transcodificación

La mayoría de las aplicaciones no usarán estos componentes directamente. En su lugar, una aplicación usará API de nivel superior que administran estos componentes de nivel inferior. Media Foundation proporciona dos API de nivel superior para codificar:

Sesión multimedia

La sesión multimedia proporciona una canalización de un extremo a otro que mueve los datos del origen multimedia, a través de los códecs y, por último, al receptor de medios. La aplicación controla la sesión multimedia y recibe eventos de estado de la sesión multimedia.

Lector de origen más escritor receptor

El Lector de origen ajusta el origen multimedia y, opcionalmente, los descodificadores. Proporciona muestras codificadas o descodificadas de la aplicación. El escritor receptor ajusta el receptor multimedia y, opcionalmente, los codificadores. La aplicación pasa ejemplos al objeto Sink Writer.

En el diagrama siguiente se muestra la sesión multimedia:

diagrama que muestra cómo realiza la sesión multimedia la transcodificación

La API de transcodificación (el cuadro azul sombreado) es un conjunto de API introducidas en Windows 7, lo que facilita la configuración de la sesión multimedia para la codificación.

En el diagrama siguiente se muestra el lector de origen y el escritor receptor:

diagrama que muestra la transcodificación con el lector de origen y el sistema de escritura receptor

Codificación y creación de archivos

Programación de Media Foundation: Conceptos esenciales