Vor Kurzem hat Google mit ChromeCast einen HDMI Stick vorgestellt mit dem es möglich ist mittels Android, iOS oder Chrome am Desktop diversen Content an einen Fernseher zu streamen. Auch wenn Google zwar aktuell über keinen Europastart des Geräts spricht, hoffe ich doch irgendwie an so ein Gerät heran zu kommen.

Das wird aber dauern.

Am Samstag erfuhr ich von einem OpenSource Project Namens PiCast. Hierbei handelt es sich um ein Projekt mit dem es möglich sein soll einen Raspberry Pi in ein “ChromCast-ähnliches” Gerät zu verwandeln.

Vorrausetzungen

Ihr braucht einen Raspberry Pi auf dem Raspbian läuft und den ihr mit eurem Fernseher mittels HDMI verbunden habt. Booten ihn und startet den Desktop. Mehr braucht es erstmal nicht.

Installation

Als nächstes klont man das Repository von Github und erlebt erstmal eine Überraschung.  Das ganze Projekt besteht aktuell nur aus vier Dateien und drei davon sind PHP Dateien.  Ohne mir diese genauer anzusehen ging ich die Installationsanleitung Punkt für Punkt durch.

Ich warne euch hier erstmal davor, dass die Anleitung ein wenig Vorwissen zu MySQL und Linux benötigt, aber das hielt mich erstmal nicht auf, obwohl die Anleitung auch nicht ganz vollständig ist.

Im wesentlichen besteht die Installation aus dem Installieren von Paketen wie Apache, MySQL, PHP und Gnash (Flash für Midori). Danach kopiert man noch die PHP Dateien nach /var/www und legt eine Datenbank mit einer Tabelle an. Dann ist man fertig, oder eben nicht.

Was fehlt

Gestartet wird Chromecast indem man mittels watch die Datei grabber.sh ausführt. Man startet also, vereinfacht gesagt, diese Datei alle X Sekunden. Das kam mir schon mal komisch vor. Denn wenn etwas dauernd gestartet wird klingt das nicht nach Service.

Jedoch fand ich schnell herraus, dass dies mein kleinstes Problem ist, denn PiCast tut erstmal nichts.

Das hat viele Gründe.

In den Dateien goCAST.php und grabCAST.php werden Verbindungen zur Datenbank aufgebaut. Diese müsst ihr natürlich erst auf eure DB anpassen. Auch die darin vorkommen SQL Statementss solltet ihr auch, je nach eurem Setup, adaptieren.

Weiter geht es in der grabber.sh Datei. Diese benutzt wget um mit der Datei grabCAST.php die auszuführende Aktion zu laden. Wget ist aber falsch parametrisiert. Wir ändern die Zeile also damit sie funktioniert und dann sieht sie so aus:

Select Code
content=$(wget -qO- http://localhost/grabCAST.php)

Etwas später bemerkte ich noch, dass in der Datei youtube.php ein doppeltes Hochkomma beim Auslesen der GET-Parameter zuviel ist. Also nehmen wir das auch raus. Das Command sieht dann so aus:

Select Code
$_GET["youtube"]

Als Letztes installieren wir noch ein fehlendes Paket: “browser-plugin-gnash”. Dieses wird benötigt damit Midori, der Standardbrowser des Raspberry Pi, Flash ausführenn kann.

Select Code
sudo apt-get install browser-plugin-gnash

Start

Nach einem Reboot des Rapsberry starten wir  auf diesem einen Terminal und führen grabber.sh aus.

Select Code
watch -n 10 ./grabber.sh

Die Zahl nach -n bedeutet wie oft das Script aktualisiert. Also wie lange es maximal dauert bis euer Befehl ausgeführt wird, in Sekunden. Ich habe das zum Testen auf 1 verkürzt.

Nun können wir von einem anderen PC im Netzwerk in einem Browser die Adresse des Pis gefolgt von goCAST.php und einem Befehl laden. Zum Beispiel so:

Select Code
http://10.0.0.111/goCAST.php?website=google.com

Wenn nun alles gut gegangen ist startet nun am Raspberry Midori, also der Browser, im Fullscreenmodus und öffnet google.com. Das sollte mit jeder Webseite funktionieren.

Außerdem unterstützt PiCast auch Youtube. Dies wird aufgerufen indem man dem Pi über den Browser eine YoutubeID übergibt.

Select Code
http://10.0.0.111/goCAST.php?youtube=KJsfrkzGwBA

Auch dies führt dazu, dass sich Midori öffnet und das Video automatisch im Fullscreen wiedergibt.

Stopp

Damit wären wir fertig. Denn mehr kann das Ding noch nicht. Zur Verteidigung muss man sagen, dass das Projekt erst wenige Tage alt ist und noch viele Features geplant sind. Das eigentliche Problem liegt woanders.

Es hat an sich nichts mit Chromecast zu tun.

Die Kommunikation über URLs wäre zwar einfach in Apps einzubauen, aber das ist nicht wie ChromeCast funktioniert. Die Chromecast App zum Beispiel findet dieses Ding im Netzt nicht. Wie sollte sie auch. Das hier ist eine selbstgestrickte Browserfernbedienung und eben nicht Chromecast und das wird es auch so nie sein.

Ein weiteres Problem ist, dass Youtube am Raspberry aus Performancegründen mit Gnash und Midori leider als unbenutzbar bezeichnet werden muss. Es ist einfach zu langsam.

Fazit

Wenn ihr Lust habt euch durch die Installation zu kämpfen und einen einfachen Weg sucht einen Browser fernzustarten, nicht zu bedienen, ist das Projekt ganz interessant, denn ich bin sicher es wird bald noch einige Funktionen mehr unterstützen, aber wenn ihr eine Chromecast Alternative sucht seit ihr hier falsch.

Abschließend muss ich noch sagen, dass ich die Art wie dies Implementiert ist etwas fragwürdig finde. Denn wenn ihr den Source Code, der nicht gerade lang ist, lest bemerkt ihr, dass das leider auch keines Wegs eine Serviceimplementierung ist und deshalb rein von der Architektur her ein etwas hässliches Konstrukt ist.