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.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
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.