Formato de contenedor MP4: El estándar universal de vídeo
MP4 (MPEG-4 Parte 14) es el formato contenedor de vídeo más ampliamente compatible del mundo. Desde su estandarización en 2001, se ha convertido en el formato por defecto para vídeo en internet, dispositivos móviles, plataformas de streaming y cámaras de consumo. Comprender la arquitectura interna del MP4 explica por qué ofrece compatibilidad tan amplia manteniendo una excelente calidad.
La familia MPEG-4 y el ISO Base Media File Format
MP4 está especificado formalmente como MPEG-4 Parte 14 (ISO/IEC 14496-14), una extensión directa del ISO Base Media File Format (ISOBMFF, ISO/IEC 14496-12). Este linaje compartido significa que MP4 es estructuralmente idéntico a MOV (QuickTime), M4V, M4A y 3GP — difieren principalmente en el identificador de marca de cuatro bytes almacenado en el box ftyp.
La especificación ISOBMFF define una estructura jerárquica de "boxes" (o "átomos"):
[ftyp] File Type Box — identifica la marca y marcas compatibles
[moov] Movie Box — contenedor de todos los metadatos
[mvhd] Movie Header — duración, escala de tiempo, fecha de creación
[trak] Track Box (vídeo)
[tkhd] Track Header
[mdia] Media Box
[mdhd] Media Header — idioma, escala de tiempo
[hdlr] Handler Reference — 'vide' para vídeo
[minf] Media Information
[stbl] Sample Table — índice de cada fotograma: tamaño, offset, tiempo
[trak] Track Box (audio)
[udta] User Data — metadatos (título, artista, GPS, etc.)
[mdat] Media Data Box — datos de fotogramas comprimidos
La idea clave: todos los metadatos de reproducción están en moov, mientras que los datos codificados reales están en mdat. Para streaming, moov debe aparecer antes que mdat — este es el requisito "fast start" u "optimización web". Las herramientas lo logran con qt-faststart o ffmpeg -movflags +faststart.
Codecs compatibles
El contenedor MP4 es agnóstico de codec. Combinaciones comunes:
| Pista | Codecs comunes | Notas |
|---|---|---|
| Vídeo | H.264 (AVC), H.265 (HEVC), AV1, MPEG-4 Parte 2, VP9 | H.264 compatible universalmente |
| Audio | AAC, MP3, AC-3, E-AC-3, Opus, ALAC | AAC es el estándar |
| Subtítulos | 3GPP Timed Text (tx3g), WebVTT | tx3g nativo; SRT no soportado |
La combinación más universal para entrega web es H.264 + AAC — todos los navegadores, dispositivos y reproductores soportan esta combinación.
MP4 Fragmentado (fMP4) y streaming
El MP4 tradicional requiere el archivo completo antes de iniciar la reproducción. El MP4 Fragmentado reestructura el archivo en segmentos independientes, permitiendo:
- MPEG-DASH: streaming de tasa de bits adaptativa usando manifiestos
.mpd - HLS: HTTP Live Streaming de Apple con soporte nativo de fMP4
- CMAF: Common Media Application Format — perfil fMP4 unificado para DASH y HLS
El problema del "fast start" de moov
Cuando moov aparece al final del archivo (por defecto en muchos codificadores), el navegador debe descargar el archivo completo antes de iniciar la reproducción.
Solución con ffmpeg:
ffmpeg -i entrada.mp4 -c copy -movflags +faststart salida.mp4
Esto mueve moov al principio sin recodificar. El flag -c copy garantiza copia de stream (sin pérdida de calidad).
Codificación MP4 con H.264 — Comandos prácticos de ffmpeg
Entrega web (máxima compatibilidad):
ffmpeg -i entrada.mp4 \
-c:v libx264 -crf 23 -preset slow \
-profile:v high -level 4.1 \
-c:a aac -b:a 128k \
-movflags +faststart \
salida.mp4
4K HDR con HEVC:
ffmpeg -i entrada.mp4 \
-c:v libx265 -crf 22 -preset medium \
-x265-params hdr-opt=1:colorprim=bt2020:transfer=smpte2084 \
-c:a aac -b:a 192k \
-movflags +faststart \
salida_4k_hdr.mp4
MP4 vs. MKV vs. MOV vs. WebM
| Característica | MP4 | MKV | MOV | WebM |
|---|---|---|---|---|
| Compatibilidad navegador | Universal | Limitada | Safari nativo | Chrome/Firefox |
| Flexibilidad de codecs | Alta | Máxima | Alta | VP8/VP9/AV1 |
| Soporte capítulos | Limitado | Completo | Limitado | Básico |
| Streaming (fMP4) | Sí (CMAF/DASH) | No nativo | No | Sí |
| Subtítulos | tx3g, WebVTT | ASS, SRT, PGS, todos | tx3g | WebVTT |
Problemas comunes y soluciones
Problema: El vídeo tarda en iniciar en web
Causa: moov al final del archivo
Solución: ffmpeg -i entrada.mp4 -c copy -movflags +faststart salida.mp4
Problema: El vídeo no reproduce en iPhone antiguo
Causa: Perfil H.264 demasiado alto
Solución: Re-codificar con -profile:v baseline -level 3.1
Problema: Audio y vídeo desincronizados
Solución: ffmpeg -i entrada.mp4 -c copy -avoid_negative_ts make_zero salida.mp4
Resumen
La combinación de soporte universal de dispositivos, arquitectura ISOBMFF eficiente, capacidad de streaming fMP4 y amplia compatibilidad de codecs hace de MP4 la elección correcta por defecto para prácticamente todos los casos de distribución de vídeo. Para contenido de archivo o múltiples pistas complejas, MKV ofrece más flexibilidad. Para entrega exclusiva en navegador con máxima compresión, WebM con AV1 es ideal. Pero para todo lo demás — móvil, streaming, redes sociales, imágenes de cámara — MP4 con H.264/AAC sigue siendo el estándar indiscutible.
Conversiones relacionadas
Conversiones de vídeo que encajan con esta guía: