Video-on-Demand-Dienste wie Watchever oder Sky Go fallen für Linux-User eigentlich flach. Mit dem Wine-Abkömmling Pipelight steht dem nächsten Kinoabend aber dennoch nichts im Weg.
Video-on-Demand-Dienste wie Netflix oder Hulu haben sich in den USA bereits so fest etabliert, dass sie ihre eigenen Serien exklusiv produzieren, wie etwa den Polit-Thriller House of Cards. Auch in Deutschland gehen inzwischen immer mehr Videodienste an den Start. Bei Watchever, Amazon Instant Prime Video, Maxdome und Sky Go lassen sich Tausende von Filmen und Serien gegen eine Flatrate-Gebühr von um die 10 Euro betrachten.
Eines haben alle diese Dienste gemeinsam: Sie unterstützen offiziell Linux nicht, da sie auf die Browsererweiterung Silverlight [1] setzen. Das von Microsoft entwickelte Programm gibt es nur für Windows und den Mac, die Unterstützung freier Betriebssysteme steht nicht auf dem Plan. Die einstmals gemeinsam von Microsoft von Novell entwickelte Linux-Alternative Moonlight [2] unterstützte nie dieselben DRM-Funktionen wie Silverlight und wurde inzwischen auch eingestellt.
Dennoch müssen Linux-Anwender nicht auf gemütliche Videoabende auf der Couch verzichten. Mit Pipelight [3] arbeiten für Windows gedachte Browser-Plugins – darunter Silverlight, aber auch Flash oder Shockwave – unter Linux. Dies funktioniert dank eines Windows-Programms, das mithilfe einer angepassten Version der Windows-Laufzeitumgebung Wine dem Browser-Plugin einen Windows-Browser vorgaukelt und dessen Ausgaben an den Linux-Browser durchleitet. So landen dann auch per Silverlight übertragene Videostreams, wie jene von Amazon Instant Prime Video (Abbildung 1) oder Magine TV (Abbildung 2), ohne spürbare Verzögerungen auf dem Linux-Desktop.

Abbildung 1: Video-on-Demand-Dienste wie Amazons Prime Instant Video funktionieren mit Pipelight auch unter Linux.

Abbildung 2: Auch der sehr junge und aktuell noch komplett kostenlose Online-TV-Anbieter Magine setzt auf Silverlight.
Silverlight installieren
Für Pipelight müssen Sie das Browser-Plugin mitsamt der Wine-Umgebung installieren. Die Pipelight-Entwickler geben auf der Projekt-Homepage Installationshinweise für zahlreiche Linux-Distributionen [4].
Unter Ubuntu nutzen Sie am besten entsprechend Listing 1 das Pipelight-Stable-PPA [5]. Für Debian oder Arch Linux bieten die Entwickler ebenfalls eigene Paketquellen an. Unter Fedora und OpenSuse nutzen die Pipelight-Entwickler den OpenSuse Build Service, sodass Sie auch hier Pipelight einfach installieren. Alternativ lässt es sich auch aus dem Quellcode kompilieren, wobei Sie wiederum die Pipelight-Homepage an die Hand nimmt. Aufgrund der Größe des Wine-Projekts dauert dies jedoch auch auf schnellen Rechnern geraume Weile.
Listing 1
$ sudo add-apt-repository ppa:pipelight/stable $ sudo apt-get update $ sudo apt-get install --install-recommends pipelight-multi $ sudo pipelight-plugin --update
Nach dem Einrichten des Pipelight-Browser-Plugins müssen Sie noch die von Ihnen gewünschten Windows-Plugins laden. Pipelight gibt die dazu nötigen Befehle mit pipelight-plugin --help aus. Entsprechend Listing 2, Zeile 1 aktivieren Sie die aktuelle Silverlight-Version oder geben wie in Zeile 2 und 3 explizit die zu installierende Version des Browser-Plugins an.
Je nachdem, ob Sie die Befehle mit Root-Rechten oder als Benutzer ausführen, installieren Sie die Plugins systemweit für alle Anwender oder nur für den gerade angemeldeten Benutzer. Beim nächsten Start des Browsers lädt das Pipelight-Plugin dann das eigentliche Silverlight-Plugin automatisch aus dem Netz. Sind Silverlight 5.0 und 5.1 zugleich installiert, dann verwendet der Browser automatisch die neuere Version.
Listing 2
$ pipelight-plugin --enable silverlight $ pipelight-plugin --enable silverlight5.0 $ pipelight-plugin --enable silverlight5.1
Möchten Sie ein Plugin wieder deaktivieren, dann lassen Sie sich über die Optionen --list-enabled oder --list-enabled-all die für benutzerspezifisch oder global aktivierten Plugins ausgeben. Anschließend deaktivieren diese entweder gezielt einzeln mit --disable Plugin oder alle Plugins in einem Rutsch via --disable-all (Listing 3). Für die Deinstallation global eingerichteter Plugins benötigen Sie Root-Rechte.
Listing 3
$ pipelight-plugin --list-enabled silverlight5.1 $ pipelight-plugin --disable silverlight5.1 Plugin silverlight5.1 is now disabled $ pipelight-plugin --list-enabled-all $ pipelight-plugin --disable-all
Nach der Installation des Plugins prüfen Sie die Konfiguration der Kette Silverlight-Pipelight-Wine-Browser am besten über den Silverlight-Balls-Animation-Test [6] oder die von Microsoft bereitgestellten Smooth-Streaming-Tests. Diese zeigen, ob der Rechner schnell genug arbeitet, um auch hochauflösende 720p- [7] oder 1080p-Videos [8] ruckelfrei zu übertragen. Die Silverlight-Balls sollten um die 150 fps erreichen, die Smooth-Streaming-Demos so nah wie möglich an die optimale Bildwiederholrate von 25 fps herankommen (Abbildung 3).

Abbildung 3: Für ruckelfreie Videowiedergabe sollte der Smooth-Streaming-Test eine Wiederholrate von 25 fps erreichen.
User-Agent ändern
Nach den erfolgreichen Tests müssen Sie sich eigentlich um nichts mehr kümmern. Das Pipelight-Plugin, und damit auch Silverlight, lädt automatisch, sobald eine Webseite die entsprechende Funktion anfordert und Sie den Start des Plugins erlauben. Allerdings müssen Sie Maxdome, Watchever und Konsorten noch vortäuschen, dass Sie einen Windows-Rechner nutzen. Alleine Silverlight/Pipelight als Plugin im Browser installiert zu haben, genügt nicht.

Abbildung 4: Viele Video-on-Demand-Anbieter müssen Sie durch Ändern der Browser-Kennung zur Zusammenarbeit überreden.
Dazu installieren Sie in Ihrem Webbrowsers eine Browser-Erweiterung, die dem Webserver über den User-Agent einen Rechner “mit Windows” vorspiegelt. Für Chrome und Chromium [9], Firefox [10] oder auch Opera [11] finden Sie in den jeweiligen Addon-Stores entsprechende Plugins (Abbildung 4). Mit dem Update auf Pipelight 0.2.6 ist das Ändern des User-Agents zwar nicht mehr zwingend nötig – dennoch erfordern zahlreiche der von uns getesteten Videodienste nach wie vor diesen Trick (siehe Tabelle “Video-Dienste und Pipelight”), da sie sonst ein inkompatibles Betriebssystem melden.
Video-Dienste und Pipelight
| Dienst | Benötigt | User-Agent |
|---|---|---|
| Amazon Prime Instant Video | Silverlight 5.1 | Ja |
| Magine | Silverlight 5.1 | Nein |
| Maxdome | Silverlight 5.1 | Ja |
| Sky Go | Silverlight 5.0 | Ja |
| Watchever | Silverlight 5.1 | Nein |
Den richtigen User-Agent-String müssen Sie oft nach der Versuch-und-Irrtum-Methode herausfinden. Meist hilft es, eine Browser-Kennung zu wählen, die der Windows-Version des aktuell genutzten Webbrowsers entspricht. Es hat sich aber auch bewährt, generell einen Firefox-Browser unter Windows 7 (“Windows NT 6.1”) vorzugeben. Listing 4 zeigt Browser-Kennungen, die Sie von Hand in die entsprechenden User-Agent-Wechsler eintragen können. Vermeiden Sie es aber in jedem Fall, einen Internet Explorer vorzutäuschen: Bei diesem versuchen die Webserver meist Active X aufzurufen – unter Linux geraten Sie da zwangsläufig ins Rudern.
Listing 4
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20131011 Firefox/23.0
Linux-Video-on-Demand
Mit einem Windows-User-Agent und dem aktuellen Silverlight 5.1 liegen Sie bei den meisten von uns getesteten Diensten richtig. Der Online-TV-Anbieter Magine und die On-Demand-Videothek Watchever meckern nicht einmal über eine unveränderte Linux-Kennung des Browsers – zumindest mit Google Chrome. Bei den anderen Anbietern ändern Sie am besten vor dem Öffnen der Seite die Browser-Kennung. Klagt der Dienst auch nach dem Ändern des User-Agent-Strings immer noch über einen Linux-Browser, dann löschen Sie die Cookies der Webseite: Diese enthalten auch oft Informationen über den genutzten Browser.
Vollbild unter Gnome 3
Beim Abspielen von Silverlight-Videos im Gnome-3-Desktop kommt es aufgrund eines Bugs [12] in der Gnome-Shell zu einem Fehler im Vollbildmodus: Das Fullscreen-Video erscheint nur für einen kurzen Moment, verschwindet jedoch gleich wieder. Im Browser sehen Sie dann anstatt des Films nur noch einen schwarzen Kasten. Die Entwickler arbeiten bereits an der Behebung des Fehlers, noch gibt es jedoch nur Workarounds.
Um Pipelight-Videos auch in der Gnome-Shell im Vollbild zu sehen, schalten Sie nach dem Aktivieren des Vollbildmodus in die Aktivitätenübersicht – entweder per Klick auf Aktivitäten oder dadurch, dass Sie die Mauszeiger in die linke obere Bildschirmecke fahren. Dann suchen Sie sich das Videofenster heraus (Abbildung 5).
Genügt Ihnen das nicht, kommen Sie mit Devilspie zu einem zuverlässigen Vollbildmodus. Installieren Sie dazu das Programm über die Paketverwaltung des Systems und legen Sie die Datei ~/.devilspie/pipelight.ds mit dem Inhalt aus Listing 5 an. Anschließend starten Sie Devilspie über das Kommando devilspie. Es erkennt von nun an das durch Silverlight geöffnete Vollbildfenster und holt es automatisch in den Vordergrund.

Abbildung 5: In der Gnome-Shell müssen Sie im Vollbildmodus das Videofenster von Hand in den Vordergrund holen.
Listing 5
(if
(and
(is (window_class) "Wine")
(or
(is (application_name) "Adobe Flash Player")
(is (application_name) "Microsoft Silverlight")
)
)
(begin
(focus)
)
)
Eine Ausnahme stellt Sky Go dar: Dieser Dienst funktioniert auf den meisten Linux-Systemen nur mit Silverlight 5.0. Der Grund dafür liegt in der DRM-Verschlüsselung, die mit Silverlight 5.1 noch strenger arbeitet. Hier muss der Grafikkartentreiber bis Windows XP das Certified Output Protection Protocol (COPP) oder ab Windows Vista OPM unterstützten, sodass die Kommunikation über den PCI-Express-Bus verschlüsselt vonstattengeht und das Video sich nicht mehr über die Hardware auslesen lässt. Sky Go besteht nun bei Silverlight 5.1 auf entsprechend zertifizierte Treiber, die es unter Linux nicht gibt.
Die Lösung dieses Problems besteht aktuell darin, für Sky Go Silverlight 5.0 zu nutzen. Allerdings dürfen nicht beide Silverlight-Versionen zur gleichen Zeit aktiv sein – der Browser nutzt immer nur die neuste Version. Für Sky Go deaktivieren Sie daher entsprechend Listing 6 Silverlight 5.1 und aktivieren die Version 5.0. Für andere Videodienste müssen Sie wieder zu Silverlight 5.1 zurückwechseln. Beachten Sie, dass sich die Pipelight-Plugins gezielt für den User und mit Root-Rechten auch global im System installieren lassen. Prüfen Sie daher mit pipelight-plugin --list-enabled-all, ob auch wirklich nur Silverlight 5.0 aktiv ist.
Listing 6
$ pipelight-plugin --disable silverlight --enable silverlight5.0 $ pipelight-plugin --disable silverlight5.0 --enable silverlight
32-Bit-Grafiktreiber
Während 32-Bit-Distributionen Silverlight-Videos meist ruckelfrei abspielen, kommt es auf demselben Rechner mit einem 64-Bit-Linux oft zu Aussetzern im Bild. Das liegt unter anderem daran, dass Silverlight als 32-Bit-Programm auch einen 32-Bit-Grafikkartentreiber benötigt. Den installieren die Setup-Routinen der meisten Distributionen jedoch nicht von Haus aus [13]. Das Fehlen des Treibers erkennen Sie an den Fehlermeldungen des Pipelight-Plugins beim Start des Browsers aus dem Terminal. Listing 7 zeigt die entsprechenden Ausgaben für ein System mit Intel-Grafikkarte.
Listing 7
[...] libGL error: dlopen /usr/lib32/xorg/modules/dri/i965_dri.so failed (/usr/lib32/xorg/modules/dri/i965_dri.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden) libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 [...]
Die Installation der 32-Bit-Treiber holen Sie unter Debian und Ubuntu nach, indem Sie das Paket libgl1-mesa-dri:i386 einspielen. Bei Ubuntu 12.04 installieren Sie stattdessen libgl1-mesa-dri-lts-saucy:i386 (Listing 8). Dort gibt es libgl1-mesa-dri:i386 zwar auch, allerdings entfernt dessen Installation gleich den gesamten X-Server – seien Sie an dieser Stelle bitte wachsam! Unter Arch Linux installieren Sie gezielt den für Ihr System nötigen Treiber (Listing 9).
Listing 8
$ sudo apt-get install libgl1-mesa-dri:i386 # Ubuntu 12.10+ $ sudo apt-get install libgl1-mesa-dri-lts-saucy:i386 # Ubuntu 12.04
Listing 9
# pacman -S lib32-intel-dri # Intel # pacman -S lib32-nouveau-dri # Nouveau # pacman -S lib32-ati-dri # AMD
Pulseaudio optimieren
Eine weitere Quelle für Aussetzer im Video stellt der von vielen Distributionen genutzte Soundserver Pulseaudio dar. Da sich Pipelight/Silverlight mit dem Soundserver abstimmen und mit der Wiedergabe warten, wenn der Soundserver nicht mit der Tonausgabe hinterherkommt, lassen sich zeitgleiche Aussetzer in Ton und Bild auf diesen zurückführen. Die Problematik tritt nicht nur auf älteren Systemen mit langsamen CPUs auf: Wir konnten sie auf einem Rechner mit aktueller Core-i7-Quad-Core-CPU (3 GHz) nachstellen.
Das Stottern bekommen Sie üblicherweise mit einer kleineren, am Stück zu verarbeitenden Paketgröße in den Griff. Dazu öffnen Sie die Pulseaudio-Konfigurationsdatei /etc/pulse/daemon.conf mit Root-Rechten in einem Editor. Dort bearbeiten Sie den Wert default-fragment-size-msec (Listing 10). Dessen Standardwert liegt bei 25 – bei einem Wert von 5 liefen Silverlight-Videos mit 25 fps, ohne dass es zu Rucklern im Bild und Tonaussetzern kam. Um die neuen Einstellungen zu aktivieren, starten Sie Pulseaudio nach dem Speichern der Konfiguration mit dem Kommando pulseaudio -k neu.
Listing 10
[...] ; default-fragments = 4 ; default-fragment-size-msec = 25 default-fragment-size-msec = 5 [...]
Fazit
In unseren Tests konnten wir sämtliche in Deutschland aktiven Video-on-Demand-Dienste erfolgreich unter Linux nutzen. Als richtig widerborstig erwies sich lediglich Sky Go, das als einziger Dienst nur mit Silverlight 5.0 funktionierte. In künftigen Versionen soll Pipelight auch mit der strengeren Verschlüsselung der Version 5.1 zurechtkommen – hier gibt es jedoch rechtliche Hürden zu überwinden, schließlich darf der Kopierschutz nicht ausgehebelt werden. Besonders Linux-freundlich zeigten sich Magine und Watchever, die nicht einmal das Vortäuschen eines Windows-User-Agents verlangen.
Eine ärgerliche Einschränkung gibt es bei bei Amazon Prime Instant Video: Amazons Online-Videothek spielt Videos mit Pipelight unter Linux nur in SD-Qualität ab, HD-Videos verweigert der Amazon-Player mit Hinweise auf eine fehlende HDCP-Unterstützung des Monitors [14]. Das liegt daran, dass die Linux-Grafiktreiber keine Funktionen zum Einschränken des Benutzers unterstützen, Amazons Dienst jedoch eine digitale Rechteminderung zwingend voraussetzt. Das Pipelight-Team arbeitet jedoch bereits an einem entsprechenden Workaround.
Silverlight auf dem Raspberry Pi
Viele Fans des Raspberry Pi nutzen den stromsparenden Rechner als Mediacenter. Mit Raspbmc oder OpenELEC gibt es gleich zwei Distributionen, die sich darauf spezialisiert haben, XBMC auf die Fähigkeiten des Raspi hin zu optimieren. In der Theorie wäre der Raspi ideal zusammen mit Pipelight Watchever und Konsorten auf den Fernseher zu bringen, dies scheitert jedoch an der Rechnerarchitektur: Der RasPi baut auf eine ARM-CPU, Silverlight gibt es jedoch nur für x86-Befehlssätze. Das Silverlight-Plugin lässt sich daher auf dem Raspberry Pi nicht betreiben.
Glossar
-
HDCP
-
High-bandwidth Digital Content Protection. HDCP soll zum Zweck des Kopierschutzes das Abgreifen der Video- und Audiodaten auf der (zwingend digitalen) Verbindung zwischen Sender und Empfänger verhindern. Unterstützt das Ausgabegerät kein HDCP, reduziert das Abspielgerät die Auflösung oder verweigert die Wiedergabe komplett.
Infos
[1] Microsoft Silverlight: http://www.microsoft.com/silverlight/
[2] Moonlight: http://mono-project.com/Moonlight
[3] Pipelight: http://fds-team.de/cms/articles/2013-08/pipelight-using-silverlight-in-linux-browsers.html
[4] Pipelight installieren: http://fds-team.de/cms/pipelight-installation.html
[5] Pipelight-Stable-PPA: https://launchpad.net/~pipelight/+archive/stable
[6] Silverlight-Balls-Animation-Test: http://bubblemark.com/silverlight2.html
[7] Experience IIS Smooth Streaming: http://www.iis.net/media/experiencesmoothstreaming
[8] Experience IIS Smooth Streaming 1080p: http://www.iis.net/media/experiencesmoothstreaming1080p
[9] User-Agent Switcher für Chrome/Chromium: https://chrome.google.com/webstore/detail/user-agent-switcher-for-c/djflhoibgkdhkhhcedjiklpkjnoahfmg
[10] User Agent Overrider für Firefox: https://addons.mozilla.org/en-US/firefox/addon/user-agent-overrider
[11] User-Agent Switcher für Opera: https://addons.opera.com/de/extensions/details/user-agent-switcher
[12] Gnome-3-Vollbild-Bug: https://bugs.launchpad.net/pipelight/+bug/1277972
[13] 32-Bit-Grafiktreiber installieren: https://answers.launchpad.net/pipelight/+faq/2485
[14] Status der HDCP-Unterstützung : https://answers.launchpad.net/pipelight/+question/244793






sudo apt-get install –install-recommends pipelight-multi
fordert ein ok an, das auf der KOnsole nicht gesetzt werden kann.
Hallo, wieso können Sie das OK nicht geben?
Super, das ich das noch erleben darf…
Vielen Dank dafür!
VG…
das scheint veraltet zu sein, wenn man den Schritten folgt stellt man fest dass es die Pakete vielfach nicht mehr gibt. Was kann ich tun?
Für viele Streaming-Anbieter sollten Experimente mit Pipelight nicht mehr nötigt sein, da inzwischen in der Regel HTML5 zum Einsatz kommt. Allerdings muss der Browser die DRM-Maßnahmen der Anbieter unterstützen. Dazu zählen Chrome und Firefox (nachdem man die Funktion unter about:preferences#content aktiviert hat).