Contenedores y códecs

Derek Herman
Derek Herman
Joe Medley
José Medley

Si quieres admitir varios navegadores, deberás usar FFmpeg para convertir tu archivo .mov en dos contenedores diferentes: un contenedor MP4 y uno WebM. En la práctica, es probable que debas especificar un códec al mismo tiempo. Por ahora, permitiremos que FFmpeg use sus valores predeterminados.

Si estos conceptos son nuevos para ti, te recomendamos que leas los Conceptos básicos de los archivos multimedia antes de continuar. Además, si no tienes instalado FFmpeg, lee Conceptos básicos de las aplicaciones de música para configurarlo con Docker.

Usamos la instalación sugerida de Docker y el archivo glocken.mov de la sección Prepara archivos multimedia para la Web que se agregó dentro del directorio media. Usamos la versión 4.3.2 de FFmpeg para todos los comandos de esta sección.

Contenedores

En primer lugar, debemos crear los dos contenedores a partir del archivo .mov con las extensiones de archivo .mp4 y .webm, con una transmisión de audio y video dentro del archivo. Consulta los Conceptos básicos de los archivos multimedia para obtener más información sobre los contenedores y las transmisiones si no conoces las diferencias entre ellos.

  1. MP4

    /media # ffmpeg -i glocken.mov glocken.mp4
    
  2. WebM

    /media # ffmpeg -i glocken.mov glocken.webm
    

WebM tarda más en crearse que MP4. Esto no es sorprendente si observas los resultados. Mientras que MP4 comprime aproximadamente el 83% del tamaño del archivo original, WebM reduce al 78% del tamaño original, pero puede ser mucho más pequeño. Los resultados variarán. Es importante señalar que FFmpeg 4.2.2 estableció la tasa de bits de video predeterminada en 200k y, en 4.3.2, no estableció una tasa de bits predeterminada. para que el video ya no sea solo4% del original. Puedes verlo por ti mismo con el comando Bash ls -a en la carpeta en la que se encuentran tus archivos multimedia.

Por ejemplo:

/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root   9503301 Mar 7 18:30 glocken.webm

Para obtener un archivo pequeño, haz lo siguiente:

/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame=  300 fps=3.6 q=0.0 Lsize=     483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root    494497 Mar 7 18:45 glocken.webm

Revise su trabajo

Para verificar tus resultados, usa FFmpeg y Shaka Packager como se muestra en Conceptos básicos de la aplicación multimedia:

/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4

Códecs

A continuación, el códec. Como se indica en Conceptos básicos de los archivos multimedia, un códec no es lo mismo que un contenedor (tipo de archivo). Dos archivos del mismo tipo de contenedor pueden contener los datos comprimidos con diferentes códecs. Por ejemplo, el formato WebM permite que el audio se codifique mediante Vorbis, o bien Opus. Para cambiar el códec, usamos FFmpeg. Por ejemplo, este comando genera un archivo .mkv con un códec de audio vorbis y un códec de video av1.

/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv

En este ejemplo, la marca -c:a y -c:v son para especificar los códecs de audio y video, respectivamente.

En la página Conversión de contenido multimedia, se enumeran los comandos necesarios para convertir códecs. En las siguientes tablas, se resumen las bibliotecas que se usan en FFmpeg para realizar las conversiones de códecs de archivos WebM y MP4. Estos son los formatos recomendados para DASH y HLS, respectivamente.

Video

Códec Extensión Biblioteca
av1 WebM y MKV libaom-av1
h264 MP4 libx264
vp9 WebM libvpx-vp9

Audio

Códec Extensión Biblioteca
aac MP4 aac
opus WebM libopus
vorbis WebM libvorbis

A continuación, te mostraremos cómo cambiar la tasa de bits de los archivos que hayas creado recientemente.