¿Qué es un archivo M2V?
Un archivo M2V contiene un flujo elemental de video MPEG-2 sin audio multiplexado ni un contenedor de propósito general. Por lo tanto, la temporización o el audio complementario pueden proceder de otro archivo o de un sistema de autoría.
Cómo funcionan los archivos M2V
M2V contiene la secuencia de imágenes codificadas producida por un codificador de video MPEG-2: un encabezado de secuencia, encabezados opcionales de grupos de imágenes y encabezados de imagen con sus datos de imagen. No incluye funciones del nivel de contenedor, como pistas con nombre, marcas de tiempo de presentación y sonido intercalado. El software de autoría combina el flujo con audio codificado por separado y multiplexa ambos en un flujo de programa MPEG, un flujo de transporte o una estructura orientada a DVD, donde la capa de sistemas añade marcas de tiempo en los encabezados de sus paquetes. Como la multiplexación copia las imágenes codificadas, el video puede volver a multiplexarse sin otro encoding con pérdida.
Datos clave
- La extensión
.m2ves una convención de nombres para un flujo de bits de video H.262/MPEG-2 sin contenedor y no demuestra nada por sí sola. Las herramientas identifican el contenido a partir de sus códigos de inicio: el detector de video MPEG sin contenedor de FFmpeg cuenta los códigos de inicio de secuencia, imagen y segmento, y rechaza los datos que contienen encabezados de bloques de flujo de programa o paquetes de audio. - Un archivo M2V no tiene marcas de tiempo de presentación, pero su sintaxis de video sigue describiendo la temporización de la reproducción. El encabezado de secuencia declara el tamaño de la imagen, información sobre la relación de aspecto y un
frame_rate_codeque selecciona tasas como 24000/1001, 25 o 30000/1001 fotogramas por segundo. A cada encabezado de imagen MPEG-2 le sigue una extensión de codificación de imagen cuyos indicadorestop_field_firstyrepeat_first_fieldpueden prolongar la visualización de esa imagen, por ejemplo, hasta tres períodos de campo en lugar de dos para el pulldown 3:2 de material cinematográfico, por lo que las duraciones de las imágenes no siempre se deducen únicamente de la tasa de fotogramas. Las marcas de tiempo de presentación pertenecen a la capa de sistemas y solo aparecen después de la multiplexación, en los encabezados de paquetes PES. Un encabezado de grupo de imágenes, cuando está presente, contiene un código de tiempo que, según H.262, no interviene en la decodificación. - Cambiar el nombre de un archivo M2V a
.mpgno lo convierte en un flujo de programa. Un flujo de programa se construye a partir de bloques, cada uno con un encabezado de bloque seguido de paquetes PES, y nada de eso existe en un flujo de bits de video sin contenedor. El archivo sigue conteniendo solo video, y el software que decide según el contenido seguirá identificando un flujo elemental. - Añadir sonido implica multiplexar, no convertir. Un multiplexor como
mplexde MJPEG Tools combina video MPEG con flujos de audio MPEG, AC-3, DTS o LPCM en un flujo de programa sin volver a realizar el encoding. Se aplican dos condiciones: la sincronización del audio y el video no se almacena en ninguno de los archivos elementales, por lo que cualquier desfase de inicio debe proporcionarse al multiplexor, y una salida conforme a DVD necesita el modo específico para DVD del multiplexor, que el propio manual demplexdescribe como muy alejado de una autoría completa de DVD.
Cuándo son importantes los archivos M2V
Los archivos M2V proceden de flujos de trabajo de autoría de DVD y Blu-ray, donde el video se codifica como un flujo elemental MPEG-2 separado del audio y ambos se multiplexan después. Por ejemplo, Compressor de Apple describe su salida de flujo elemental MPEG-2 como un canal de video sin audio, para usarlo en una aplicación de autoría de terceros. Por sí solo, un archivo M2V no tiene sonido ni marcas de tiempo o índice a nivel de contenedor, así que trátalo como un archivo intermedio para multiplexación, no como un archivo de entrega.
Fuentes
- Biblioteca del Congreso: descripción del formato de encoding de video MPEG-2 (H.262) (flujos elementales, encabezados de secuencia, flujos de programa)
- Manual de mplex(1), MJPEG Tools: multiplexor de flujos de programa/sistema MPEG-1/2
- Documentación de formatos de FFmpeg: multiplexores sin contenedor (mpeg2video, extensión m2v) y multiplexores de flujos de programa MPEG-1/MPEG-2
- Código fuente de FFmpeg 8.0: libavformat/mpegvideodec.c (detector de video MPEG sin contenedor)
- Guía del usuario de Apple Compressor: MPEG-2 (salida de flujos de programa, elementales y de transporte)
- ITU-T H.262 (02/2000) | ISO/IEC 13818-2: Video MPEG-2 (estructura de la secuencia de video, encabezado de secuencia, encabezado de grupo de imágenes)
- ITU-T H.222.0 (08/2018) | ISO/IEC 13818-1: Sistemas MPEG-2 (paquetes PES, marcas de tiempo de presentación, bloques de flujo de programa)