blog.atwork.at

news and know-how about microsoft, technology, cloud and more.

Streaming Video mit IIS7 - Teil 1 Video Encoding

“Gehns, stellens mir doch schnell das Video rauf!” oder so ähnlich bekommt ein IT-Admin oder IT-Dienstleister oftmals einen kleinen Auftrag von der Geschäftsleitung oder vom Kunden. Damit ist gemeint: Ich hab da ein Video bekommen, bitte kümmern Sie sich darum, dass es online angesehen werden kann und dass es funktioniert.

Hm, ein Video, ok… Könnte ein großes File mit vielen MB sein… Welches Format? Und mit welchem Player? Oder einfach per FTP oder HTTP zum Download stellen? Und was wenn der Download dann die anderen Webs auf dem Webserver verlangsamt oder blockiert? Muss dazu was programmiert werden?

Halt – die Lösung ist nahe:
Wenn man Windows Server 2008 und IIS7 als Webserver hat, braucht man nur noch Microsoft Expression Encoder auf dem Client installiert und ein paar kleine Schritte zur Lösung!
(Ich weiß, es gibt bereits Microsoft Expression Encoder 4 – aber diese Version ist noch nicht so weit verbreitet und auch auf meinem PC noch nicht installiert, daher wird es Version 3 auch tun ;-).

Mit Microsoft Expression Encoder kann mit ein paar Klicks ein Streaming Video mit Silverlight Player erstellt werden.

Streaming Video bedeutet, dass der Webserver immer nur Teile des Videos an einen Videoplayer in einer Webseite ausliefert. Damit wird Bandbreite gespart und die “User Experience” durch automatische Erkennung der Bandbreiten-Geschwindigkeit verbessert.
Es wird nur ausgeliefert, was und wie es vom Benutzer gebraucht wird – z.B. beim Klicken auf die Mitte des Videos wird der erste Teil nicht geladen.

iis_smooth_streaming_e_navigation

D.h. bei schneller Internet-Leitung erhält der Benutzer die bestmögliche Video-Qualität, sonst eine heruntergestufte Video-Qualität. Durch das Kodieren des Videos können die möglichen Bitrates selbst vorgegeben werden, dazu unten mehr.

In diesem kurzen step-by-step Artikel geht es nicht um die vielen Möglichkeiten von Expression Encoder zur Videobearbeitung, sondern nur darum, rasch aus einem Video-File ein Internet-taugliches “Streaming Video” zu erstellen.

Als Beispiel wird ein mit einer Flip-Cam aufgenommenes etwa eineinhalb minütiges Kurzvideo von Mary Joe Foley´s Session der #WPC10 verwendet. Also los gehts:

Schritt 1: Microsoft Expression Encoder 3 starten und in File / Import… und das Video-File auswählen:

iis_smooth_streaming_1_import

Schritt 2: In Register “Encode” das Output-Format “IIS Smooth Streaming” auswählen – hier rot markiert:

iis_smooth_streaming_2_output_format

Schritt 3 - Optional: Sie können auch selbst die gewünschten Kodierungen für verschiedene Bitrates vorgeben.

Erweitern Sie die Eigenschaft “Encoding for Silverlight”, “IIS Smooth Streaming” und wählen Sie bei den gewünschten Formaten im Kontextmenü “Apply to selected items” aus. Damit springt dieses Format nach unten in den “Video”-Bereich – oder Sie definieren selbst mit “+” ein eigenes Format. Nicht gewünschte Formate können mit dem Papierkorb-Symbol entfernt werden (alle wesentlichen Elemente sind rot markiert):

iis_smooth_streaming_g_bitrate 
Hier im Beispiel werden nur drei Video-Formate codiert (1,4MB, 688KB und 230KB).
Grundsätzlich genügen drei Formate (low – medium – high), jedoch lautet die Empfehlung, eher viele Versionen anzubieten: “…BUT it´ll make for more bitrate options for the player to choose and a MUCH better, smoother experience.”

Die user experience ist also weit höher, wenn eine möglichst passende Version für die aktuelle Bandbreite ge-streamed wird – das bedeutet natürlich mehr Versionen und höherer Aufwand beim Kodieren – zu mindestens ist der Aufwand einmalig und Expression Encoder macht das automatisch.

Schritt 4: Nun muss nur noch im Register “Output” das Player-Template “Smooth Streaming Graphing Player” ausgewählt werden (siehe wieder rote Markierung) – und in den Feldern darunter der Ausgabe-Dateiname und das Verzeichnis – nachdem mehrere Dateien erstellt werden, sollte es ein neues oder leeres Verzeichnis sein:

iis_smooth_streaming_4_player 

Schritt 5: Klick auf “Encode” am unteren Fensterrand.

iis_smooth_streaming_3_encode

Here we go! Das Encoding ins streaming WMV-Format für die verschiedensten Übertragungs-Geschwindigkeiten startet:

iis_smooth_streaming_5_running

Wenn das Kodieren fertig ist, öffnet sich automatisch der Browser und das Video kann getestet werden:

iis_smooth_streaming_7_finished

Das wars. Im Output-Verzeichnis wurden diese Files angelegt:

iis_smooth_streaming_8_files

Hier sind von Expression Encoder alle erforderlichen Files für das Streaming in unterschiedlichen Bitrates erstellt worden.

Anwender können den folgenden Teil File-Infos getrost überspringen. ;-)

[File-Infos]

Die *.ism* Dateien sind XML-Dateien. Hier eine kurze Erklärung dazu – wer tiefer gehen möchte, dem empfehle ich Scott Hanselman´s Artikel Installing and Setting Up and Encoding for IIS 7 Smooth Streaming and Silverlight.

In der <videofile>.ism Datei sieht man sehr schön die Einstellungen für die verschiedenen Transfer-Rates – nur für den Streaming Server erforderlich:

“Describes the relationships between media tracks, bitrates and files on disk. Only used by the IIS Smooth Streaming server – not by client”

In der <videofile>.ismc Datei stehen die verwendeten Codecs und beispielsweise die maximale Auflösungen des Players – dieses File wird zuerst zum Client geliefert:

“Describes to the client the available streams, codecs used, bitrates encoded, video resolutions, markers, captions, etc. It’s the first file delivered to the client”

iis_smooth_streaming_9_bitrate iis_smooth_streaming_9_ismc

Hint: Das “Smooth Streaming File Format” basiert auf dem ISO-standardisierten Base Media File Format (das ist das MP4 File Format, dieses folgt der ISO/IEC 14496-12 Spezifikation).

Bei Bedarf kann noch die default.html Datei angepasst werden, der wesentliche Teil ist die Einbindung des Silverlight Players MediaPlayerTemplate.xap und SmoothStreaming.xap, die ebenfalls im erzeugten Verzeichnis liegen.

iis_smooth_streaming_9_default

[End of File-Infos]

Das wars. Nun einfach das ganze erstellte Verzeichnis auf den IIS7 Webserver per FTP o.ä. uploaden.

In Teil Zwei gehts um die Konfiguration des IIS7 – das funktioniert noch einfacher. ;-)



Loading