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 specificherai 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.
Stiamo usando l'installazione Docker suggerita e il file glocken.mov di Preparare i file multimediali per il web aggiunto alla 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 è sorprendente se guardi i risultati. Sebbene MP4 si comprima 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 variano. È 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 container (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 cambiare il codec
usiamo FFmpeg. Ad esempio, questo comando restituisce 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 di contenuti multimediali elenca i comandi necessari per convertire i codec. Le tabelle riportate di seguito riassumono le librerie utilizzate in FFmpeg per eseguire le conversioni del 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.