Per supportare più browser, dovrai utilizzare FFmpeg per convertire il file .mov
in due contenitori diversi: un contenitore MP4 e un contenitore WebM. Nella pratica, è probabile che tu specifichi contemporaneamente un codec. Per il momento,
lasciamo che FFmpeg utilizzi i valori predefiniti.
Se questi concetti sono nuovi per te, ti consigliamo di leggere la sezione Nozioni di base sui file multimediali prima di procedere. Inoltre, se non hai installato FFmpeg, leggi la sezione Nozioni di base sulle applicazioni multimediali per configurarlo con Docker.
Utilizziamo l'installazione di Docker suggerita e il file glocken.mov di Preparare i file multimediali per il web aggiunto all'interno della directory media
. Abbiamo utilizzato FFmpeg versione 4.3.2 per tutti i comandi in questa sezione.
Container
Innanzitutto, dobbiamo creare i due contenitori dal file .mov
con le estensioni .mp4
e .webm
con uno stream audio e video all'interno del file.
Consulta la sezione Nozioni di base sui file multimediali per saperne di più su contenitori e stream se non conosci la differenza tra i due.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
La creazione di file WebM richiede più tempo rispetto a quella di file MP4. Non sorprende se guardiamo ai risultati. Sebbene MP4 si comprima fino a circa 83%
delle dimensioni del file originale, WebM si riduce a 78%
delle dimensioni dell'originale, ma può essere molto più piccolo.
I risultati varieranno. È importante sottolineare che FFmpeg 4.2.2
imposta la
velocità in bit video predefinita su 200k
e in 4.3.2
non imposta una velocità in bit predefinita.
Pertanto, il video non è più una semplice copia4%
dell'originale. Puoi verificarlo personalmente utilizzando il comando bash ls -a
nella cartella in cui si trovano i file multimediali.
Ad esempio:
/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
Per ottenere un file di piccole dimensioni, procedi nel seguente modo:
/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
Controlla il tuo lavoro
Per verificare i risultati, utilizza FFmpeg e Shaka Packager come già mostrato in Nozioni di base sulle applicazioni multimediali:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
Codec
Poi il codec. Come indicato nella sezione Nozioni di base sui file multimediali, un codec non è la stessa cosa di un contenitore (tipo di file). Due file dello stesso tipo di contenitore possono contenere dati compressi utilizzando codec diversi. Ad esempio, il formato WebM consente di codificare l'audio utilizzando Vorbis o Opus. Per modificare il codec, utilizziamo FFmpeg. Ad esempio, questo comando genera un file .mkv
con un codec audio vorbis
e un codec video av1
.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
In questo esempio, il flag -c:a
e -c:v
servono rispettivamente per specificare i codec audio e video.
La pagina Conversione multimediale elenca i comandi necessari per convertire i codec. Le tabelle riportate di seguito riepilogano le librerie utilizzate in FFmpeg per eseguire le conversioni dei codec per i file WebM e MP4. Questi sono i formati consigliati rispettivamente per DASH e HLS.
Video
Codec | Estensione | Raccolta |
---|---|---|
av1 | WebM, mkv | libaom-av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx-vp9 |
Audio
Codec | Estensione | Raccolta |
---|---|---|
aac | MP4 | aac |
opus | WebM | libopus |
vorbis | WebM | libvorbis |
A questo punto, ti mostreremo come modificare il bitrate dei file appena creati.