beuster{se} Blog, Videos und News

Adaptive Streaming und YouTube

Dass YouTube für einen wesentlichen Anteil des Datenverkehrs im Netz verantwortlich ist, ist lange bekannt. Und dass man dieses Wachstum nicht ewig mit ansehen kann, haben auch die Entwickler der Videoplattform erkannt und auf der Google IO ein Projekt vorgestellt, mit dessen Entwicklung bereits 2009 begonnen wurde: Adaptive Streaming.

Das Internet wurde lange so behandelt wie die U-Bahn in Tokyo: Rein was passt und zur Not wird nachgedrückt. Seitens YouTube lag das vor allem daran, dass Videos immer als ganze Datei angefragt und verschickt wurden, ungeachtet des tatsächlichen Bedarfs. Bei Sprüngen in Zeiten, die der Player noch nicht in den Speicher geladen hat oder auch beim Qualitätswechsel entstanden so immer neue Anfragen des gesamten Videos.

Mit Adaptive Streaming, was einige neue Webtechniken ausnutzt, werden Videos jetzt nur teilweise angefragt, quasi in Brotscheiben. Das erlaubt insbesondere beim Streamwechsel (wenn bspw. die Qualität geändert wird) nahtlosere Übergänge. Der Nutzer sieht am Ende ein durchgängiges Video, dass aber durchaus aus verschiedenen Videodateien und -formaten zusammengesetzt werden kann. Am Ende soll der Nutzer die bestmögliche Qualität erhalten, die YouTube bei der aktuellen Netzwerkgeschwindigkeit bieten kann. Bei der Umsetzung gab es aber diverse Probleme.

Einen Wechsel kann man nur am Ende eines Frames durchführen. Bei unterschiedlichen Videoformaten können sich Frames überschneiden. Was also tun, Frame weglassen und Schwarzbild hinnehmen? Oder mit dem neuen Stream einen Frame zurückgehen? Zwar sind diese Mängel optisch kaum wahrnehmbar, aber durchaus hörbar. Denn auch beim Audio gibt es solche Überschneidungen. YouTube hat daher alle Videos konvertiert, sodass Frames alle bündig übereinander liegen. Ein Mammutprojekt. Vorteil der Konvertierung: Unabhängig von der Videoqualität wird nun immer die bestmögliche Audioqualität wiedergegeben.

Umlagern von Videos


Des Weiteren lagen unterschiedliche Versionen eines Videos auf unterschiedlichen Servern. Diese können wiederum unterschiedliche Bandbreiten haben was beim Zusammenfügen von Streams Probleme macht. Lösung hier: Verschieben aller Videos auf die richtigen Server. Wiederum: Ein Mammutprojekt , das Monate gedauert hat und eine Umstellung des Speichers vom Grund auf bedeutete.

Die Technik und das Konzept hinter Adaptive Streaming machen Buffering nahezu überflüssig, und daher hat man auch immer nur die nächsten etwa 40 Sekunden im Zwischenspeicher. Pausieren und Vorladen ist nicht mehr möglich.

Auch kann YouTube nun schneller bei Fehlern reagieren und bei Problemen regulieren. Denn auch Drittanbietersoftware kann Probleme bereiten. Im konkreten Beispiel hat ein globales Update eines großen Smartphone-Herstellers dazu geführt, dass YouTube über Monate einem quasi DDoS-Angriff ausgesetzt war.

Another surprising thing we learned from this process is that software has bugs. Some bugs are more surprising than others. For instance, if a popular mobile handset manufacturer releases a software update that opens TCP connections and doesn't close them, you get something that looks like this. (Grafik im Video, ca. 24:10min)
A globally distributed denial of service attack on your servers that lasts for months. And there's basically nothing you can do to avoid this situation except sit and wait and hope they release an update. That means that we have to make the choice between degrading service for all users, or cutting off a large fraction of users. And we never want to make that choice. With application level streaming, we can deliver a fix or a work around in hours, instead of months.
Quelle: http://youtu.be/UklDSMG9ffU

Der Umstieg auf das Konzept begann etwa Ende April 2012, mittlerweile ist der Flash-Player zu 100% umgestellt. Für HTML5 erfolgt derzeit das Roll Out, derzeit aber nur im Google Chrome. Mobile Geräte und TV folgen in den nächsten Monaten.

Wer nochmals im Detail sehen will, kann sich die 30minütige Aufzeichnung des Events anschauen. Mir hat es sehr gut gefallen, die Technik ist beeindruckend und die Arbeit dahinter erklärt doch das ein oder andere Verhalten der Videoplattform in den letzten Monaten. Insbesondere der Verzicht auf das Buffering macht klar, warum „YouTube einfach nicht lädt“.

Quellen:

  1. http://youtu.be/UklDSMG9ffU

  2.  
    picL.0
     

Kommentare (0)

Bisher keine Kommentare.

Schreib etwas neues




Noch 1500 Zeichen übrig.

Bitt warte 20 Sekunden, bevor du das Formular abschicken kannst.

Mit * makierte Felder sind Pflicht, deine Mailadresse wird nicht veröffentlicht. Mehr dazu im Impressum.


Ich bin ein Test. Close