Negli ultimi anni, la fruizione di contenuti multimediali su Internet è diventata un fenomeno di notevole importanza per il numero di utenti coinvolti e, soprattutto, per la quantità di traffico generato. Il video streaming, in particolare, costituisce la parte più significativa del traffico totale. Al giorno d’oggi, è facile pensare a contenuti sportivi o, più in generale, a trasmissioni in diretta su Internet. La trasmissione di eventi è resa possibile grazie alla tecnologia LL-streaming). La maggior parte degli utenti usufruisce di questa tecnologia tramite browser, sfruttan do il protocollo HTTP; da questo scaturisce la necessità di sviluppare video player e algoritmi che permettano agli utenti la migliore esperienza di visione possibile del contenuto. Diverse piattaforme leader del settore come Amazon Prime Video, Twitch e YouTube investono da anni in ricerca in questo campo. Da questi presupposti nasce l’idea di questa tesi: sviluppare l’intera pipeline, dalla cattura del video, alla creazione del pacchetto del contenuto, fino alla riproduzione e alla raccolta delle statistiche in tempo reale dello stream, lato client. È stato inoltre sviluppato un ambiente di test che consente il confronto tra due algoritmi ABR, Dynamic ed Elastic, la raccolta dei dati in "ceteris paribus", la loro "pulizia" da outlier e la successiva visualizzazione. La catena di produzione è così composta: OBS cattura il contenuto, lo invia a uno script FFmpeg che codifica il video, i chunk vengono salvati su un server origin e, tramite una versione personalizzata di Videojs- un player open source compatibile con i principali formati (DASH e HLS)- si effettua la richiesta e la riproduzione dei chunk. Al player sono state apportate alcune modifiche per il testing e l’inclusione di nuove regole ABR. L’architettura progettata ha permesso una riproduzione fluida con una latenza in feriore ai 2s in locale. Inoltre, la fase di testing ha evidenziato punti di forza e criticità, da cui prendere spunto per eventuali sviluppi futuri, del player Video.js rispetto al Dash.js test player e nei due algoritmi di selezione del bitrate.
ARCHITETTURA DI UNA APPLICAZIONE DI LOW LATENCY STREAMING E ABRS RULES
CAFAGNO, VITO
2024/2025
Abstract
Negli ultimi anni, la fruizione di contenuti multimediali su Internet è diventata un fenomeno di notevole importanza per il numero di utenti coinvolti e, soprattutto, per la quantità di traffico generato. Il video streaming, in particolare, costituisce la parte più significativa del traffico totale. Al giorno d’oggi, è facile pensare a contenuti sportivi o, più in generale, a trasmissioni in diretta su Internet. La trasmissione di eventi è resa possibile grazie alla tecnologia LL-streaming). La maggior parte degli utenti usufruisce di questa tecnologia tramite browser, sfruttan do il protocollo HTTP; da questo scaturisce la necessità di sviluppare video player e algoritmi che permettano agli utenti la migliore esperienza di visione possibile del contenuto. Diverse piattaforme leader del settore come Amazon Prime Video, Twitch e YouTube investono da anni in ricerca in questo campo. Da questi presupposti nasce l’idea di questa tesi: sviluppare l’intera pipeline, dalla cattura del video, alla creazione del pacchetto del contenuto, fino alla riproduzione e alla raccolta delle statistiche in tempo reale dello stream, lato client. È stato inoltre sviluppato un ambiente di test che consente il confronto tra due algoritmi ABR, Dynamic ed Elastic, la raccolta dei dati in "ceteris paribus", la loro "pulizia" da outlier e la successiva visualizzazione. La catena di produzione è così composta: OBS cattura il contenuto, lo invia a uno script FFmpeg che codifica il video, i chunk vengono salvati su un server origin e, tramite una versione personalizzata di Videojs- un player open source compatibile con i principali formati (DASH e HLS)- si effettua la richiesta e la riproduzione dei chunk. Al player sono state apportate alcune modifiche per il testing e l’inclusione di nuove regole ABR. L’architettura progettata ha permesso una riproduzione fluida con una latenza in feriore ai 2s in locale. Inoltre, la fase di testing ha evidenziato punti di forza e criticità, da cui prendere spunto per eventuali sviluppi futuri, del player Video.js rispetto al Dash.js test player e nei due algoritmi di selezione del bitrate.I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14253/88040