Nozioni di base sui file multimediali

Derek Herman
Derek Herman
Joe Medley
Joe Medley

In questo articolo scoprirai le nozioni di base sui file multimediali, come i concetti di contenitore e alcuni dei numerosi formati di codec disponibili che puoi utilizzare in uno stream. Inoltre, parleremo brevemente di argomenti come lo streaming adattivo, la velocità in bit e la risoluzione, ma approfondiremo tutti questi aspetti nelle sezioni successive.

Pubblicazione di file video

Potresti pensare di poter acquisire un file non elaborato da una videocamera e caricarlo sul web così com'è. In effetti, i siti di streaming video come YouTube o Vimeo ti consentono di farlo e offrono anche funzionalità di live streaming, in genere collegandoti alla porta HDMI della videocamera e poi elaborando il file tramite una scheda di acquisizione. Questi servizi semplificano notevolmente l'elaborazione e il caricamento dei video, il che include la generazione dei numerosi file e manifest necessari per lo streaming adattivo e varie risoluzioni. Inoltre, ci sono molti altri requisiti complicati e sfumati che rendono l'hosting autonomo un po' complicato. Se ti interessa l'esperienza degli utenti sul tuo sito, preparare e pubblicare un video dal tuo sito e, probabilmente, da un media server separato è un po' più complicato rispetto al semplice caricamento di un file della fotocamera non elaborato.

I file video sono disponibili in vari formati. Il formato che esce dalla fotocamera è tipicamente un file .mov o .mp4 se hai una buona fotocamera mirrorless moderna. Tuttavia, sebbene un file .mov sia adatto per la registrazione, il montaggio e altre fasi iniziali della post-produzione, le dimensioni del file ne impediscono lo streaming sul web. Inoltre, le dimensioni del file di un .mp4 non elaborato in 4K rendono la riproduzione del file su dispositivi mobili molto proibitiva. Poiché i browser supportano formati di file diversi, dovresti creare più file ottimizzati e potenzialmente un file manifest se prevedi di supportare lo streaming adattivo. Prima di convertire i file, devi conoscere alcune nozioni di base su di essi e sulle relative caratteristiche.

Container, codec e stream?

Il file visualizzato nella shell del sistema operativo è un contenitore, identificata da un'estensione del file (.mp4, .webm, .ogg e così via). Il contenitore ospita uno o più stream. Un file multimediale può avere un numero qualsiasi di stream e molti più formati di quelli che esamineremo qui.

I file di esempio utilizzati più avanti in questa sezione contengono al massimo due stream: uno stream audio e uno stream video. Tra gli altri tipi che potresti riscontrare, rientrano i sottotitoli codificati e i dati, che non rientrano nell'ambito di questo articolo. Esistono casi in cui gli stream audio e video vengono gestiti separatamente. La maggior parte dei file che incontrerai conterrà un solo stream audio e un solo stream video.

All'interno degli stream audio e video, i dati effettivi vengono compressi utilizzando un codec. Un codec, o codificatore/decodificatore, è un formato di compressione per i dati video o audio. La distinta tra un contenitore e un codec è importante perché i contenuti dei file con lo stesso contenitore possono essere codificati con codec diversi.

L'immagine seguente illustra questa struttura. A sinistra è presente la struttura di base del contenitore con due stream. A destra sono riportate le specifiche di questa struttura per un singolo file WebM.

Confronto della struttura del file multimediale con un file multimediale ipotetico.
Parti di un file multimediale.

I file nei contenitori WebM possono essere di dimensioni molto inferiori rispetto ad altri formati, pertanto sono una buona scelta per lo streaming dei siti mobile. Purtroppo, non tutti i browser supportano contenitori e codec aggiornati. Ad esempio, WebM è stato creato specificamente per il web come opzione open source di alta qualità, ma il suo supporto non è ancora universale. Safari in particolare, al momento di questa stesura, non supporta WebM per i video incorporati, come indicato nella pagina Posso utilizzare. Tuttavia, WebM ha un supporto parziale per il codec VP8 e VP9 utilizzato in WebRTC. Pertanto, la soluzione migliore è fornire un video di riserva.

Formati codec

Molti tipi di file supportano più codec all'interno dello stesso contenitore. Un elenco completo di codec video e codec audio disponibili potrebbe costituire un intero sito web. I link appena forniti rimandano agli elenchi pratici di MDN di ciò che è utilizzabile sul web. Di seguito sono elencati i tipi di file attualmente preferiti e i codec che potrebbero essere utilizzati. Segui i link dei tipi di file per visualizzare i browser che li supportano.

Tipo di file Codec video Codec audio
MP4 AV1, AVC (H.264)*, VP9 AAC
WebM AV1, VP9* Vorbis, Opus

* Indica il codec video preferito.

Velocità in bit e risoluzione

Il bitrate è il numero massimo di bit utilizzati per codificare un secondo di uno stream. Maggiore è il numero di bit utilizzati per codificare un secondo di stream, maggiore è il potenziale dettaglio e la fedeltà. Forniamo maggiori informazioni su questo concetto in Velocità in bit.

La risoluzione è la quantità di informazioni in un singolo fotogramma di video, espressa come numero di pixel logici in ogni dimensione. Forniamo maggiori informazioni su questo concetto in Risoluzione.

Nella sezione successiva, Nozioni di base sulle applicazioni multimediali, ti mostreremo come esaminare queste caratteristiche utilizzando due strumenti a riga di comando: Shaka Packager e FFmpeg.