Contenedores y códecs

Derek Herman
Derek Herman
Joe Medley
Joe Medley

Si quieres admitir varios navegadores, deberás usar FFmpeg para convertir tu .mov archivo a dos contenedores diferentes: uno MP4 y uno WebM. En práctica, es probable que especifiques un códec al mismo tiempo. Por ahora, permitiremos que FFmpeg use su configuración predeterminada.

Si estos conceptos son nuevos para ti, deberías leer Conceptos básicos de los archivos multimedia antes de seguir adelante. Además, si no tienes instalado FFmpeg, lee Conceptos básicos de la aplicación multimedia para configurarlo con Docker.

Usamos la versión sugerida de Docker el archivo glocken.mov de Cómo preparar archivos multimedia para la Web dentro del directorio media. Utilizamos la versión 4.3.2 de FFmpeg para todos los comandos en esta sección.

Contenedores

Primero, debemos crear los dos contenedores a partir del archivo .mov con el .mp4. y .webm con una transmisión de audio y video dentro del archivo. Revisa los conceptos básicos de los archivos multimedia. para obtener más información sobre los contenedores y las transmisiones si no conoces la diferencia de 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 el formato MP4 se comprime en aproximadamente 83% del tamaño del archivo original WebM se redujo a 78% del tamaño original, pero puede ser mucho más pequeño. Los resultados variarán. Es importante señalar que 4.2.2 de FFmpeg establece el La tasa de bits de video predeterminada es 200k y en 4.3.2 no se establece una tasa de bits predeterminada. Por lo tanto, el video ya no es una simple4% del original. Puedes comprobarlo tú 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, deberías hacer 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 los 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 del archivo multimedia, un códec no es lo mismo que un contenedor (tipo de archivo). Dos archivos del mismo contenedor podría contener datos comprimidos con diferentes códecs. Por ejemplo, el formato WebM permite que el audio se codifique mediante Opus o Vorbis. Para cambiar el códec, usa FFmpeg. Por ejemplo, este comando genera un archivo .mkv con un 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 se usan para especificar el audio y códecs de video respectivamente.

Se muestra la página Conversión de medios necesarios para convertir códecs. En las siguientes tablas, se resumen las bibliotecas usadas en FFmpeg para realizar las conversiones de códecs para archivos WebM y MP4. Estos son los 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 acabas de crear.