Warum IIS? – Folge 9: “Ruckelfreie Videos” – adaptives, intelligentes http-Streaming zum Nulltarif!

Videos sind in – leicht zu konsumieren und eine willkommene Alternative zu statischen Texten.

Auch Konzernspitzen und Politiker haben dieses Medium für sich erkannt. Ab und an kommen Anfragen wie z.B. „wie bekomme ich die Neujahrs-Ansprache vom Chef unter die Angestellten?“ . Alles am besten schnell, unkompliziert und natürlich kostenlos. Gibt’s nicht? Gibt’s doch!:

IIS Smooth Streaming ermöglicht das unterbrechungsfreie Streaming von Videos auf Silverlight Player (und andere Clients) über HTTP, bis zu true HD. Adaptiv und intelligent deshalb, weil sich die Video-Qualität (Auflösung) fortlaufend je nach den Bedingungen beim Benutzer wie z.B. verfügbare Bandbreite anpasst für eine bestmögliche Wiedergabe.

Die Vorteile liegen klar auf der Hand:

  • Http ist zwar nicht das ideale Streaming-Protokoll aber dafür Firewall freundlich ;-)
  • Http ist cachebar d.h. anstatt die Medien als Mega Einzel Downloads oder persistente Streams den Clients anzubieten wird das Video als eine Reihe von MPEG-4 (MP4) Fragmenten übermittelt, die im Browsercache oder auf Proxies zwischengespeichert werden können.

Was ist zu tun?

image

Eine Frage noch: Retorte oder Live?

Mit IIS Smooth Streaming lassen sich sowohl Inhalte aus früher aufgezeichneten Videos (on demand) als auch Live Ereignisse ausliefern. Unterschiede ergeben sich dabei in der Phase Encode und Serve:

Beispiel: Für IIS Smooth Streaming Live-Übertragungen benötigt man neben leistungsfähiger Hardware Microsoft Expression Encoder 4 Pro – wobei für On demand IIS Smooth Streaming die kostenlose Variante Microsoft Expression Encoder 4 ausreicht. (Anm.: Es gibt auch noch andere Encoder)

Encode:

Die Vorgehensweise: In Microsoft Expression Encoder wählt man eine aufgezeichtete Video aus (import) und wählt aus den Voreinstellungen die Vorlage IIS Smooth Streaming. Unterstützt werden die Codecs VC-1 (Windows Media) oder H.264 (MPEG-4) und für beide Codec-Gruppen sind verschiedene Vorlagen vorhanden. Diese definieren Video und Audio Encoding Optionen welche z.B. die Anzahl der Bilder pro Sekunde, Länge mal Breite, Bitrate, usw. festlegen. Beim IIS Smooth Streaming werden aber nicht nur die Parameter für einen Stream sondern gleich für mehrere (wie hier z.B. 9) definiert. Die Streams unterscheiden sich in der Auflösung des Bildes und der Bitrate was Einfluss auf Bild-Qualität und Abspielverhalten (‚ohne ruckeln‘) hat.

Microsoft Expression Encoder 4 - Import for IIS Smooth Streaming

Nach dem Encodieren bekommt man folgenden Dateien:

Microsoft Expression Encoder 4 - output files (IIS Smooth Streaming) sample

Die Video Fragmente der einzelnen Streams wurden jeweils in eine .ismv Datei gepackt. Die Dateien .ism und .ismc enthalten Informationen über die Streams (Bitraten, u.a.) für Server und Client. Die anderen Dateien sind für den Client Silverlight Player relevant. Alle Dateien werden so auf den Webserver: IIS 7 kopiert.

Serve:

Der IIS7 braucht zum Smooth Streaming die IIS Media Services Erweiterung welche sich nach der Installation (z.B. über den Web Platform Installer) in die MMC einklinkt:

IIS7 - IIS Media Services 3.0 plugging into MMC

Die vom Encoder erhaltenen Dateien werden einfach as-is auf den Webserver in ein Webverzeichnis kopiert. Die Eigenschaften des Streams lassen sich dann einfach über Aufruf Smooth Streaming Presentations Menü-Punktes Aufrufen verfügbare Streams und Bitraten werden aus der *.ism Datei gelesen und angezeigt:

IIS7 configuring IIS Smooth Streaming (IIS MMC)

Damit hat der Webserver erstmal alles was er für die Auslieferung braucht.

Play:

Beim Encodieren wurde der „Smooth Streaming Graphing Player“ als Player Vorlage ausgewählt:

D.h. man bekommt in den Encoding-Projektordner auch gleich den Player in eine Testseite (default.html) embedded. Auf Clientseite reicht lediglich ein Aufruf der Url:

https://localhost/wwwroot/default.html:

ie playing a smooth stream

Clients | Player gibt es diverse auch zum Download z.B. https://www.iis.net/download/SmoothClient

 

Anmerkungen:

Auf Clientseite muss ein Browser vorhanden sein, der Silverlight unterstützt – bzw. Silverlight schon vorinstalliert ist wenn der Benutzer (z.B. im Unternehmen nicht die notwendigen Rechte dazu hat).

Ich denke der Invest Silverlight zu installieren lohnt sich: weil cool, wieder verwendbar, kostenlos, und auch nicht so schwer.

(Silverlight Install im Unternehmen auch via WSUS oder Gruppenrichtlinie möglich siehe: Silverlight Deployment Guide v2)

Viel Spaß beim testen.

 

IIS.net/media

IIS Smooth Streaming Deployment Guide