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 :
- Silverlight Streaming 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 7 Media Pack che offre nuove funzionalità ad IIS7 per gestire gli scenari di download progressive , da poco disponibile nella versione finale.
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 Media Pack per IIS7 troviamo le funzionalità di BitRate 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 è la seguente:
- .asf
- .avi
- .flv
- .m4v
- .mov
- .mp3
- .mp4
- .rm
- .rmvb
- .wma
- .wmv
E' possibile estendere il Media Pack per supportare ulteriori formati.
Per installare il MediaPack Bit Rate Throttling potete trovare qui il setup:
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;
E l'ho pubblicato con la funzionalità di throttling disabilitata a livello del server web:
Di seguito potete vedere l'andamento del consumo di banda realizzato durante la riproduzione del video:
Il Media Pack per configuare il Bit Rate Throttling offre una interfaccia completamente integrata nell'ambiente di amministrazione di IIS7
Dall'interfaccia provvedo ad abilitare la funzionalità :
ed in particolare di seguito vediamo la configurazione impostata per i file di tipo .wmv:
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:
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 IIS7 all'interno del Media Pack 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 .