Optimizar la calidad de video con compresión avanzada
A medida que el mundo digital se expande, la compresión de video desempeña un papel vital en la optimización del almacenamiento y la transmisión de video para streaming, redes sociales y aplicaciones multimedia. En esta publicación, exploramos varias técnicas de compresión de video y cómo ayudan a reducir el tamaño de los archivos manteniendo una calidad de video aceptable.

Compresión con pérdida frente a compresión sin pérdida
Existen dos tipos principales de compresión de video: con pérdida y sin pérdida. La compresión con pérdida descarta parte de los datos originales, lo que da como resultado un tamaño de archivo menor y una ligera pérdida de calidad de video. Entre los ejemplos de códecs de video con pérdida están H.264 (AVC), H.265 (HEVC), VP9 y AV1. En cambio, la compresión sin pérdida conserva todos los datos originales y mantiene la calidad de video a costa de archivos más grandes. Entre los códecs sin pérdida están HuffYUV y Lagarith.
Según la cantidad de veces que se vea un video, las máquinas tienen que dedicar un esfuerzo desproporcionado a codificar un archivo para conseguir ahorros frente a los códecs populares de hoy. Por esa razón, Transloadit solo ofrece encoding AV1 a los clientes del nivel Enterprise bajo petición.
Veamos algunas de las diferencias entre estos códecs:
-
H.264 (Advanced Video Coding): uno de los códecs de video más utilizados, H.264 ofrece una compresión de video eficiente con buena calidad de video. Admite una amplia gama de resoluciones, lo que lo hace adecuado para diversas aplicaciones, desde dispositivos móviles hasta televisión de alta definición.
-
H.265 (High-Efficiency Video Coding): sucesor de H.264, H.265 ofrece una eficiencia de compresión mejorada y admite resoluciones más altas, como 4K y 8K. La contrapartida es que requiere más potencia de procesamiento, lo que lo hace menos adecuado para dispositivos de gama baja.
-
VP9: un códec de video de código abierto desarrollado por Google que ofrece una eficiencia de compresión similar a la de H.265. Se usa habitualmente para transmitir videos en plataformas como YouTube.
Para que las fuentes WebM sean más fáciles de reproducir en distintos navegadores y dispositivos, prueba nuestro conversor de WebM a MP4 (English) en vivo.
-
AV1 (AOMedia Video 1): un códec de video de código abierto de nueva generación con una eficiencia de compresión mejorada y alta calidad de video. Admite resoluciones de hasta 8K y está optimizado tanto para la decodificación por hardware como por software. AV1 es ideal para transmitir video en plataformas como Netflix y YouTube.
-
HuffYUV: permite codificar y decodificar rápidamente, lo que lo hace ideal para aplicaciones que requieren procesamiento de alta velocidad, como la edición de video. Ofrece una compresión excelente para contenido de video simple, pero es menos efectivo con contenido de video complejo. HuffYUV se usa habitualmente para almacenamiento intermedio o edición.
-
Lagarith: ofrece muy buena compresión tanto para contenido de video simple como complejo, y está diseñado para ser rápido al codificar y decodificar. Lagarith se usa habitualmente para capturar y archivar material de video.
Compresión espacial y temporal
Las técnicas de compresión de video se pueden dividir en dos categorías: espacial y temporal.
La compresión espacial reduce la redundancia dentro de cada fotograma de video eliminando datos innecesarios y conservando los elementos esenciales. Técnicas como la transformada discreta del coseno (DCT, por sus siglas en inglés) y la transformada wavelet ayudan a lograrlo transformando los valores de los píxeles en coeficientes del dominio de la frecuencia, que después se pueden cuantizar y codificar.
La compresión temporal, por su parte, reduce la redundancia entre fotogramas consecutivos de una secuencia de video. Técnicas como la estimación de movimiento y la compensación de movimiento aprovechan las similitudes entre fotogramas para minimizar la cantidad de datos necesarios para representar el video.
Demo de encoding HEVC
Transloadit ofrece muchos ajustes preestablecidos de encoding distintos que puedes aprovechar. En la demo de abajo, usamos el Robot /video/encode para transcodificar automáticamente un archivo de video al códec de video HEVC. Después exportamos este archivo a S3 para recuperarlo más adelante. Para más información sobre cómo configurar S3, consulta nuestra publicación de blog Configurar S3 para Transloadit (English).
<!-- This pulls Uppy from our CDN -->
<!-- For smaller self-hosted bundles, install Uppy and plugins manually: -->
<!-- npm i --save @uppy/core @uppy/dashboard @uppy/remote-sources @uppy/transloadit ... -->
<link
href="https://releases.transloadit.com/uppy/v3.10.0/uppy.min.css"
rel="stylesheet"
/>
<button id="browse">Select Files</button>
<script type="module">
import {
Uppy,
Dashboard,
ImageEditor,
RemoteSources,
Transloadit,
} from 'https://releases.transloadit.com/uppy/v3.10.0/uppy.min.mjs'
const uppy = new Uppy()
.use(Transloadit, {
waitForEncoding: true,
alwaysRunAssembly: true,
assemblyOptions: {
params: {
// It's often better store encoding instructions in your account
// and use a `template_id` instead of adding these steps inline
steps: {
':original': {
robot: '/upload/handle',
},
hevc_encoded: {
use: ':original',
robot: '/video/encode',
result: true,
ffmpeg_stack: 'v7',
preset: 'hevc',
turbo: true,
},
exported: {
use: ['hevc_encoded', ':original'],
robot: '/s3/store',
credentials: 'demo_s3_credentials',
url_prefix: 'https://demos.transloadit.com/',
},
},
},
},
})
.use(Dashboard, { trigger: '#browse' })
.use(ImageEditor, { target: Dashboard })
.use(RemoteSources, {
companionUrl: 'https://api2.transloadit.com/companion',
})
.on('complete', ({ transloadit }) => {
// Due to `waitForEncoding:true` this is fired after encoding is done.
// Alternatively, set `waitForEncoding` to `false` and provide a `notify_url`
console.log(transloadit) // Array of Assembly Statuses
for (const assembly of transloadit) {
console.log(assembly.results) // Array of all encoding results
}
})
.on('error', (error) => {
console.error(error)
})
</script>
Si ningún ajuste preestablecido ofrece exactamente lo que buscas, también puedes considerar el uso de opciones personalizadas de FFmpeg para afinar el encoding a tus necesidades específicas.
Conclusión
Las técnicas de compresión de video desempeñan un papel crucial en la gestión del tamaño y la calidad de los archivos de video digitales. Al comprender los distintos métodos y códecs disponibles, los creadores de contenido y los desarrolladores pueden tomar decisiones informadas sobre qué método de compresión se adapta mejor a sus necesidades. A medida que las resoluciones de video sigan aumentando y crezca la demanda de contenido de video, la eficiencia de la compresión de video será cada vez más importante en los próximos años.
En Transloadit entendemos la importancia de una compresión de video eficiente y de entregar contenido de video de alta calidad a tu audiencia. Nuestra potente API de encoding de video te permite implementar sin esfuerzo distintos códecs de video y técnicas de compresión en tu flujo de trabajo. Con una amplia gama de opciones de personalización y soporte para streaming adaptativo, nos aseguramos de que tus videos estén optimizados para ofrecer la mejor experiencia de usuario posible en distintos dispositivos y condiciones de red. A medida que la tecnología evoluciona, Transloadit seguirá a la vanguardia de las innovaciones en compresión de video y te ofrecerá soluciones de última generación adaptadas a tus necesidades.
