La codificación de video es el proceso de comprimir una señal de video digital en un formato adecuado para almacenamiento y transmisión por red con pérdida mínima de calidad. Sin codificación, un minuto de video 4K sin comprimir ocupa unos 30 GB, lo que hace imposible la transmisión por internet. Según el informe Sandvine Global Internet Phenomena (2025), el video representa el 65% de todo el tráfico de internet, y la codificación es la tecnología clave que lo hace posible.
Puntos clave
La codificación de video es el proceso de convertir una señal de video sin comprimir en un formato digital utilizando algoritmos de compresión. Estos algoritmos, implementados en códecs de video, eliminan información redundante tanto en el dominio espacial (dentro de un mismo cuadro) como en el temporal (entre cuadros sucesivos).
El video sin comprimir es una secuencia de cuadros, cada uno almacenado como una matriz de píxeles en formato RGB o YUV. Sin compresión, un segundo de video 1080p a 30 FPS requiere aproximadamente 1.5 GB de memoria. El códec H.264 comprime este flujo a 3–5 Mbps, 2500 veces menos que el volumen original.
Los códecs de video utilizan dos tipos de compresión: intracuadro (intra-frame) e intercuadro (inter-frame). La compresión intra-frame se aplica a cada cuadro de forma independiente, utilizando algoritmos similares a JPEG: transformada discreta del coseno (DCT), cuantización y codificación entrópica.
La compresión inter-frame analiza la diferencia entre cuadros sucesivos y codifica solo los cambios. Si el fondo es estático, el códec transmite un cuadro completo solo una vez (I-frame), y luego solo las diferencias (P- y B-frames), lo que reduce significativamente el volumen de datos para escenas con poca dinámica.
La selección del códec de video determina la relación calidad-tamaño, la compatibilidad con dispositivos y los costos de licencia. Cuatro códecs principales dominan el mercado de aplicaciones móviles: H.264 (AVC), H.265 (HEVC), VP9 y AV1.
| Códec | Estándar | Año | Compresión vs H.264 | Licencia |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (base) | Regalías (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50% más eficiente | Regalías (dos grupos) |
| VP9 | 2013 | 30–40% más eficiente | Gratuito | |
| AV1 | AOM | 2018 | 50–60% más eficiente | Libre de regalías |
H.264 (AVC — Advanced Video Coding) sigue siendo el códec de video más compatible: es compatible con todos los dispositivos móviles, navegadores y Smart TV desde 2005. La decodificación H.264 acelerada por hardware está disponible incluso en dispositivos económicos, lo que lo hace ideal para un flujo universal.
El principal inconveniente de H.264 es su eficiencia de compresión relativamente baja en comparación con los códecs modernos. Al mismo bitrate, H.265 y AV1 ofrecen una calidad notablemente superior, lo que es especialmente importante para contenido HDR y 4K.
H.265 (HEVC — High Efficiency Video Coding) proporciona una compresión 40–50% mejor que H.264 con la misma calidad visual. Esto se logra mediante una división más flexible del cuadro en bloques (CTU de hasta 64×64 píxeles en lugar de 16×16) y algoritmos mejorados de predicción de movimiento.
HEVC es compatible con todos los dispositivos Apple (desde iPhone 6), Android (desde la versión 5.0 con decodificación por hardware) y la mayoría de Smart TV. Las regalías de HEVC son más altas que las de H.264 y son gestionadas por dos grupos de patentes, lo que complica el uso legal.
AV1 es un códec de video desarrollado por Alliance for Open Media (AOM), un consorcio liderado por Google, Netflix, Amazon, Intel y Mozilla. AV1 proporciona una compresión 50–60% mejor que H.264 y es completamente libre de regalías, lo que lo hace atractivo para servicios de streaming.
El principal inconveniente de AV1 es su alta complejidad computacional de codificación. La codificación AV1 puede ser de 5 a 10 veces más lenta que H.264 en el mismo hardware, aunque la decodificación por hardware ya está apareciendo en dispositivos de 2024–2025 (Snapdragon 8 Gen 3, Apple A17 Pro).
Los códecs de audio en aplicaciones móviles no son menos importantes que los códecs de video. El video en streaming requiere audio con latencia mínima, alta calidad y compatibilidad con contenedores MP4 y WebM. Tres códecs de audio principales cubren el 99% de las aplicaciones de streaming móvil.
AAC (Advanced Audio Coding) es el sucesor de MP3, desarrollado por MPEG en 1997 y convertido en el códec de audio estándar para iTunes, YouTube y Android. AAC proporciona la misma calidad que MP3 con un bitrate 30% menor y admite audio multicanal hasta 7.1.
Para aplicaciones móviles, se recomienda AAC-LC a 128–192 kbps para estéreo y AAC-HE para bitrates bajos de 32–64 kbps. La decodificación AAC por hardware está disponible en todos los dispositivos modernos, minimizando el consumo de energía.
Opus es un códec de audio abierto de la IETF (RFC 6716) que ofrece la mejor calidad entre todos los códecs de audio con bitrates de 6 a 510 kbps. Opus combina SILK (algoritmo para voz) y CELT (para música) y cambia automáticamente de modo según el contenido.
Opus se utiliza en WebRTC para videollamadas, en aplicaciones Spotify y Discord, y es compatible con HLS desde iOS 11 y Android 5.0. La baja latencia de Opus (5–26 ms frente a 40–100 ms de AAC) lo convierte en la opción preferida para transmisiones en vivo y videoconferencias.
Los parámetros de codificación determinan el tamaño final del archivo, la calidad del video y la compatibilidad con los dispositivos. Un desarrollador de aplicaciones móviles debe elegir la configuración óptima para cada tipo de contenido: películas, transmisiones deportivas, contenido generado por el usuario.
El bitrate es la cantidad de bits utilizados para codificar un segundo de video. Existen CBR (Constant Bitrate) para transmisiones en vivo, VBR (Variable Bitrate) con calidad objetivo para almacenamiento en archivo y ABR (Average Bitrate) para streaming.
| Resolución | H.264 (recomendado) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kbps | 250–500 kbps | 200–400 kbps |
| 720p | 1.5–4 Mbps | 1–2.5 Mbps | 0.8–2 Mbps |
| 1080p | 3–8 Mbps | 2–5 Mbps | 1.5–4 Mbps |
| 4K (2160p) | 15–40 Mbps | 10–25 Mbps | 8–20 Mbps |
CRF (Constant Rate Factor) es un parámetro de codificación en x264 y x265 que establece la calidad objetivo en lugar de un bitrate fijo. La escala CRF va de 0 (sin pérdida) a 51 (peor calidad), siendo 18–28 el rango de trabajo. Para aplicaciones móviles, se recomienda CRF 23 para x264 y CRF 25 para x265.
CRF 18–20 proporciona alta calidad para contenido de presentación y visualización sin conexión. CRF 24–28 es adecuado para streaming y contenido generado por el usuario, donde el tamaño del archivo es más importante que la calidad absoluta.
El estándar H.264 define perfiles (Baseline, Main, High) y niveles (Level 1–5.2) que limitan los parámetros máximos del video. Baseline Profile es compatible con todos los dispositivos, pero no admite B-frames. High Profile proporciona la máxima calidad y se utiliza para contenido 1080p.
Para streaming 4K se requiere Level 5.1 y superior, compatible con la mayoría de dispositivos móviles desde 2018. El nivel del códec determina la resolución máxima, el bitrate y el tamaño del búfer, garantizando una decodificación correcta en todos los dispositivos certificados.
La codificación para streaming se diferencia de la codificación de archivo en que requiere crear múltiples variantes de calidad (ABR ladder) y optimizar para la transmisión en red. Los proveedores de contenido utilizan transcodificación en tiempo real o precodificación para VOD.
Una ABR ladder típica para aplicaciones móviles incluye 4–6 variantes: desde 144p (200 kbps) para redes débiles hasta 1080p (8 Mbps) para Wi-Fi. Resoluciones recomendadas: 144p, 240p, 360p, 480p, 720p, 1080p. Para contenido 4K se añaden 1440p y 2160p.
val mediaCodec = MediaCodec.createEncoderByType(
MediaFormat.MIMETYPE_VIDEO_AVC
)
val format = MediaFormat.createVideoFormat(
MediaFormat.MIMETYPE_VIDEO_AVC,
1280, 720
).apply {
setInteger(MediaFormat.KEY_BIT_RATE, 3_000_000)
setInteger(MediaFormat.KEY_FRAME_RATE, 30)
setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2)
setInteger(MediaFormat.KEY_PROFILE,
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh)
setInteger(MediaFormat.KEY_LEVEL,
MediaCodecInfo.CodecProfileLevel.AVCLevel31)
}
mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
Para las transmisiones en vivo, la baja latencia es especialmente importante. La configuración de codificación debe minimizar el retardo de entrada/salida del códec: se recomienda un GOP de 1–2 segundos (cada 30–60 cuadros), los B-frames deben desactivarse o minimizarse, y se utiliza Baseline Profile para H.264.
Los protocolos modernos de baja latencia — LL-HLS y CMAF-Low Latency — requieren codificación fragmentada con segmentos de 1–2 segundos y soporte para descargas parciales (Partial Segments). El códec debe admitir moof-box en cada segmento para MP4 fragmentado.
Preguntas frecuentes
La codificación de video es el proceso de comprimir una señal de video digital mediante códecs para reducir el volumen de datos. En las aplicaciones móviles, la codificación permite transmitir y almacenar video, reduciendo el tamaño cientos de veces sin pérdida notable de calidad en la pantalla del dispositivo.
H.264 ofrece la máxima compatibilidad con dispositivos antiguos, mientras que H.265 es 40–50% más eficiente con la misma calidad. Para contenido 1080p o inferior, H.264 es suficiente; para 4K se recomienda H.265 o AV1 si el dispositivo lo admite.
El bitrate es la cantidad de datos por segundo de video. Para 1080p, el bitrate óptimo es 3–8 Mbps para H.264 y 2–5 Mbps para H.265. La elección depende del contenido: las escenas dinámicas (deportes) requieren un bitrate más alto, las estáticas (entrevistas) uno más bajo.
VP9 es el predecesor de AV1 de Google, con una compresión similar a H.265. AV1 comprime 20–30% más eficientemente que VP9, pero requiere 5–10 veces más recursos de codificación. VP9 es mejor para YouTube, AV1 para Netflix y servicios de streaming modernos.
Para transmisiones en vivo, use H.264 Baseline Profile con GOP de 1–2 segundos, sin B-frames, bitrate 2–4 Mbps para 1080p. Active MP4 fragmentado (CMAF) para LL-HLS y use codificación por hardware mediante MediaCodec o VideoToolbox.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también