Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=efc274ca-47e0-498d-842a-9e6516de1b13

Formatos de vídeo para Internet: MP4 y sus variantes, MP4/H.264 y MP4/MPEG-4 - Diferencias y similitudes

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!

José Manuel Alarcón Director de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón

No te pierdas ningún post

Únete gratis a nuestro canal en Telegram y te avisaremos en el momento en el que publiquemos uno nuevo.

Archivado en: Desarrollo Web

Comentarios (2) -

Les faltó hablar del x.264, que es una reimplementación open source creada usando ingeniería inversa. En la mayoría de los casos el h.264 y x.264 funcionan similar e incluso el mismo códec puede funcionar, aunque no es siempre (especialmente ciertas características avanzadas en x.264 que no existen en h.264).
Los reproductores y gran mayoría de sw usa los códecs originales de h.264, pero ya que éstos están patentados (y desde 2030 "podrían" cobrar), y el código de h.264 no está disponible open, muchos aparatos chinos o baratos, o reproductores y navegadores open source sólo incluyen x.264
Como dije, en la mayoría de los casos son compatibles pero no siempre.... si vas a usar sobre firefox, chrome o sw o hw comercial es bueno asegurarse de usar h.264

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola Erick:

Antes de nada, gracias por comentar.

Creo que estás confundiendo algunos conceptos. Me explico:

- H.264 es un codec, es decir, es un "lenguaje", un estándar que define cómo deben estar codificados los archivos.
- x.264 es un encoder, o sea, un traductor a ese "lenguaje". Es decir, x.264 no es más que una manera de codificar los vídeos para que cumplan con H.264. Fue creado por VLan, el famoso reproductor: https://www.videolan.org/developers/x264.html

Como ves son cosas diferentes, pero relacionadas.

Existen muchos codificadores de vídeo que pasan a H-264, siendo x.264 uno de los más populares porque es Open Source y porque, encima, es quizá el más completo de todos. Por eso lo usan en YouTube, Vimeo o software famoso de codificación Open Source como ffmpeg o Handbrake.

Respecto al tema de las patentes... Antes de nada: yo no soy abogado y muco menos de temas tan complejos como este de las patentes internacionales, pero sí que creo que hay unas cuantas cosas claras.

Las patentes de H.264 son del formato, independientemente de cómo se llegue a él. Es decir, que da igual que codifiques con x.264 o con otro codificador de pago o gratuito: las patentes aplican al formato H.264 independientemente de como hayas llegado a él. Así que sí: aunque codifiques tus vídeos con x.264, no te libras del tema de las patentes.

¿Quiere decir esto que debes pagar en algún momento (ahora o en el 2030) por usar vídeo codificado en H.264?

NO.

En primer lugar los royalties en este caso solo aplica para usos comerciales del contenido, no para usos gratuitos, por lo que para un uso personal jamás tendrías que pagar. Todo uso que sea gratuito en Internet, incluyendo la difusión gratuita en un portal cualquiera, está exenta explícitamente de pagar royalties.

Pero es que además, para usos de pago tiene unos límites muy generosos. Por ejemplo, si tienes un sitio de suscripción que emite vídeos codificados con H.264, solo tienes que pagar royalties a partir de 100.000 suscriptores. Si vendes vídeos uno a uno (por ejemplo películas) solo tienes que pagar por vídeos más largos de 12 minutos y en ese caso pagarías un 2% del precio o 2 céntimos de dolar, lo que sea MENOR. En la práctica un impacto mínimo.

Aparte de todo esto, por lo que he podido saber, varios tribunales de los EEUU han fallado ya en varias ocasiones sobre la imposibilidad práctica de forzar la licencia de estos royalties por patentes, aunqeu como digo, no soy abogado.

En resumen: x.264 y H.264 son dos caras de la misma moneda, y el uso de x.264 para codificar vídeo a H.264 no tiene nada que ver con el hecho de pagar licencias o no.

A lo mejor escribo un post ampliando lo que  acabo de contar y así aclaro mejor este interesante tema.

Saludos.

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.