# MXF

Material eXchange Format (MXF) es un formato contenedor para datos profesionales de audio y video, definido dentro del conjunto de estándares de SMPTE.

## Introducción

Material Exchange Format (MXF) es un formato abierto de fichero desarrollado para el intercambio de esencia (material de audio y video) y sus metadatos asociados, entre distintas estaciones de trabajo con diversas aplicaciones y equipos, o incluso distintas tecnologías. Deriva del modelo de datos AAF (Advanced Authoring Format) y es un formato contenedor que facilita la interoperabilidad de contenidos entre distintas aplicaciones utilizadas en la cadena de producción de televisión, ofreciendo eficiencia operacional. Surge a causa de la poca funcionalidad e interoperabilidad entre servidores de archivos, plataformas de edición de trabajo y otros dispositivos de creación de contenidos en el intercambio audiovisual en entornos de producción profesional. MXF ha sido desarrollado por las principales empresas y fabricantes de las industria de broadcast y las organizaciones más importantes como Pro-MPEG, EBU y la asociación AAF. Se ha completado con las entradas de la comunidad usuaria para asegurar que el formato cumple con sus necesidades reales.

## Objetivos

Las tecnologías cambiantes en la producción de televisión o en la transmisión de media provoca la necesidad de mejorar los flujos de trabajo y hacer las prácticas de trabajo más eficientes de lo que actualmente es posible con la mezcla de formatos propietarios de ficheros. La transferencia de ficheros debe ser independiente del contenido, tiene que transportar metadatos y ser capaz de reproducir en tiempo real. Así pues, conseguir la interoperabilidad es el objetivo principal de Pro-MPEG i MXF, por lo que se ha implementado en tres áreas:
* Puede trabajar con distintos protocolos de red y a través de distintos sistemas operativos (Windows, Mac, Unix, …)
* Es independiente del formato de compresión usado ya que puede transportar distintos formatos como MPEG, DV o video sin comprimir.
* Tiene que soportar tanto la transferencia de archivos como de streaming.
La aportación decisiva de MXF es que permite guardar e intercambiar no sólo el contenido o esencia, sino también los metadatos asociados. Actualmente los metadatos se encuentran en cualquier sistema, pero a menudo esta información se pierde en el traspaso entre sistemas debido a incompatibilidades. Los metadatos pueden contener información sobre el timecode, la estructura de archivos, subtítulos, notas de edición, … así que pueden llegar a superar el contenido de audio y video, resultando imprescindible un buen uso. MXF mejora la gestión de la información audiovisual y permite mejorar los flujos de creación de contenidos eliminando las reentradas de metadatos repetidos.

## Estructura

MXF es un formato de fichero versátil que guarda datos con cualquier formato de compresión con los metadatos asociados, guarda ficheros de streaming que se visualicen durante la transferencia, contiene un listado de ficheros y guarda la información sincronizada. La estructura de un fichero MXF consiste en una cabecera, un cuerpo que contiene la esencia y un pie. Para una estandarización rápida MXF se ha adherido a las guías SMPTE KVL (Key Length Value). MXF está compuesto por una secuencia continua de paquetes KVL de diversos tipos: audio, video, tablas índice, cabeceras de partición y metadatos. Cada ítem del fichero se codifica en KVL, es decir, cada uno se identifica con una única llave de 16 bytes y su longitud. Cada una de estas secciones contiene una o más particiones, permitiendo separar la esencia de los metadatos. De esta forma permite que el formato de fichero pueda crecer y añadir nuevas características con nuevas técnicas de compresión y esquemas de metadatos que se vayan definiendo.

## MXF en uso

MXF deriva del modelo de datos AAF, así que los dos formatos son complementarios. Los archivos creados de acuerdo a las reglas MXF pueden abrirse por aplicaciones que soporten AAF. Además, los archivos MXF pueden incrustarse en archivos AAF. De momento MXF no sustituirá los formatos existentes. Se usa en diseños de nuevos equipos, en versiones de actualizaciones de servidores A/V y NLEs, y como archivos de formato. Su difusión costará un cierto tiempo en el que tendrá que coexistir con los formatos existentes.
Actualmente todos los archivos MXF no son totalmente compatibles entre ellos y no hay garantía que un archivo MXF pueda usarse en cualquier decodificador dado. Para una verdadera interoperabilidad el emisor y el receptor tienen que soportar la misma compresión A/V y formatos metadatos. MXF especifica los modelos operacionales que definen las características, tipo de compresión y estructuras de metadatos de MXF que soportan. A través del SMPTE aparecerán los nuevos modelos que la industria necesita. En la actualidad MXF es bastante efectivo en el intercambio de material D10 (IMX), sobre todo debido al éxito del sistema eVTR de Sony y el eVTR RDD de Sony. Es posible combinar los flujos del eVTR, sistemas Avid NLE y servidores de broadcast usando MXF en coordinación con AAF. También está mejorando el intercambio de material MPEG-2 Long-GOP entre servidores de video.
Desde el otoño de 2005 hay más problemas en la interoperabilidad con MXF en su uso en posproducción de broadcast. Hay dos sistemas de cámaras de grabación que producen MXF, la XDCAM de Sony y la DVCPRO P2 de Panasonic, que producen archivos mutuamente incompatibles en opciones de subformato opaco poco claro en la extensión del fichero MXF. Y sin herramientas avanzadas es imposible distinguir entre ellos. Además, muchos sistemas MXF producen ficheros que almacenan el audio y el video por separado y usan una convención para nombrarlos que depende de nombre de fichero aleatoriamente generados y unidos. No sólo agrava la cuestión de conocer exactamente cuál es un fichero MXF sin herramientas especializadas, sino que también rompe la funcionalidad de las técnicas de computación estándares que se usan habitualmente para manipular los datos sobre niveles fundamentales como mover, copiar, renombrar y borrar. Usando un nombre de fichero generado aleatoriamente el usuario está desinformado, pero cambiando el nombre se rompe la estructura de la base de datos entre ficheros. Los fixeros MXF grabados sobre tarjeta P2 de Panasonic son compatibles con sistemas de edición importantes como Autodesk Smoke, Adobe After Effects ,Adobe Premiere Pro y Final Cut Pro. La implementación en otros productos, incluyendo Avid Newscutter, es particularmente deficiente y destaca en cuestiones de identificación opciones de XDCAM y P2 MXF fácilmente confundibles. Aunque el propósito de MXF es ser un formato fácilmente archivable, importar ficheros divididos MXF con metadatos externos XML puede resultar muy complicado. La extensión para los ficheros MXF es “.mxf”, aunque para Macintosh File Type Code registrado por Apple es “mxf ” (darse cuenta del espacio posterior).

## Estandarización

MXF es una solución abierta que se ha sometido a la estandarización por parte de la SMPTE. El Pro-MPEG Forum y la asociación AAF tienen el soporte de una parte sustancial de la industria del sector. Adicionalmente se ha trabajo con otros grupos de usuarios como EBU, asegurando que se incorporan todas las necesidades de los usuarios. Al mismo tiempo, muchos fabricantes y suministradores de software y hardware están interesados en la implementación de MXF lo más rápido posible.
* Documentos base
** SMPTE 377M: The MXF File Format Specification (documento principal general)
** SMPTE EG41: MXF Engineering Guide (guía explicando cómo usar MXF)
** SMPTE EG42: MXF Descriptive Metadata (guía explicando cómo usar los metadatos descriptivos en MXF)
* Patrones operacionales
** SMPTE 390M: OP-Atom (un layout simple para ficheros MXF)
** SMPTE 378M: OP-1a
** SMPTE 391M: OP-1b
** SMPTE 392M: OP-2a
** SMPTE 393M: OP-2b
** SMPTE 407M: OP-3a, OP-3b
** SMPTE 408M: OP-1c, OP-2c, OP-3c
* Contenedores genéricos
** SMPTE 379M: Generic Container (cómo almacenar la esencia en los ficheros MXF)
** SMPTE 381M: GC-MPEG (cómo almacenar los datos de esencia MPEG en MXF usando el Contenedor Genérico)
** SMPTE 383M: GC-DV (cómo almacenar los datos de esencia DV en MXF usando el Contenedor Genérico)
** SMPTE 385M: GC-CP (cómo almacenar los datos de esencia SDTI-CP en MXF usando el Contenedor Genérico)
** SMPTE 386M: GC-D10 (cómo almacenar los datos de esencia SMPTE D10 en MXF usando el Contenedor Genérico)
** SMPTE 387M: GC-D11 (cómo almacenar los datos de esencia SMPTE D11 en MXF usando el Contenedor Genérico)
** SMPTE 382M: GC-AESBWF (cómo almacenar los datos de esencia audio AES/EBU i Broadcast en MXF usando el Contenedor Genérico)
** SMPTE 384M: GC-UP (cómo almacenar los datos de esencia de imagen sin comprimir en MXF usando el Contenedor Genérico)
** SMPTE 388M: GC-AA (cómo almacenar los datos de esencia de audio codificado con A-law en MXF usando el Contenedor Genérico)
** SMPTE 389M: Generic Container Reverse Play System Element
** SMPTE 394M: System Item Scheme-1 for Generic Container
** SMPTE 405M: Elements and Individual Data Items for the GC SI Scheme 1
* Metadatos, diccionarios y registros
** SMPTE 380M: DMS1 (conjunto de metadatos descriptivos para usar con ficheros MXF)
** SMPTE 436M: MXF Mappings for VBI Lines and Ancillary Data Packets
** SMPTE RP210: SMPTE Metadata Dictionary (la última versión está disponible aquí: )
** SMPTE RP224: Registry of SMPTE Universal Labels