IIS7 e gli scenari video in progressive download

Una delle tendenze più rilevanti nell'evoluzione dei contenuti nel mondo del Web è sicuramente rappresentata dall'enorme crescita dei contenuti video che oramai sta investendo siti di ogni dimensione. Si va dalla possibilità di ospitare materiale video generato dagli utenti, news, film , trailer.

Erogare contenuti video è estremamente costoso in termini di consumo di banda e gli scenari attraverso i quali viene generalmente affrontata questa tematica sono essenzialmente di tre tipi:

- Hosting dei contenuti video presso strutture terze specializzate nella distribuzione di questo tipo di contenuti attraverso CDN (Content Delivery Network) specifiche

- Infrastruttura di streaming installata nella server farm

- Download progressive , ovvero distribuzione del file attraverso un server web

La piattaforma Microsoft offre una soluzione per tutti e tre gli scenari :

Windows Azure  che offre una CDN per la distribuzione di contenuti video e di applicazioni Silverlight in generale

- Windows Media Services per Windows Server 2008 che forniscono una piattaforma di streaming integrata in Windows Server con completo supporto per il DRM

IIS Media Services (noto in passato come  IIS 7 Media Pack ) che offre nuove funzionalità ad IIS7 per gestire gli scenari di download progressive , e anche le nuove forma di Streaming Adattativo in formato Smooth Sreaming live e on demand, con il supporto anche per la protezione con DRM e con la versione 4 anche lo streaming adattativo verso iPhone e iPad.

Uno degli scenari tipici, in particolare per la distribuzione di video di piccole dimensioni è  lo scenario di download progressive,  dove il file viene posizionato semplicemente sul server web, mentre lo streaming viene utilizzato in scenari più complessi o per scenari in cui vengono trasmessi video in diretta. Nel download progressive, non abbiamo le ottimizzazioni sulla banda offerte dal server di streaming , il consumo di banda è elevatissimo in quanto il server web effettua il download del file verso il player client utilizzatore, sfruttando completamente la banda disponibile, indipendentemente dal bit rate con cui il video è codificato per la visualizzazione. Inoltre, nella maggioranza dei casi, l'utente guarda solo i primi secondi del video che nel frattempo va in download a banda completa praticamente inutilmente. 

Nel nuovo IIS Media Services (noto in predenza come IIS Media Pack) troviamo le funzionalità di Bit Rate Throttling che consentono di gestire gli scenari di download progressive,  permettendo di ottimizzare il consumo di banda in modo configurabile sulla base del reale formato di codifica del file, ed a garantire un maggior numero di connessioni contemporanee possibili. Tra le caratteristiche fondamentali del nuovo supporto il media pack installa un modulo che permette di effettuare il download del file in base al bit rate di encoding. La risposta ed il funzionamento del modulo è completamente configurabile  dal livello del server web, fino ad arrivare al livello del singolo file.

La lista dei formati supportati dalla funzionalità di bitrate throttling  è la seguente:

  • .asf
  • .avi
  • .flv
  • .m4v 
  • .mov
  • .mp3
  • .mp4
  • .rm
  • .rmvb
  • .wma
  • .wmv

E' possibile estendere la funzionalità per supportare ulteriori formati. Per il supporto anche del formato .mp4 la funzionalità può essere usata anche per i file utilizzati dal tag video HTML5 .

Per installare il la funzionalità ed attivarla su IIS dovete installare IIS Media Services  installabile a partire da Windows Server 2008 e successivi.

Per dimostrare la funzionalità del media pack e la semplicità di configurazione ed utilizzo, ho effettuato un piccolo test installandomi una macchina di prova. Sulla root del sito ho posizionato un file di esempio;

image

E l'ho pubblicato con la funzionalità di throttling disabilitata a livello del server web:

image

image

Di seguito potete vedere l'andamento del consumo di banda realizzato durante la riproduzione del video:

image

Il Media Pack per configuare il Bit Rate Throttling offre una interfaccia completamente integrata nell'ambiente di amministrazione di IIS7

image

Dall'interfaccia provvedo ad abilitare la funzionalità :

image

ed in particolare di seguito  vediamo la configurazione impostata per i file di tipo .wmv:

image

Con la configurazione impostata , i primi 20 secondi necessari per l'avvio rapido del filmato verranno forniti a banda completa (FastStart) , successivamente il download avverrà al 100% (Throttle Rate) del bitrate di encoding del video che nel nostro esempio è di 300kps.

La funzionalità di Bit Rate Throttling può anche essere applicata ad altri tipi di contenuti , configurando la parte data dell'entry e stabilendo quindi il la banda assegnata per il download

Effettuado nuovamente il play del video l'andamendo del consumo di banda in questo caso avrà un andamento che è il seguente:

image

Contribuendo significativamente ad ottimizzare il consumo di banda , ed a garantire un maggior numero di connessioni contemporanee possibili.

Per uteriori informazioni vi suggerisco i seguenti walkthrough:

Tra le altre caratteristiche offerte da IIS Media Services all'interno vi segnalo anche la possibilità di costruire delle playlist server side anche per i contenuti in download progressive, funzionalità utile ad esempio  per costruire playlist introducendo contenuti pubblicitaril. Informazioni e Walkthrough di utilizzo qui .