Wahlpflichtfach Streaming Media In dem Wahlpflichtfach Streaming Media beschäftigen sich verschiedene Gruppen von Studierenden mit unterschiedlichen Streaming-Technologien. Angefangen bei den Lösungen von Microsoft, Real, Apple, Adobe bis zu OpenSource-Varianten werden alle Szenarien aufgebaut und evaluiert. Da jede Technologie ihre Vor- und Nachteile hat, werden klar definierte Szenarien nachgebaut, die es ermöglichen anschließend alle aufgebauten Lösungen objektiv zu vergleichen. So lässt sich in späterer Praxis je nach Anforderungen die optimale Lösung auswählen. Aufbau der Szenarien: Aufgabe 1: Bauen Sie folgende Lösung auf und beschreiben Sie sie genau: Encoder (auf Messe) mit dynamischer IP-Adresse.Server mit fixer Adresse - kann vom Encoder erreicht werden, aber Encoder kann vom Server nicht erreicht werden. Clients verbinden sich zum Server und bekommen den Stream. Lösung: Wir geben dem Server eine fixe IP Adresse. Rechter Mausklick auf Publishingspoint --> Publishingpoint hinzufügen (Assistent)... Wahlpflichtfach Streaming-Media Seite 1 von 35
Wahlpflichtfach Streaming-Media Seite 2 von 35
Wahlpflichtfach Streaming-Media Seite 3 von 35
Wahlpflichtfach Streaming-Media Seite 4 von 35
Da er Push sein soll gehen wir im eben erstellen Publishingpoint auf die Registerkarte Quelle und wählen unter Inhaltsquelle den Button Ändern... und wählen im nachfolgenden Fenster Push* Fertig Wahlpflichtfach Streaming-Media Seite 5 von 35
Encoder Wir haben den Encoder geöffnet und mittels den Assistenten zum Erstellen eines Broadcast a live event gestartet. Danach haben wir alle nötigen Einstellungen wie das Auswählen des Video und Audiogerätes, die Broadcastmethode Push und folgende Einstellungen vorgenommen: Danach immer auf Weiter klicken und am Schluss das Häkchen bei Und Fertig klicken. Nun verbindet sich der Encoder mit dem Server und startet den Publishingpoint Vorteile: Es ist prinzipiell einfach Es ist für Streaming in einer Microsoft Serverumgebung sicher die einfachste und effizienteste Lösung Nachteile: Es ist von Microsoft Der Stream kann nur von Playern empfangen werden die das Windows Streaming Format auch unterstützen Probleme: Der Standardport 8080 welcher zum pushen zum Server verwendet wird ist gleichzeitig derselbe Port wie der den ein Webserver verwenden würde, wenn wir einen hätte. Würden wir auch noch einen Webserver installieren wollen müsste man den Port für das Streaming am Server ändern. Das geht folgendermaßen: Falls Sie Windows Media-Dienste zum Ausstrahlen von Inhalt per Hypertext Transfer-Protokoll (HTTP) auf einem Webserver einrichten möchten, auf dem IIS ausgeführt wird, versuchen beide Dienste, eine Bindung zum Port 80 herzustellen. Dieser Konflikt lässt sich jedoch vermeiden, indem der von Windows Media-Dienste für die HTTP-Ausstrahlung Port geändert wird: 1. Klicken Sie im Windows Media-Dienste-Snap-In auf den Server, für den Sie den für HTTP-Ausstrahlung zugewiesenen Port ändern möchten. Wahlpflichtfach Streaming-Media Seite 6 von 35
2. Klicken Sie im Detailfenster auf die Registerkarte Eigenschaften. 3. Klicken Sie unter Kategorie auf Steuerungsprotokoll. 4. Klicken Sie in Plug-In auf WM-HTTP-Serversteuerungsprotokoll und anschließend auf Eigenschaften. 5. Falls auf Ihrem Server mehrere IP-Adressen verfügbar sind, klicken Sie unter IP- Adresse auf Ausgewählte IP-Adressen zur Verwendung dieses Protokolls zulassen, und klicken Sie dann in der Liste auf die IP-Adressen, die Sie verwenden möchten. 6. Klicken Sie in Portauswahl auf Anderen Port verwenden, und geben Sie dann im entsprechenden Feld die zu verwendende Portnummer ein. HTTP-Portnummern können zwischen 1 und 65535 liegen. 7. Klicken Sie im Detailfenster in Plug-In auf WM-HTTP- Serversteuerungsprotokoll. Klicken Sie auf Aktivieren, um das HTTP-Protokoll für das Ausstrahlen von Inhalt von Ihrem Server zur Verfügung zu stellen. 8. Bitten Sie den Netzwerkadministrator, den betreffenden Port auf dem Netzwerkfirewall zu öffnen. Anwendbarkeit/Fazit: War einfach zu realisieren, auch wenn man doch oft in kleine Fallen tappt. Wahlpflichtfach Streaming-Media Seite 7 von 35
Aufgabe 2: Bauen Sie folgendes Szenario auf und dokumentieren Sie den Aufbau genau: 1 Encoder, 1 Server, 5 simultane Clients (im IM-Lab) Lösung: Als erstes muss wieder im Encoder eine neue Live-Sitzung gestartet werden, wo dann bei diesem Fenster wieder die jeweiligen Aufnahmegeräte ausgewählt werden müssen. Wahlpflichtfach Streaming-Media Seite 8 von 35
Punkt: ; Auf einen Windows Server übertragen auswählen Servernamen und Publishingpoint angeben. Wahlpflichtfach Streaming-Media Seite 9 von 35
Gewünschte Übertragungsrate auswählen. Dann immer weiter klicken bis zum nächsten Fenster. Hier einfach Häkchen bei Übertragung reinmachen fertig. Wahlpflichtfach Streaming-Media Seite 10 von 35
Windows Media Player: Unter Datei Url öffnen die Url eingeben. Server Unter den Windows Media Diensten beim Punkt Publishingpoint Rechtsklick auf Publishingpoints und PP hinzufügen auswählen mit Assistent. Wahlpflichtfach Streaming-Media Seite 11 von 35
Hier jetzt den Namen des gewünschten neuen Publishingpoints angeben. Wahlpflichtfach Streaming-Media Seite 12 von 35
Hier ist es wichtig den Punkt Livedatenstrom auszuwählen, da wir ja eine Liveübertragen haben wollen. Wahlpflichtfach Streaming-Media Seite 13 von 35
Weiter Klicken. Hier den Punkt Unicast auswählen. Wahlpflichtfach Streaming-Media Seite 14 von 35
Hier nun die Adresse des Streams angeben von dem aus gestreamt wird also in unserem Fall stream01:8080. Wahlpflichtfach Streaming-Media Seite 15 von 35
Hier einfach Einstellungen belassen und auf weiter klicken. Häkchen entfernen und auf fertig stellen klicken. Wahlpflichtfach Streaming-Media Seite 16 von 35
Vorteile: Vorteile decken sich mit Aufgabe 1 Nachteile: Nachteile decken sich mit Aufgabe 1 Probleme: Auch hier decken sich die Probleme mit Aufgabe 1 Anwendbarkeit/Fazit: Einfach aufzubauen, trotz mancher Schwierigkeiten empfehlenswert. Wahlpflichtfach Streaming-Media Seite 17 von 35
Aufgabe 3: Video mitschneiden: a) am Encoder b) am Server c) am Client (Stream mitschneiden, eventuell Zusatzsoftware?) Lösung: Server: Nach vorher erfolger Aktivierung des Publishingpointes den Punkt links markieren, im Auswahlfenster rechts auf Eigenschaften Archivieren und dann im aktivieren Punkt in der Liste mit Rechtsklick auf Eigenschaften und Speicherpfad angeben. Wahlpflichtfach Streaming-Media Seite 18 von 35
Encoder Als erstes muss wieder im Encoder eine neue Live-Sitzung gestartet werden, wo dann bei diesem Fenster wieder die jeweiligen Aufnahmegeräte ausgewählt werden müssen. Screenshot dient nur zur Anschauung. Im normalfall werden hier die angesteckten Geräte (Webcam und Mikro) angezeigt. Wahlpflichtfach Streaming-Media Seite 19 von 35
Punkt: ; Auf einen Windows Server übertragen auswählen Servernamen und Publishingpoint angeben. Wahlpflichtfach Streaming-Media Seite 20 von 35
Um aufzuzeichnen bei diesem Fenster einfach das Häkchen anklicken. Wahlpflichtfach Streaming-Media Seite 21 von 35
Gewünschte Übertragungsrate auswählen. Dann immer weiter klicken bis zum nächsten Fenster. Hier einfach Häkchen bei Übertragung reinmachen fertig. Wahlpflichtfach Streaming-Media Seite 22 von 35
VLC-Player als Archivierungssoftware: Unter VLC Datei Netzwerkstream öffnen Punkt Netzwerk Häkchen bei Stream/Sichern machen und dann auf Einstellungen klicken. Wahlpflichtfach Streaming-Media Seite 23 von 35
Bei Einstellungen Häkchen bei Datei angeben und dann entsprechenden gewünschten Speicherort angeben. Vorteile: Ebenfalls einfach und schnell zu realisieren. Nachteile: Der Windows Media Player unterstützt das mitschneiden nicht, es ist zusätzliche Software erforderlich (in diesem Fall der VLC Player) Wahlpflichtfach Streaming-Media Seite 24 von 35
Probleme: Standardmäßig unterstützt der Media Player nicht da mitschneiden, der VLC Player schafft hier als Freeware Abhilfe ist aber eine Zusatzsoftware die man braucht. Anwendbarkeit/Fazit: Einfach aufzubauen, trotz mancher Schwierigkeiten empfehlenswert. Wahlpflichtfach Streaming-Media Seite 25 von 35
Aufgabe 4: Skalierbarer Stream mit mindestens 3 Qualitäten/Bitraten gleichzeitig. Wie funktioniert die Verhandlung über die Bitrate zwischen Client und Server? Beschreiben Sie! Lösung: Die Bitraten können im Encoder eingestellt werden. Hier wählen wir VBR für Video und Audio. Dadurch werden mehrer Bitraten in einem Stream codiert. Vorteile: Client und Server handeln sich beim Verbinden die optimale Bitrate für die Netzwerkanbindung des Clients aus, somit wird nur dieser Teil übertragen. Es wird dadurch vermieden, dass der Stream ruckelt. Sinkt während der Übertragung der Netzwerkdurchsatz wird automatisch auf eine geringe Bitrate umgeschaltet. Diese Technik nennt sich Intelligent Bandwidth Control Hört der Server auf Videoframes zu senden, versucht der Client weiterhin zumindest den Audio Stream aufrecht zu erhalten. Quelle (http://www.microsoft.com/windows/windowsmedia/howto/articles/intstreaming.aspx) Nachteile: Keine Bekannt Probleme: keine bekannt Anwendbarkeit/Fazit: Diese Technik hat einen sehr hohen Nutzbarkeitsfaktor und optimiert die Übertragung eines Streams. Sie sollte bei jeder Übertragung auf jeden Fall eingesetzt werden. Wahlpflichtfach Streaming-Media Seite 26 von 35
Aufgabe 5: Bauen Sie folgendes Szenario auf und dokumentieren Sie den Aufbau genau: mehr als ein Encoder auf einer Maschine! (min. 2 Kameras auf einem PC)? Geht das mit Ihrer Technologie? Lösung: Wir starten einfach 2 Windows Media Encoder, mangels einer 2ten Kamera senden wir einen Webcam Stream und eine Videodatei bzw. den Stream einer über Firewire angeschlossenen Kamera. Am Server werden dafür 2 Publishing Points benötigt. Der 1ste Encoder sendet den Stream mittels Push an streaming01:8080 an den Publishing Point streaming1 Der 2te Encoder sendet den Stream mittels Push an streaming01:8080 an den Publishing Point streaming2 Vorteile: Gleichzeitiges senden von 2 Streams über einen Pc auf dem 2 Encoder parallel laufen. Nachteile: -- Keine bekannt Probleme: Treiberkonflikt bei Benutzung 2er Creative Labs Webcams, daher war dies nicht durchführbar. Jedoch wäre dies z.b mit einer Kamera die über Firewire angeschlossen wird möglich. Anwendbarkeit/Fazit: Abschließend lässt sich sagen, dass dies eine gute Möglichkeit ist 2 verschiedene Streams paralell zu übertragen ohne einne 2ten PC dafür zu benötigen. Wahlpflichtfach Streaming-Media Seite 27 von 35
Aufgabe 6: Stellen Sie sich vor: Sie wollen eine LIVE-Sendung um 17 Uhr beginnen lassen - vor 17 Uhr soll aber bereits etwas gesendet werden - zb ein Standbild mit der Programmvorschau. Wenn sich Clients vor 17 Uhr zum Stream verbinden, sollen Sie dieses Standbild (oder noch schöner ein vorgegebenes Video im Loop) sehen. Wenndie LIVE-Übertragung beginnt soll der Client diese sofort anzeigen - ohne dass er sich neu verbinden muss! Lösung: Der Windows Media Server bzw. der Media Encoder kann nicht Zeitgesteuert senden. Deshalb: Realisierung der Zeitsteuerung mittels JavaScript. Gesamter Quelltext <html> <head> <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8"> <title>streaming Windows Media Server</title> <script> url1="mms://10.1.20.27/streaming1"; url2="trailer_c_high.wmv"; player1="video1"; var oplayer; var stream=true; var playerstart=true; function initvideo() { var Jetzt = new Date(); var Stunden = Jetzt.getHours(); var Minuten = Jetzt.getMinutes(); if (Minuten>=17) { //HIER DIE ZEIT AENDERN!!!!!!! oplayer=document.getelementbyid(player1); oplayer.url=url1; oplayer.reload(); oplayer.controls.play(); } else { settimeout("initvideo()", 1000); if(playerstart==true){ playerstart=false; oplayer=document.getelementbyid(player1); oplayer.url=url2; Wahlpflichtfach Streaming-Media Seite 28 von 35
} oplayer.controls.loop();}} </script> </head> <body topmargin="0" leftmargin="0" onload="initvideo();" scroll="no"> <div align="center"> <h1> Streaming Windows Media </h1> <p> Live Stream ab 12:00 Uhr </p> <p align="center"> <OBJECT CLASSID="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" ID="video1" height="240px" width="320px"> <PARAM NAME="Name" VALUE="WMP1"> <PARAM NAME="Loop" VALUE="1"> <PARAM NAME="URL" VALUE=""> <PARAM NAME="uimode" VALUE="none"> <PARAM NAME="windowlessVideo" VALUE="true"> </OBJECT> </div> </body> </html> Funktion für Zeitsteuerung im Detail Die Funktion wird beim ersten Laden der Seite mittels <body onload= initvideo() > aufgerufen. Die Videos zwischen denen hin und her gesprungen wird: url1="mms://10.1.20.27/streaming1"; url2="trailer_c_high.wmv"; Stunden und Minuten aus der aktuellen Systemzeit auslesen: var Jetzt = new Date(); var Stunden = Jetzt.getHours(); var Minuten = Jetzt.getMinutes(); IF-Anweisung Die Übertragung soll um 17:00 Uhr beginnen. Nach 17:00 Uhr wird die URL unseres LiveStreams in den Player geladen und auf Wiedergabe gesetzt (play). if (Stunden>=17 && Minuten>=0) { oplayer=document.getelementbyid(player1); oplayer.url=url1; Wahlpflichtfach Streaming-Media Seite 29 von 35
} oplayer.reload(); oplayer.controls.play(); Vor 17:00 wird ein Testvideo statt des Streams angezeigt; dieser wird mit der Else Bedingung geladen. Mittels loop wird das Video dann solange wiederholt bis die Bedingung nicht mehr zutrifft (also nach 17:00 Uhr). Um ständig die aktuelle Systemzeit zu haben ruft sich die Funktion jede Sekunde selbt neu auf (settimeout("initvideo()", 1000)). else { } settimeout("initvideo()", 1000); if(playerstart==true){ playerstart=false; oplayer=document.getelementbyid(player1); oplayer.url=url2; oplayer.controls.loop();}} Einbindung des Videos im Body <OBJECT CLASSID="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" ID="video1" height="240px" width="320px"> <PARAM NAME="Name" VALUE="WMP1"> <PARAM NAME="Loop" VALUE="1"> <PARAM NAME="URL" VALUE=""> <PARAM NAME="uimode" VALUE="none"> <PARAM NAME="windowlessVideo" VALUE="true"> </OBJECT> Vorteile: Erweiterbar Zeitgesteuertes Streaming funktioniert obwohl der Server dies nicht unterstützt. Es wäre auch eine Serverseitiges Script möglich was dafür sorgen würde, dass man den Zeitpunkt ändern könnte am Server und man sich damit arbeit erspart, da man es nicht extra bei den Clients noch ändern müsste. Wurde aber in diesem Fall nicht gemacht, da hiermit die Aufgabenstellung auch erfüllt wird. Nachteile: Uhrzeit wird nur vom Clientrechner abgefragt, da JavaScript nur Clientseitig ist. Wenn sich der Server in einer anderen Zeitzone befindet kann der Client die Übertragung nicht zur gewünschten Zeit starten. Probleme: Uhrzeit wird nur vom Clientrechner abgefragt, da JavaScript nur Clientseitig ist. Wenn sich der Server in einer anderen Zeitzone befindet kann der Client die Übertragung nicht zur gewünschten Zeit starten. Anwendbarkeit/Fazit: Wahlpflichtfach Streaming-Media Seite 30 von 35
Anwendbar ist das JavaScript generell so gut wie überall, jedoch macht es nur Sinn wenn es keine weltweite Übertragung ist. Geht die Übertragung über mehrere Zeitzonen ist diese Lösung nicht ausreichend. Wahlpflichtfach Streaming-Media Seite 31 von 35
Aufgabe 7: Gestalten Sie eine kleine statische Website, in der man verschiedene On-Demand Videos und auch einen LIVE-Stream auswählen kann. Es soll automatisch ein geeigneter Client geöffnet werden (möglichst User-friendly). Sie können sowohl Standard-Player verwenden als auch Plug-Ins. Zeigen Sie eventuelle Probleme mit Ihrer Lösung auf. Lösung: Es wurde eine kleine HTML Seite erstellt auf der sich Links zu den 3 Streams (1 mal Live, 2 mal Movie Trailer) befinden. Der Live Stream wurde wie gehabt als Push Connection initialisiert. Die Movie Trailer wurden mittels ondemand Publishing Points übertragen. Quelltext des html-files <html> <head> <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8"> <title>streaming Windows Media Server</title> </head> <body> <div align="center"> <h1> Streaming Windows Media </h1> <p> <a href="mms://streaming01:8080/streaming1">livestream</a></p><p> <a href="mms://streaming01:8080/ondemand3">ice Age Movie Trailer (ondemand)</a></p><p> <a href="mms://streaming01:8080/ondemand4">angel-a Trailer (ondemand)</a></p> </div> </body> </html> Die Webseite wird vom Client aufgerufen. Wird ein Link angeklickt öffnet sich der Windows Media Player und überträgt den Live Stream bzw. die gestreamten Trailer. Wahlpflichtfach Streaming-Media Seite 32 von 35
Encoder Der Encoder wird bei unserer Lösung nur für den Live Stream gebraucht. Mit welchen Eigenschaften der Encoder gestartet werden muss, ist bereits in den anderen Punkten beschrieben. Streaming Server Am Streaming Server wird für den Live Stream die gewohnte Push Verbindung gewählt. Diese wird hier nicht genauer beschrieben, da sie bereits in den vorhergehenden Punkten erklärt wurde. Für die übertragenen Videofiles benutzen wir einen ondeman Publishing point: ondemand3, ondemand4 Wahlpflichtfach Streaming-Media Seite 33 von 35
Beim Einrichten des Publishing Points darauf achten, dass die Quelle ein Videofile ist (also nicht wie sonst der Encoder). Die Videoquelle kann im Tab Quelle ausgewählt werden. Vorteile: Kleiner Quelltext Videos sind ondemand verfügbar Wahlpflichtfach Streaming-Media Seite 34 von 35
Kein Aufwand für den Client er muss nur Links anklicken Nachteile: Es können nur Dateien die vom Windows Server unterstützt werden mit dieser Lösung ondemand zur Verfügung gestellt werden. (keine.mov bzw.flv Dateien) Probleme: Formate die der Windows Server nicht unterstützt können nicht übertragen werden. Apple Quick Time oder Flash müssen mit anderen Technologien gestreamt werden. Anwendbarkeit/Fazit: Gute Lösung für alle gängigen Videoformate (avi, mpg, wmv). Jedoch leider keine Lösung für.mov oder.flv Dateien. Wahlpflichtfach Streaming-Media Seite 35 von 35