Schlagwort-Archive: Live

links vom 29. Januar 2014

hier sind die Links (29. Januar 2014):

Podcast Live-Streaming

Seit kurzem bastel ich an einem Streaming-Setup für den Sneakpod. Ziel ist es die Sendungen live zu streamen, aber nach wie vor lokal aufzunehmen. Im Anschluß an die Live-Sendung steht die normale Nachbearbeitung um dann eine neue Podcast-Folge zu veröffentlichen. Dazu habe ich mich mal in Icecast und die Möglichkeiten vom Mac zu streamen vergraben möchte das derzeitige Setup kurz darlegen.

In der Artikelserie zum Thema Podcast-Setup habe ich das grundsätzliche Setup unseres Podcasts (aus damaliger Sicht) bereits dargelegt, bei Bedarf (schreibt Kommentare) werde ich da vielleicht nochmal ein Update geben, da sich schon einiges geändert hat.

Protokolle

Da ich erstmal das Thema Streaming überhaupt an den Start bringen wollte und mir das Thema HTTP-LiveStreaming zwar schon verlockend vorkam, aber dann doch (noch) sehr Apple-zentrisch ist, fiel die Wahl erstmal auf klassisches Icecast/SHOUTcast-Streaming. Das geht auch über HTTP, macht allerdings noch nicht so den ganzen modernen Foo mit unterschiedlichen Qualitätsstufen und ist natürlich auch nicht in der Lage als Nebenprodukt eine Re-Live-Möglichkeit abzuwerfen. Dafür gibt es für Icecast eine breite Unterstützung an Clients auf Hörerseite, dazu aber später mehr.

Audio-Formate

Eine Entscheidung für bestimmte Audioformate muss man an dieser Stelle noch nicht treffen, da sowohl HTTP-LiveStreaming, als auch Icecast-Streams in MP3, AAC und Vorbis streamen können. Jedoch habe ich mich entschlossen 2 Streams parallel anzubieten. Zu ersteinmal einen MP3-Stream und zum anderen einen AAC(HE)-Stream.

MP3-Stream

MP3 dürfte da draußen in der weiten Welt immer noch den kleinsten gemeinsamen Nenner darstellen wenn es um Massenkompatibilität geht, also müssen wir natürlich in MP3-Streamen. Um den Server bei mehr Hörern zu schonen streamen wir nur in Mono und zwar mit 64kBit/s (ABR).

AAC(HE)-Stream

Den AAC-Stream bieten wir mit niedrigerer Bitrate speziell mit Hintergedanken an Verbindungen mit sehr niedriger Bandbreite an. Solltet Ihr also beispielsweise vorhaben uns von unterwegs über UMTS (oder schlimmer), bespielsweise am Handy, zu hören dann ist dieser Stream mit nur 32kBit/s ABR der Richtige. Der Decoder den Ihr einsetzt sollte aber auf jeden Fall High Efficiency-AAC unterstützen, sonst klingt der Stream eher fürchterlich.

Server

Hardware und Bandbreite

Als Server verwenden wir unseren normalen Sneakpod.de-Server, auf dem auch dieses Blog läuft. Wieviele Hörer der aushält ist vorerst unbekannt. Je nachdem ob die Bandbreite oder die CPU-Last den Stream als erstes killt. Vorerst halten sich die Hörerzahlen unserer bisherigen Experimente stark in Grenzen und wir werden erstmal sehen müssen wie das weitergeht. Eine kleine Beispielrechnung sagt mir das man unseren beiden Streams (zusammen 96kBit/s) über 1000x parallel über eine 100MBit/s-Anbindung schieben könnte – ich gehe daher davon aus, dass der Server vorher an seinen eigenen Querelen (aka CPU-Last) eingeht.

Software

Der Server läuft, nach wie vor, unter CentOS und dort habe ich Icecast2 installiert. In der Datei /etc/icecast2.xml kann man nun so diverse Limits für den Server einstellen. Ich habe hier das meiste bei den Defaults belassen.

<clients>100</clients> limitiert uns erstmal auf 100 Zuhörer, keine Ahnung ob der Server das überhaupt mitmacht, aber bislang haben wir dieses Limit noch nicht erreicht – wenn es so kommt sehen wir weiter.

Die Zugangsdaten legt man im Bereich authentication fest, hier trägt man Usernamen und Passwörter für die Source-Clients ein, also die Daten, mit denen man sich später anmeldet um etwas über diesen Server zu streamen.

Im unteren Bereich der XML-Datei muss man noch die Pfade für’s webroot anpassen, damit Icecast seine eigenen Webseiten richtig ausliefern kann, man wählt sich einen Port ≠ 80 um dem normalen Webserver nicht auf die Füße zu treten.

Source-Clients

Unsere Audiodaten, also unser Podcast ensteht ja aber logischerweise nicht auf dem Server, sondern irgendwo im Studio und da haben wir maximal einen Laptop. Natürlich streamt man nicht von diesem Laptop zu allen Zuhörern, sondern von dort aus nur mit einem Stream zum Server und dieser verteilt den Stream an die Hörer. Wir sind also für den Server eine sogenannte Source, eine Quelle, und brauchen dafür eine Client-Software um den Icecast-Server zu füttern. Da ich den Stream mit einem Mac betreibe kommen eigentlich nur 2 Produkte in Frage: Ladiocast oder Nicecast. Ersteres ist eine kostenlose japanische Software, zweiteres ein Rogue Amoeba-Produkt das Geld kostet.

Ladiocast

Die Entscheidung fiel also erstmal auf Ladiocast und das muss man nun einrichten. Ladiocast kann 2 Streams gleichzeitig aussenden, somit können die beiden oben erwähnten Streams problemlos konfiguriert werden.

MP3-Stream

HE-AAC-Stream

Gestreamt wird zu sogenannten Mountpoints. Effektiv sehen diese für den Webbrowser wie Ressourcen hinter einem URL aus. Dieser kann, in der Standardkonfiguration durch die Source festgelegt werden. In unserem Fall legen wir die Mountpoints Live.mp3 und Live.heaac durch die Einstellungen in Ladiocast fest.

HE-AAC-Stream

Ladiocast besitzt im Haupfenster Mix-Möglichkeiten für den Main-Mix und zwei separate AUX-Mixe, in unserem Setup kommt diese Funktion allerdings nicht zum Einsatz. Wir geben einfach ein Line-In auf den Output, fertig. Das Line-In kommt im Falle einer Aufnahme über Skype oder bei mir im Heimstudio aus dem Mischpult oder, im Falle einer Aufnahme über Stefans H2, direkt aus dem Aufnahmegerät.

Soundrouting in Ladiocast

Listening-Clients

Kommen wir zur Seite des Hörers. Um den Stream zu empfangen benötigt man natürlich eine Software die in der Lage ist auf den Streaming-URL zuzugreifen und Audio zur Ausgabe zu bringen. Hierzu gibt es unzählige Möglichkeiten, einige hatte ich bereits auf www.sneakpod.de/Live-Stream/ gelistet. Das vorgehen ist jedoch immer das gleiche – spielen wir das am Beispiel von VLC einmal durch.

Als erstes wählt man aus dem Menü Open Network...

Open Network..

um als nächstes den Stream-URL einzugeben und zu öffnen. Fertig. Mehr ist nicht zu tun, auch wenn es natürlich nur wirklich funktioniert während wir streamen. In der übrigen Zeit bekommt man eine Fehlermeldung. 🙁

Open Stream..

Qualität

Audioqualität

In meinen Testaufbauten war ich mit der Streamqualität recht zufrieden, auch wenn ich von einigen Hörern nach der ersten gestreamten Sendung das Feedback bekommen habe, dass zu wenig Pegel auf dem Stream gewesen sei – das wird zu erforschen bleiben.

Latenz

Die Latenz, also die Verzögerung zwischen dem wirklich gesprochenen Wort und dem Augenblick in dem die Zuhörer es hören können, liegt irgendwo zwischen 5 und 10 Sekunden. Scheint für diese Art von Streaming ein übliche Größe zu sein, stellt kein großes Problem dar und macht sich immer sehr unterhaltsam in Chat bemerkbar.

Chat

Was wäre eine Live-Sendung auch ohne Chat. Natürlich haben auch wir einen. #Sneakpod auf Freenode. Wie man da hinkommt steht auch auf www.sneakpod.de/Live-Stream/.

and now for something completely different

Interessant? Lust mehr zu erfahren? Schreibt Kommentare.
BTW: Dies ist der erste Artikel im Blog den ich mithilfe von Markdown geschrieben habe – hat gut geklappt – ging entspannt und schnell von der Hand und ich könnte mir vorstellen das in einem zukünftigen Artikel zu beleuchten.

Über die Wunder der modernen Technik

Ein Artikel von einem voll ausgewachsenen Computer-Nerd, der sich wundert was da heute alles geht.

Ich hätte ehrlich gesagt nie gedacht, dass ich sowas mal schreiben würde, aber jetzt muss ich. Ich haben Apples Keynote-Video zu den neuen iPods und iTunes 10 live übers Internet angeschaut.

Keine Panik, ich werde jetzt nicht wiederkäuen was es da alles so tolles zu sehen gab und wie sehr ich all diese Produkte haben will, nein mir ging es eher um die Umstände wie ich das geschaut habe.

Kurzer Flashback zum Thema Videostreaming

Seit einigen Jahren gibt es Streaming Video im Netz, vor allem Dienste wie YouTube kennt wohl wirklich jeder. Videos die bei Bedarf (also wenn der User sie anklickt) zu ihm kommen, so weit so alltäglich. Als Anfang 2007 das erste iPhone auf den Markt kam (erst in den USA, einige Zeit später dann auch bei uns) gelangte Streaming Video auf einem mobilen Gerät erstmals in die Hände einer breiten Öffentlichkeit. Klar gab es auch vorher schon Handy-TV über UMTS, aber warum falls Ihr euch jetzt spontan auch nicht so genau erklären könnt warum Ihr das damals nicht dauernd benutzt habt, dann ist die Frage wie gut das funktioniert hat wohl auch beantwortet. Youtube unterwegs, von damals an kein Thema mehr.

Live is a different beast

Live Video ist jedoch eine ganz andere Geschichte. Nur ein paar Zuschauer, kein Problem. Sobald es jedoch ein massives Interesse gibt und einige tausend oder schlimmer, einige hunderttausend Menschen gleichzeitig den gleichen Videostream sehen wollen – das ist wo es hässlich wird.

iPhone 4 Retina Display von Flickr-User Yutaka TsutanoZurück zur Apple Keynote heute nachmittags. Kurz bevor es losgehen sollte gab Apple bekannt, dass sie die Keynote live streamen würden, Gerüchte besagten man wolle damit das neue Apple-Datacenter in North Carolina mal richtig schön Streßtesten – das dürfte gelungen sein 😉

Apple dürfte sicher eine Firma sein, die in der Lage ist so einen Stream mit dieser Menge Zuschauern nicht nur zu stemmen, sondern auch den Traffic und vor allem Bandbreite dafür zu bezahlen. Das letzte Mal das sie dies taten liegt mehr als 6 Jahre zurück, damals sollen etwa 50.000 Leute zugesehen haben und keiner von Ihnen dürfte dabei unterwegs gewesen sein. Diesmal würden es deutlich mehr werden.

Zurück zu mir

Leider um 19:00 gerade nicht zu Hause und auch nicht mehr in der Firma – nein: Genau dazwischen, natürlich Nerd und Apple-Fanboy genug um dennoch live dabei sein zu wollen gebe ich der Sache mobil eine Chance.

Ehrlichgesagt ich hab nicht wirklich geglaubt das das klappen würde. Eher ging ich davon aus, dass entweder der Stream den anstürmenden Horden nicht gewachsen sein würde und jämmerlich unter der schieren Last der weltweiten Apple-Fan-Community, die auf neue iPods wartet, zusammenbricht. Dabei hätte er in meiner Vorstellung kurz vor Ende noch ein hässlich bröckelndes Geräusch abgesondert. Alternativ glaubte ich, dass meine wacklige O2-UMTS-Internetverbindung irgendwo unterwegs so zu nerven anfangen würde, dass ich final die Lust verliere stehenden Frames und bruchstückhaftem Audio zuzugucken und schließlich aufgäbe. Final hätte natürlich auch mein Akku der Spielverderber werden können, der auf der morgendlichen Hinfahrt und in der Mittagspause schon diverse Podcast-Video & Towerdefense-3D-Spielangriffe über sich hat ergehen lassen müssen.

Es kam anders

iPhone Rules von Flickr-Nutzer mastrobiggoNichts von alle dem passierte. Naja nicht ganz – auf so einer Zugfahrt durch das hügelige Taunusland nördlich von Frankfurt gibt es natürlich das eine oder andere Funkloch und auch kleinere Streckenabschnitte ohne UMTS-Abdeckung. Es gab natürlich Aussetzer, sowohl Video als auch Audio, aber über alles gesehen war ich sehr überrascht. Die Buffer helfen über die kleineren Aussetzer hinweg und dort wo es kein UMTS gibt springt der Stream einfach schnell in den „nur noch Ton“-Modus. Bei einem Fußballspiel sicher eine mittlere Katastrophe, bei einer Apple Keynote meist kein großes Problem.

Da sitze ich also, fahre mit über 100km/h übers platte Land in einem Zug, in dem ich normalerweise grad so „brauchbar“ im Netz surfen kann und schaue einen Livestream vom anderen der Welt, den hunderttausende anderer Leute weltweit gleichzeitig gucken auf einem kleinen Telefon, dass nur so groß wie meine Handfläche ist – und ich ertappe mich dabei, dass ich das ganz normal finde.

Der Akku hat übrigens gehalten, von 54% ist noch auf 15% gefallen, aber ich habe über 1 Stunde Livevideo aus San Francisco geschaut, unterwegs – im Bus, im Regionalexpress, unter der Erde in der S- & U-Bahn und auf dem Fußweg nach Hause. Es hat gehalten, es hat funktioniert und es hat mich, trotz der ganzen Geekigkeit, staunend zurück gelassen. Ich hätte es vorher nicht geglaubt.

Photo unten von Yutaka Tsutano, unter cc Lizenz.

 
Photo unten von mastrobiggo, unter cc Lizenz.

 

links for 2010-02-26

links for 2009-07-14