Per supportare più browser, devi utilizzare FFmpeg per convertire il tuo file .mov
in due container diversi: un container MP4 e un container WebM. In pratica, è probabile che tu debba specificare un codec nello stesso momento. Per ora, lasciamo che FFmpeg utilizzi i valori predefiniti.
Se non hai mai utilizzato questi concetti, prima di proseguire, leggi Nozioni di base sui file multimediali. Inoltre, se FFmpeg non è installato, leggi le nozioni di base dell'applicazione multimediale per configurarlo con Docker.
Stiamo utilizzando l'installazione Docker suggerita e il file glocken.mov di Prepara i file multimediali per il web aggiunti 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 container a partire dal file .mov
con le estensioni dei file .mp4
e .webm
e con uno stream audio e video all'interno del file.
Consulta le nozioni di base sui file multimediali per ulteriori informazioni su container e stream se non conosci le differenze.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
La creazione di WebM richiede più tempo rispetto a MP4. Ciò non sorprende se si
esaminano i risultati. Mentre il formato MP4 viene compresso a circa 83%
delle dimensioni del file originale, WebM è inferiore a 78%
rispetto alle dimensioni dell'originale, ma può essere molto più piccolo.
I risultati varieranno. È importante tenere presente che FFmpeg 4.2.2
ha impostato
la velocità in bit predefinita del video su 200k
e che in 4.3.2
non ne imposta una predefinita.
Pertanto, il video non è più una semplice4%
rappresentazione dell'originale. Puoi verificarlo autonomamente utilizzando il comando bash ls -a
nella cartella in cui si trovano i tuoi 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 dimensioni ridotte, devi procedere 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 nelle 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 container
possono contenere i dati compressi con 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 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, i flag -c:a
e -c:v
servono a specificare rispettivamente i codec audio e video.
La pagina Conversione di contenuti multimediali elenca i comandi necessari per convertire i codec. Le tabelle riportate di seguito riepilogano 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 |
Ora ti mostreremo come modificare la velocità in bit dei file appena creati.