¿Qué es WebM?
WebM es un formato de contenedor de vídeo de código abierto y libre de royalties, desarrollado por Google y lanzado en 2010. Está diseñado específicamente para su uso en la web, combinando tecnologías de la Fundación Xiph.org (para audio) con los codecs de vídeo desarrollados por la Alliance for Open Media.
WebM puede contener:
- Vídeo: VP8, VP9 o AV1.
- Audio: Vorbis u Opus.
Codecs de vídeo en WebM
| Codec | Año | Calidad | Velocidad de codificación | Uso |
|---|---|---|---|---|
| VP8 | 2010 | Comparable a H.264 | Rápida | Legacy, compatibilidad |
| VP9 | 2013 | Comparable a H.265/HEVC | Moderada | YouTube, streaming |
| AV1 | 2018 | Superior a H.265 | Lenta (CPU intensiva) | Futuro, 4K streaming |
WebM vs MP4: comparativa
| Característica | MP4 (H.264) | WebM (VP9) | WebM (AV1) |
|---|---|---|---|
| Calidad a igual bitrate | Referencia | Similar | Superior |
| Tamaño de archivo | Referencia | Similar | 30-50% menor |
| Patentes/Royalties | Sí (MPEG-LA) | No | No |
| Compatibilidad navegadores | ✅ Universal | 90%+ | 75%+ (creciendo) |
| Compatibilidad iOS Safari | ✅ | ✅ (iOS 14.5+) | Parcial |
Convertir a WebM con FFmpeg
# MP4 a WebM con VP9
ffmpeg -i video.mp4 -c:v libvpx-vp9 -crf 33 -b:v 0 -c:a libopus video.webm
# MP4 a WebM con AV1 (mejor calidad, más lento)
ffmpeg -i video.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -c:a libopus video.webm
# WebM a MP4
ffmpeg -i video.webm -c:v libx264 -c:a aac video.mp4
# Control de calidad VP9
ffmpeg -i video.mp4 -c:v libvpx-vp9 -crf 33 -b:v 0 \
-deadline good -cpu-used 2 \
-c:a libopus -b:a 128k video.webm
WebM en HTML con fallback MP4
<video controls width="800" height="450" preload="metadata">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
Tu navegador no soporta vídeo HTML5.
</video>
WebM para vídeo en loop (sin controles)
<video autoplay muted loop playsinline width="1920" height="1080">
<source src="background.webm" type="video/webm">
<source src="background.mp4" type="video/mp4">
</video>
Crear WebM para animaciones (sustituto de GIF)
ffmpeg -i clip.mp4 -t 5 -vf "fps=15,scale=480:-1" \
-c:v libvpx-vp9 -crf 35 -b:v 0 \
-an animacion.webm
El resultado es 10-20x más pequeño que el GIF equivalente.
Conclusión
WebM con VP9 es el estándar para vídeo web de código abierto, usado por YouTube y Netflix. Con soporte en el 90%+ de navegadores, es ideal para video web moderno. Para máxima compatibilidad incluye un fallback MP4. Para el futuro, AV1 en contenedor WebM ofrece la mayor eficiencia disponible.
Casos de uso avanzados
Distribución multi-plataforma: cada red social tiene specs preferidas — YouTube acepta MP4 H.264 hasta 4K 60fps con AAC 384 kbps; Instagram Reels prefiere MP4 H.264 a 1080×1920 vertical; TikTok recomienda MP4 H.264/H.265 hasta 60 segundos con bitrate de 5-10 Mbps; LinkedIn limita a 5 GB y prefiere MP4 H.264. Convertir tu master a las specs exactas de cada plataforma antes del upload garantiza que la re-codificación interna del servidor (que siempre ocurre) parta de un input óptimo, preservando máxima calidad final. Edición profesional: editores como DaVinci Resolve, Premiere Pro y Final Cut Pro funcionan mejor con codecs intermedios (ProRes, DNxHD, CineForm) que con H.264 final-delivery — convertir tu material a un formato intermedio antes de editar acelera dramáticamente el render y evita generation loss en multi-track timelines. Streaming en vivo: OBS Studio y Streamlabs requieren input en H.264/H.265 con keyframes cada 2 segundos para HLS; convertir grabaciones a este preset facilita el uplink.
Mejores prácticas y consejos profesionales
Two-pass encoding vs CRF: para target file size específico (ej. "máximo 25 MB para WhatsApp") usa two-pass; para target quality usa CRF (Constant Rate Factor) con valores 18-23 para H.264, 22-28 para H.265 — son visually-lossless en condiciones normales. Audio passthrough: si tu video destino soporta el codec original de audio, usa stream copy (-c:a copy en FFmpeg) — preserva 100% de la calidad de audio sin re-codificación. Container vs codec: distingue entre container (MP4, MKV, MOV) y codec interno (H.264, H.265, AV1). Cambiar solo el container es una operación trivial sin re-encoding (segundos vs minutos para re-encode). HDR preservation: si tu source es HDR10/Dolby Vision, asegúrate que el destino también soporta HDR — convertir HDR a SDR pierde rango dinámico permanentemente. Frame rate: nunca aumentes frame rate (24→60 no añade información real); reducirlo (60→30) elimina frames sin pérdida visible para la mayoría del contenido.
Compatibilidad y consideraciones técnicas
KaijuConverter procesa video con FFmpeg 6.x compilado con todas las extensiones críticas: x264/x265 para encoding H.264/H.265 con presets configurables (ultrafast a veryslow, default medium para balance), libvpx-vp9 para WebM, SVT-AV1 para encoding moderno AV1 con soporte 10-bit color space, libfdk-aac para audio AAC, libopus para Opus. Soportamos archivos hasta 500 MB y resoluciones hasta 4K (3840×2160) a 60 fps. La pipeline cloud usa hardware acceleration cuando está disponible (NVENC/QuickSync) que acelera 5-10× respecto a CPU encoding. Tiempo de procesamiento: un video 1080p de 60 segundos típicamente se convierte en 12-30 segundos según codec destino y preset. Material 4K HDR puede requerir 2-5 minutos. Limitaciones: archivos protegidos con DRM (Netflix, Disney+, Amazon Prime, Apple TV+) no se pueden convertir — el DRM bloquea extracción del stream. Codecs propietarios muy específicos (RED RAW, ARRI Alexa raw, Sony X-OCN) requieren software dedicado. Privacidad: video se cifra en tránsito (TLS 1.3), se procesa en contenedores Docker aislados, se elimina automáticamente tras 2 horas con multi-pass overwrite seguro.
Conversiones relacionadas
Conversiones de vídeo que encajan con esta guía: