Para oferecer suporte a vários navegadores, use o FFmpeg para converter seu .mov
em dois contêineres diferentes: um contêiner MP4 e um contêiner WebM. Em
você provavelmente especificaria um codec ao mesmo tempo. Por enquanto,
estamos permitindo que o FFmpeg use seus padrões.
Se esses conceitos são novos para você, leia Noções básicas sobre arquivos de mídia antes de continuar. Além disso, se você não tiver o FFmpeg instalado, leia Fundamentos de aplicativos de mídia para configurá-lo com o Docker.
Estamos usando a instalação do Docker sugerida
o arquivo glocken.mov de Preparar arquivos de mídia para a Web
adicionados no diretório media
. Usamos o FFmpeg versão 4.3.2 para todos
comandos nesta seção.
Contêineres
Primeiro, precisamos criar nossos dois contêineres no arquivo .mov
com o .mp4
e .webm
com um stream de áudio e de vídeo dentro do arquivo.
Leia as noções básicas sobre arquivos de mídia.
para saber mais sobre contêineres e streams.
para resolvê-los com rapidez.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
O WebM leva mais tempo para criar do que o MP4. Isso não é surpreendente quando você olha para
os resultados. Já o MP4 comprime para cerca de 83%
dos arquivos originais
tamanho, o WebM é reduzido a 78%
do tamanho original, mas pode ser muito menor.
Os resultados variam. É importante ressaltar que o 4.2.2
do FFmpeg definiu o
taxa de bits padrão do vídeo para 200k
e, em 4.3.2
, não define uma taxa de bits padrão.
Assim, o vídeo não é mais mero4%
do original. Você pode conferir isso
Use o comando bash ls -a
na pasta em que os arquivos de mídia estão localizados.
Exemplo:
/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 gerar um arquivo pequeno, faça o seguinte:
/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
Confira suas tarefas
Para verificar os resultados, use o FFmpeg e o Shaka Packager, como já mostrado no Fundamentos de aplicativos de mídia:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
Codecs
A seguir, o codec. Como descrito em Noções básicas sobre arquivos de mídia, um codec
não é a mesma coisa que um contêiner (tipo de arquivo). Dois arquivos do mesmo contêiner
pode conter dados compactados usando codecs diferentes. O formato WebM, por exemplo
permite que o áudio seja codificado usando Vorbis ou Opus. Para mudar o codec,
use o FFmpeg. Por exemplo, este comando gera um arquivo .mkv
com um áudio vorbis
e um codec de vídeo av1
.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
Neste exemplo, a flag -c:a
e -c:v
são para especificar o áudio e
e codecs de vídeo, respectivamente.
A página Conversão de mídia lista necessários para converter codecs. As tabelas abaixo resumem as bibliotecas usadas no FFmpeg para realizar as conversões de codec para arquivos WebM e MP4. Estes são os recomendados para DASH e HLS, respectivamente.
Vídeo
Codec | Extensão | Biblioteca |
---|---|---|
av1 | WebM, mkv | Libaom-Av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx-vp9 |
Áudio
Codec | Extensão | Biblioteca |
---|---|---|
aac | MP4 | aac |
Opus | WebM | Libopus |
Vorbis | WebM | libvorbis |
Em seguida, mostraremos como alterar a taxa de bits dos seus arquivos recém-criados.