Los vídeos que reproducimos en Internet o bien de manera local en el ordenador o en cualquier otro dispositivo, pueden estar codificados de diferentes maneras. Cada método de codificarlos implica unas ventajas e inconvenientes, y existen formatos mejores que otros dependiendo del uso que queramos darle al vídeo. Así, tenemos formatos como AVI, MP4, MKV, 3GP, WebM de Google, etc...
A la hora de reproducir vídeo en la Web, usando un navegador, el formato más extendido y con mejor soporte por parte de los navegadores, tanto móviles como de escritorio, es el formato MP4, y para ser más exactos, el formato MP4/H.264, que se corresponde con archivos que normalmente llevan la extensión .mp4. Pero:
- ¿Son iguales todos los archivos .mp4?
- Si no son iguales, ¿qué tipos hay? ¿cuáles son las diferencias, ventajas e inconvenientes de cada uno?
- ¿Valen todos para la Web?
¡Vamos a verlo!
El formato MP4 - Partes, contenedores y extensiones
Cuando hablamos de un archivo .mp4 o del formato MP4 en general, de lo que estamos hablando es de lo que se conoce técnicamente como MPEG-4 Parte 14. Se trata de un formato estándar (ISO/IEC 14496-14) y es un formato contenedor de pistas multimedia. Es decir, este formato define cómo se pueden contener en el archivo las pistas de audio y de vídeo (llamados data streams) en diversos formatos, y puede incluso contener subtítulos también.
Dentro de este formato contenedor, dentro del archivo .mp4, las pistas de audio y vídeo pueden estar codificadas en diversos formatos, según convenga para la aplicación que se le va a dar. Aunque en teoría soporta muchísimos formatos diferentes (casi cualquiera) para estas pistas de audio y vídeo, en la práctica los reproductores de este formato soportan solamente algunos tipos concretos, siendo los más frecuentes:
- Audio: AAC (Advanced Audio Codec, que cuando van sueltos son archivos con extensiones .m4a o .3gp), o el formato MP3.
- Vídeo: las distintas variantes del formato MPEG.
MPEG o Moving Picture Experts Group es un grupo de "autoridades" y fabricantes en el campo del audio y el vídeo que se juntaron a petición de ISO a finales de los 80 para crear estándares de codificación de archivos para este tipo de información multimedia, y así garantizar una compatibilidad entre medios a reproducir y dispositivos reproductores. La primera versión del estándar, MPEG-1 salió en 1993, y desde entonces han habido muchas nuevas versiones, y dentro de éstas lo que ellos denominan "Partes", que son aspectos concretos del estándar y también extensiones a la especificación para cosas concretas, o mejoras del formato base que modifican.
La versión más extendida de este formato MPEG es la 4, o MPEG-4, aparecida a finales de 1998, y es lo que conocemos como MP4, por la extensión de sus archivos. Esta versión se divide en varios subestándares o "Partes" que describen cuestiones determinadas del formato (por ejemplo, la 14 el contenedor, como ya he dicho al principio) y ciertas extensiones.
Dentro de las partes del estándar, la parte 10 describe un formato avanzado de codificación que es lo que conocemos también como H.264, pero que en realidad se llama también MPEG-4 Part 10 y que es lo que utilizaban los discos Blue-Ray, por ejemplo. Por eso en muchos sitios de Internet hablan de que H.264 y MPEG-4 son lo mismo. Y es cierto, pero no del todo, ya que en MPEG-4 las partes 2, 12 o 14 también describen otros formatos de compresión que son MPEG-4, y el formato contenedor puede contener también MPEG en versiones anteriores de menor calidad como MPEG-1 o MPEG-2.
MPEG-4 Parte 10 o formato H.264 o AVC
Recapitulemos lo que sabemos hasta ahora: cuando se habla en la actualidad de archivos MP4 o .mp4, o del "formato MP4" se habla en realidad del formato contenedor. Dentro de éste puede haber audio y vídeo en diversos formatos, por lo que hablar tan solo de MP4 no es correcto (o no es preciso al menos) y es necesario especificar más. Dado que el formato utilizado para hacer la compresión del stream de vídeo que contenga el MP4 es de vital importancia, se suele poner el "apellido" de dicho formato para indicar bien a qué nos estamos refiriendo.
Así, se habla de MP4/H.264 para los vídeos que usan la parte 10 de MPEG-4 y que son vídeos muy compatibles y de alta calidad. También es común que se hable del formato MP4/MPEG-4, que en este caso se suele referir a la Parte 2 de MPEG-4, que es el formato original que se lanzó, y es de menor calidad, por lo que se suele utilizar para emitir televisión por IP (vídeo-vigilancia) o distribuir ciertos contenidos multimedia (algunas pelis "pirata", CDs multimedia...) pues pesa menos generalmente.
El formato MP4/H.264 es el que debe utilizarse para reproducir directamente en los navegadores, puesto que es el que soportan hoy en día todos ellos en todos los sistemas operativos. Es mucho más eficiente que MPEG-4 Parte 2 (el original) a la hora de codificar, y ofrece mucha mejor calidad incluso aunque usemos una tasa de bits pequeña o un ancho de banda reducido a la hora de reproducirlo. Resiste muy bien los errores de transmisión aunque se pierdan algunos paquetes, por lo que va muy bien para streaming, videoconferencia y similares aplicaciones. A este formato se le conoce también con el nombre de AVC (Advanced Video Coding), por lo que en algunas ocasiones puedes leer MP4/AVC, pero se trata de lo mismo.
Como contrapartida, el formato H.264 es más complejo y más complicado de codificar (puede requerir hasta 3 veces más potencia de computación que el formato original de MPEG-4) y de decodificar (el doble de potencia), pero hoy en día con los dispositivos de los que dispone el usuario medio (tanto ordenadores como móviles, etc...) esto tiene poca importancia.
En resumen
Hablar tan solo del "formato MP4" es impreciso. Un vídeo con la extensión .mp4 puede que no se reproduzca en un navegador mientras que otro con la misma extensión sí. La diferencia entre ellos estriba en la manera de codificar el vídeo que lleva dentro, ya que .mp4 es un formato contenedor.
Para la web, el formato recomendado es el MPEG-4 Part 10, o lo que es lo mismo el MP4/AVC o, mucho más comúnmente denominado, MP4/H.264. Este formato funciona en todos los navegadores del mercado, excepto en versiones muy viejas de Internet Explorer.
Así que cuando te hablen del "Formato MP4", o bien te están hablando de MP4/H.264 o entonces tienen que especificártelo más. Si tienes duda del formato de un archivo .mp4 concreto que quieres reproducir puedes utilizar alguna herramienta del estilo de Mediainfo para que te diga de qué manera concreta están codificadas las pistas de audio y vídeo. Este programa a las pistas codificadas como H.264 las identifica como AVC, que como sabemos es lo mismo. Si te dice AVC es que está en el formato correcto para la web.
Como ves, el mundo de los formatos multimedia es bastante complejo técnicamente. Por suerte, como desarrollador o diseñador web lo único que debe preocuparte hoy en día es que tengan una relación calidad/peso apropiada y que estén codificados como MP4/H.264. Así que lo tienes fácil 😊
¡Espero que te resulte útil e interesante!