# Dynamic Adaptive Streaming over HTTP

Dynamic Adaptive Streaming over HTTP (DASH), noto anche come MPEG-DASH, è una tecnica di streaming con bitrate adattivo che permette lo streaming di contenuti multimediali su Internet tramite server web HTTP convenzionali. In modo simile a HTTP Live Streaming (HLS), DASH suddivide il contenuto in una sequenza di piccoli segmenti, che vengono serviti tramite HTTP. Ogni segmento contiene un breve intervallo del contenuto, che complessivamente può durare molte ore come film o trasmissioni in diretta. Il contenuto viene offerto con diversi bitrate. Mentre il contenuto viene riprodotto, il client utilizza un algoritmo di adattamento del bit rate (ABR) per selezionare automaticamente il segmento con il bitrate più alto possibile che può essere scaricato in tempo per la riproduzione senza causare interruzioni nella riproduzione o re-buffering degli eventi nella riproduzione. Pertanto, un client MPEG-DASH può adattarsi alle mutevoli condizioni delle reti e fornire una riproduzione di alta qualità con pochi blocchi o eventi di re-buffering.
DASH è il primo protocollo di streaming ABR basata su HTTP a diventare uno standard internazionale. DASH non è un protocollo di trasporto: il protocollo di trasporto utilizzato da MPEG-DASH è TCP. L'obiettivo di DASH è riutilizzare l'infrastruttura dei server HTTP esistenti senza mettere in piedi nuove infrastrutture. I fruitori dei servizi DASH sono televisori connessi a Internet, set-top box, desktop, smartphone, tablet e permette loro di ricevere contenuti multimediali come video, Televisioni, radio) forniti tramite Internet, in condizioni di rete non prevedibili. La standardizzazione ha lo scopo di garantire a utenti, fornitori di contenuti e produttori di apparecchiature che la soluzione può essere adottata per l'implementazione universale, rispetto a soluzioni simili ma proprietarie come Smooth Streaming di Microsoft o HDS di Adobe. A differenza di HDS o Smooth Streaming, DASH è codec-agnostico, il che significa che può utilizzare contenuti codificati con qualsiasi formato di codifica, come H.265, H.264, VP9, ecc

## Standardizzazione

MPEG-DASH è stata sviluppata tramite MPEG . Il lavoro su DASH è iniziato nel 2010, è diventata una bozza di norma internazionale nel gennaio 2011 e una norma internazionale nel novembre 2011. Lo standard MPEG-DASH è stato pubblicato nell'aprile 2012 ma è stato rivisto nel 2019 e poi ancora una volta nel 2022 come .
DASH ha la funzione di Adobe Systems HTTP Dynamic Streaming, Apple Inc. HTTP Live Streaming (HLS) e Microsoft Smooth Streaming. DASH si basa su Adaptive HTTP streaming (AHS) nella versione 3GPP 9 e su HTTP Adaptive Streaming (HAS) nella versione Open IPTV Forum 2. Nell'ambito della collaborazione con MPEG, 3GPP Release 10 ha adottato DASH (con codec e modalità operative specifici) per l'utilizzo su reti wireless.
MPEG-DASH è integrato in altri standard, ad esempio MPEG-DASH è supportato in HbbTV (a partire dalla versione 1.5).

## Implementazioni

MPEG-DASH è supportato nativamente su Android tramite ExoPlayer, su Samsung Smart TV 2012+, LG Smart TV 2012+, Sony TV 2012+, Philips NetTV 4.1+, Panasonic Viera 2013+ e Chromecast. YouTube e Netflix supportano MPEG-DASH.
Sebbene DASH non sia supportato direttamente in HTML5, esistono implementazioni JavaScript che ne consentono l'utilizzo nei browser Web tramite HTML5 Media Source Extensions (MSE).

### Client e librerie

* Shaka Player è il lettore video DASH HTML5 open source di Google per connessioni a banda stretta.
* Il framework multimediale GStreamer supporta MPEG-DASH e WebM DASH almeno dalla versione 1.4.
* La libreria open source libdash è indipendente dalla piattaforma e funziona su piattaforme mobili come Android e iOS.
* VideoJS è un lettore video HTML5 open source, supporta HLS, DASH, WebM e MP4 progressivo per lo streaming live e VOD.

### Servizi

* Akamai supporta DASH.
* Amazon CloudFront supporta DASH.
* Amazon Web Services Elastic Transcoder supporta MPEG-DASH.
* Azure supporta MPEG-DASH.