Per supportare più browser, devi utilizzare FFmpeg per convertire .mov
in due diversi container: un container MP4 e un container WebM. Nel
nella pratica, probabilmente specificherai
un codec nello stesso momento. Per il momento,
consentiamo a FFmpeg di usare le sue impostazioni predefinite.
Se non conosci questi concetti, ti consigliamo di leggere Nozioni di base sui file multimediali prima di andare oltre. Inoltre, se FFmpeg non è installato, Nozioni di base sulle applicazioni multimediali per configurarlo con Docker.
Stiamo usando l'installazione e l'uso di Docker suggerite
il file glocken.mov di Preparare i file multimediali per il web
aggiunto all'interno della directory media
. Abbiamo usato FFmpeg versione 4.3.2 per tutti i
i comandi SQL in questa sezione.
Container
Innanzitutto, dobbiamo creare i due container dal file .mov
con l'elemento .mp4
e .webm
con uno stream audio e video all'interno del file.
Consulta le nozioni di base sui file multimediali
per ulteriori informazioni su container e flussi di dati, se non conosci la differenza
che li rappresentano.
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 quella in formato MP4. Non sorprende che tu osservi
i risultati. Mentre MP4 si comprime a circa 83%
della lunghezza del file originale
WebM è sceso al 78%
delle dimensioni dell'originale, ma può essere molto più piccolo.
I risultati variano. È importante ricordare che FFmpeg 4.2.2
ha impostato
la velocità in bit predefinita del video è 200k
, mentre 4.3.2
non imposta una velocità in bit predefinita.
Pertanto, il video non è più semplice4%
dell'originale. Puoi verificarlo in prima persona
utilizzando il comando bas 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 dimensioni ridotte, dovresti procedere in questo 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 sull'applicazione multimediale:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
Codec
Poi il codec. Come indicato nelle Nozioni di base sui file multimediali, un codec
non è la stessa cosa di un container (tipo di file). Due file dello stesso container
potrebbe contenere dati compressi utilizzando codec diversi. Il formato WebM, ad esempio
consente di codificare l'audio utilizzando Vorbis oppure Opus. Per cambiare il codec
utilizzare FFmpeg. Ad esempio, questo comando restituisce un file .mkv
con un 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
consentono di specificare l'audio e
codec video.
La pagina Conversione di contenuti multimediali elenca necessari per convertire i codec. Nelle tabelle seguenti sono riepilogate le librerie utilizzate in FFmpeg per eseguire le conversioni codec per i file WebM e MP4. Queste sono le 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 |
opera | WebM | libopus |
Vorbis | WebM | libvorbis |
Ora ti mostreremo come modificare la velocità in bit dei file appena creati.