Nodecast: Chromecast-Emulator (für Windows) im Hands on – Teil 3

Nachdem ich in Teil 1 Ersatzlösungen für Chromecast vorgestellt hatte, ging es in Teil 2 um die Frage, wie sich der Nodecast-Emulator unter Windows 8.1 (oder anderen Plattformen) einrichten lässt. Sofern dieser Schritt geklappt hat, steht nun (fast) nichts mehr im Wege, die Chromecast-Ersatzlösung anzutesten. Wie das geht und welche Klippen lauern, wird jetzt in Teil 3 beschrieben.


Werbung



Den Nodecast-Server und –Renderer anwerfen

Der in Teil 2 installierte Nodecast-Emulator stellt seine Informationen per SSDP/DIAL (Discovery and Launch Protocol) über die SSDP_ADDR = 239.255.255.250 und den SSDP_PORT = 1900 im Netzwerk bereit (broadcast). Zudem läuft ein HTTP Web-Server, der auf Post 8008 Abfragen annimmt (listen). Der Server wird in einer normalen Eingabeaufforderung mit dem Befehl

node server.js

gestartet. Um nicht jedes Mal mühsam das Fenster der Eingabeaufforderung öffnen zu müssen, habe ich den obigen Befehl in eine Datei nodecast-start.bat eingetragen und diese im Nodecast-Installationsverzeichnis untergebracht. Gleichzeitig habe ich eine Verknüpfung auf diese BAT-Datei auf dem Windows-Desktop angelegt. Jetzt reicht ein Doppelklick auf die Verknüpfungsdatei, um Nodecast zu starten. Auf dem Windows-Desktop erscheint dann das Fenster der Eingabeaufforderung mit den Statusmeldungen des HTTP-Servers.

Wenn die obigen Meldungen erscheinen, ist quasi die halbe Miete eingefahren. Die beiden Warnungen könnt ihr ignorieren, da sich diese auf nicht compilierte Module und die deaktivierte UTF-8-Validierung beziehen. In den Statusinformationen wird übrigens auch die IP-Adresse der Maschine, auf der Node.js mit dem Notecast-Server läuft, angezeigt. Diese IP braucht ihr ggf. für Zugriffe über das Netzwerk.

Beim ersten Start des Node-Pakets sollte sich die Windows-Firewall bemerkbar machen und nach der Portfreigabe fragen.

Dort ist dann die die Option für eine Kommunikation für “Evented I/O for V8 JavaScript” im lokalen Netzwerk freizugeben (vergesst mal die Pfadangabe in obigem Screenshot – der ist bei einem meiner vielen Tests entstanden).

Jetzt heißt es in der README.md noch lapidar “Open up a browser (tested with Chrome 29 and Firefox) and point it to http://YourIP:8008. Da steckt nicht viel dahinter – es wird auf der Maschine ein Browser gebraucht, der als Renderer den HTTP-Server abfragt und dann die Casts in einem Popup-Fenster anzeigt.

Sebastian Mauer gibt an, dass er den Firefox und den Google Chrome 29 verwendet habe. Aber es läuft auch in der momentan stabilen Google Chrome Version 28 – beim IE 10 klappt es wohl nicht. Ich bin zwar zum Cast-Screen gekommen, und es wurde auch versucht, etwas wiederzugeben. Aber die Schaltflächen zur Wiedergabesteuerung fehlen im IE. Ich habe dann den Test aber wegen anderer Probleme in meiner virtuellen Maschine abgebrochen.


Werbung

Also: Ihr ruft den Browser eurer Wahl auf und gebt im Adressfeld den folgenden Text ein:

localhost:8008

Auf Windows-Systemen sollte das auf jeden Fall klappen. Falls ihr über Netzwerk geht, verwendet ihr statt localhost die IP-Adresse der Maschine, auf der Node.js samt Notecast läuft. Diese IP-Adresse wird euch in der Eingabeaufforderung des laufenden Notecast-Emulators angezeigt (siehe vorletzter Screenshot). Wenn alles glatt geht, erscheint ein Browserfenster, welches wie hier gezeigt ausschaut.

Um mir den Tippaufwand zu ersparen habe ich noch eine zweite Verknüpfung auf dem Desktop angelegt, indem ich einfach per Maus den Anfang des Adressefeld aus dem Browserfenster zum Windows-Desktop gezogen habe. Jetzt reicht ein Doppelklick auf diese Verknüpfung, um den Standardbrowser zu starten. Alternativ könnte man auch eine Batchdatei mit einer Verknüpfung auf Google Chrome oder den Firefox mit localhost:8008 als Parameter einrichten.

Ach, und noch etwas: Die Anzeige des gestreamten Inhalts erfolgt in einem Popup-Fenster. Der Browser wird sich also beim ersten Streaming-Versuch melden und versuchen, dieses Popup-Fenster zu öffnen. Üblicherweise blocken aber die Popup-Blocker diesen Versuch.

Der obige Screenshot zeigt die Meldung des Google Chrome beim ersten Cast. Geben Sie dann die Anzeige von Popups für localhost frei.

Tipp: Hier kommt übrigens die Verwendung von localhost ganz gut gelegen. Arbeitet man mit IP-Adressen ergibt sich u.U. die Situation, dass der DHCP-Server im Netzwerk wechselnde IP-Adressen an den als Host fungierenden Windows-Rechner vergibt. Dann wäre die Sperre durch den PopUp-Blocker bei jeder geänderten IP-Adresse neu freizugeben.

Google Chrome für Chromecast ertüchtigen

Im nächsten Schritt gilt es noch, eine Quelle für das Chromecasting zu finden. Google sieht auch den Google Chrome-Browser als Streamingquelle vor. Daher gibt es eine Chrome Extension “Google Cast” für diesen Browser.

1. Geben Sie im Adressfeld des Chrome-Browsers

chrome://extensions

ein. Es sollte dann folgende Seite angezeigt werden.

2. Wählen Sie den Hyperlink Galerie umsehen an und lassen Sie anschließend nach der Erweiterung Google Cast suchen (siehe folgender Screenshot).

3. Wählen Sie die Schaltfläche Hinzufügen und bestätigen Sie im Popup die Installation der Extension Google Cast mittels der Hinzufügen-Schaltfläche.

Wenn der Chrome-Browser Ihnen das nachfolgend gezeigte Popup an den Kopf wirft, haben Sie den Browser für Chromecast ertüchtigt.

Endlich Chromecasting nutzen

Ziemlich zäh, der Weg bis hier hin – ich habe da mit vielen Irrungen und Wirrungen schon ein paar Stunden gebraucht. Daher beschreibe ich die funktionierenden Ansätze und Fallen, damit ihr es leichter habt. Wer es bis hier hin durchgehalten hat, kann nun loslegen.

1. Ruft einfach im Google Chrome die Youtube-Webseite auf und lasst nach einem Video suchen.

Sofern Nodecast im gleichen Netzwerk läuft (ich habe auf der gleichen Maschine und über Netzwerk getestet), erscheint womöglich das nachfolgende Popup.

In der rechten oberen Ecke ist eine neue Schaltfläche für das Casting hinzugekommen. Ihr braucht dann nur die Schaltfläche Got it! zu bestätigen. Man sollte sich allerdings merken, was euch Google mit dem Popup mitteilen wollte. Ich habe es nicht auf Anhieb erkannt und bin natürlich mal wieder krachend gegen die Wand gefahren …

Nach dem Schließen des Popups kann es aber mit dem Streaming losgehen. Als erstes muss natürlich das Gerät festgelegt werden, das als Chromecast-Empfänger fungiert. Klickt man auf die betreffende (nachfolgend mit einem Pfeil markierte) Schaltfläche, öffnet sich ein Menü, in dem die im Netzwerk gefundenen Chromecast-Empfänger aufgelistet werden. Sieht schon mal gut aus …

Dort sollte der Befehl nodecast auftauchen, den man anzuwählen kann. Google Chrome nimmt Kontakt mit dem “Chromecast”-Gerät auf. Wenn man dann erneut die Chromecast-Menüschaltfläche in der Google-Chrome Symbolleiste anwählen, erscheint folgende Palette.

Hat mich dazu verleitet, den Eintrag Cast this tab zu wählen, da ich dies für das Streaming verwenden wollte. Bei Chromecast dient der Eintrag dazu, den Inhalt der kompletten Registerkarte zu streamen – was aber deutlich als “Beta” ausgewiesen ist. Im nodecast-Server ist diese Funktion aber wohl nicht implementiert (wie ich mittlerweile zu wissen glaube, wurde nur WebView, aber nicht WebRTC verwendet). Das Popup-Fenster zur Anzeige der Streaminginhalte öffnet sich zwar – bleibt aber schwarz und nach wenigen Sekunden wird im Fenster der Eingabeaufforderung die Info über den Abbruch der Verbindung angezeigt. Lässt man ein YouTube-Video ablaufen, ist der Ton für kurze Zeit weg. Danach wird im Google Chrome-Fenster die Chromecast-Schaltfläche rot eingefärbt. Öffnet man die zur Schaltfläche gehörende Palette, erscheint folgende Meldung.

Jetzt, beim Schreiben des Blog-Beitrags werden mir die Zusammenhänge klar. Aber beim ersten schnellen Test dachte ich, mit der Node.js- oder nodecast-Installation ist etwas schief gegangen. Also habe ich zig (im nachhinein überflüssige) Installationsläufe und Tests durchgeführt.


Werbung – meine Windows 8 Titel –

Und wie streame ich YouTube denn nun?

Mehr oder weniger durch Zufall habe ich dann das Casting eines YouTube-Videos doch noch hinbekommen. Weiter oben findet sich ja der Hinweis in Google Chrome, wie Casting funktioniert – er muss ja über die Schaltfläche Got it! bestätigt werden. Im Google Chrome-Browser findet man in der Fußzeile des YouTube-Player-Fensters die Schaltfläche Fernsteuerung.

Bei Anwahl dieser Schaltfläche öffnet sich das im obigen Screenshot sichtbare Menü, in dem Sie zwischen “Dieser Computer” und den angezeigten Chromecast-Geräte (hier “nodecast”) wählen können. Klicken Sie auf nodecast, beginnt Google Chrome über das Netzwerk zum Nodecast-Empfänger zu streamen. Dort öffnet sich im Browser, der unter localhost:8008 lauscht, ein Popup-Fenster.

Es finden sich die Steuerelemente zur Wiedergabe sowie der Medieninhalt. Es dauert allerdings etwas, bis das Streaming auf dem Nodecast anläuft. In obigem Screenshot wird das YouTube-Video wiedergegeben – geschafft!

Das Streaming lässt sich im Chromecast-Wiedergabefenster über die Schaltflächen der Wiedergabe-Kontrollleiste anhalten und im Client mittels der Schaltfläche Fernsteuerung wieder lokal auf den betreffenden Rechner zurückholen.

Was geht, was nicht?

Was geklappt hat: Die Nodecast-Installation lief in einer virtuellen Maschine unter Windows 8.1. Ich konnte sowohl innerhalb der VM als auch vom Host mit Google Chrome als Browser zu Nodecast erfolgreich streamen. Auch das Streamen von einem WeTab Tablet PC per WiFi-Verbindung auf den in der virtuellen Maschine laufenden Nodecast-Empfänger war problemlos möglich. Ich habe einfach das Google Chrome portable-Verzeichnis von meinem Windows 7-Host auf den WeTab mit Windows 8.0 kopiert und konnte sofort mit dem Streaming loslegen. Etwas störend waren die Pausen, bis die Streaming-Inhalt im Rendering-Fenster erschienen – hängt aber möglicherweise auch an meiner langsamen Internetverbindung.

Was ich nicht hinbekommen habe, ist die Verwendung meiner Android-Geräte als Chromecast-Sender bzw. Renderer mit dem Google Browser. Wenn ich den Google Chrome-Browser über IP:8008 mit dem HTTP-Server verbunden habe, konnte ich diese Anforderungen im Fenster der Eingabeaufforderung sehen. Aber der Streaming-Versuch von einem zweiten Google Chrome-Browser unter Windows auf das Android-Gerät wurde nach ca. 20 Sekunden ergebnislos abgebrochen. Andererseits tauchte auf meinen Android-Geräten auch keine Schaltfläche zur Auswahl des Chromecast-Geräts und auch keine “Watch”-Schaltfläche zum Casten auf.

Update: Auch mit Android lässt sich auf Nodecast streamen. Ich habe das Ganze in Teil 4 gleich mit beschrieben.

Nachbetrachtungen …

Ich hatte es bereits erwähnt, schöne Arbeit, die Sebastian Mauer da mit Nodecast abgeliefert hat. Wehmutstropfen an der Sache war: Das da keinerlei Dokumentation für nicht so ganz sattelfeste Node.js-Nutzer zu finden ist. Daher habe ich das Ganze hier möglichst foolproof für Gelegenheitsanwender aufbereitet. Ich könnte mir vorstellen, dass einige Leute mit Nodecast experimentieren wollen. Kann jedenfalls nicht schaden, wenn ein paar Leute mehr mit dem Zeugs experimentieren. Von daher sind eure Kommentare hier willkommen – nur kann ich keinen Support leisten, wenn es trotz meines HowTo nicht klappen will.

Werfe ich das Ganze mal in einen Topf, rühre das um und ziehe meine Erfahrungen heraus, bleibt folgendes: Irgendwie hat Google das noch nicht wirklich durchdacht. Das Chromecast-Gerät wähle ich über die Watch-Schaltfläche in der oberen Symbolleiste des Chrome-Browsers aus. Medieninhalte muss ich in der Fußleiste des Players auf das Chromecast-Gerät übertragen. GUI-technisch ist das Käse. Lokale Inhalte gehen (momentan) gar nicht – und mit Android hakelt es auch.

Da macht DLNA nach meinem Test mehr Laune – von Apples AirPlay gar nicht zu reden (ich teste das hier zwischen einem iPad und Android-Geräten)! Die Nodecast-Emulation zum Laufen zu bringen, ist für Normalsterbliche alles andere als trivial. Wenn man es mal zum Laufen gebracht hat, stellt Nodecast eine schöne Möglichkeit bereit, mit Chromecast-Streaming unter Windows zu experimentieren. Nachtrag: Für Android steht ja die in Teil 4 beschriebene App Cheapcast zur Verfügung, die das Ganze wesentlich vereinfacht.

Und wie es der Zufall so will, in Teil 1 hatte ich heute morgen Husihong Luo und rPlay für den Raspberry Pi erwähnt. Als ich jetzt den dritten Teil der Artikelreihe eingetippt habe, lag bereits eine E-Mail von ihm vor – er hatte meinen Blog-Beitrag gelesen. Könnte gut sein, dass ich demnächst eine Beta-Version der Windows-Variante (Binary) eines weiteren Chromcast-Emulators bekomme.

Persönlich werde ich mich aber wohl in den kommenden Wochen mit Miracast, DLNA und AirPlay befassen (es sei denn, ich kriege Android-Apps in die Finger, die Chromecast-Empfänger emulieren können -Update: Habe Cheapcast in den Fingern gehabt, läuft!). Zwei Miracast-Receiver (einer mit Android als Firmware) sind zu mir unterwegs – und sobald Windows 8.1 als RTM für mich zugreifbar ist, stellt mir Microsoft ein Surface Pro für Testzwecke zur Verfügung. Wo es noch kneift, ist die Bereitstellung von Android-Testgeräten durch Google und Samsung. Weder war die Pressebetreuung von Google in der Lage, mir ein Nexus 4 oder ein Nexus 7 (welches eh in der Firmware gepatch werden müsste) für Tests zur Verfügung zu stellen. Noch habe ich von der Samsung Pressebetreuung (trotz mehrfacher Nachfrage) bisher kein Galaxy S3 bzw. S4 für solche Tests bekommen. Andererseits haben die bei Samsung kein Problem, bei Facebook-Aktionen mal eine Hand voll Geräte an Liker zu verschenken. Passt nicht so recht – sind aber halt die Widrigkeiten eines Blogger.

Daher werde ich bei meinen Tests die Geräte der Firmen berücksichtigen, die mir zur Verfügung stehen. Ich denke, zur IFA werde ich Zugriff auf interessante Gadgets und möglicherweise auch China-Android-Smartphones bekommen, die zumindest auf dem Papier Miracast unterstützen (obwohl bei Miracast auch nicht alles Gold ist, was glänzt). We will see …

Update: Nun gibt es auch schon Teil 4 der Artikelreihe, die zeigt, wie man mit der Android App Cheapcast ein Android-Smartphone, -Tablet oder TV-Stick zum Chromecast Empfänger hochrüsten kann.

Artikelreihe:
i: Chromecast-Emulatoren als Testumgebung – Teil 1
ii: Nodecast: Chromecast-Emulator how to – Teil 2
iii: Nodecast: Chromecast-Emulator im Hands on – Teil 3
iv: Android Chromecast-Emulator als Beta verfügbar–Teil 4

Ähnliche Artikel:
a1: Chromecast: HDMI-Streaming-Stick vorgestellt
a2: Meine 2 Cents/Gedanken zu Google Chromecast …
a3: Kann Google Chromcast vielleicht Miracast?
a4: Chromecast im Teardown

b1: Miracast bei Windows 8.1
b2: DLNA im hands-on-Experiment
b3: Den Fernseher per inakustik-Stick mit DLNA nachrüsten
b4: DLNA-Streaming unter Android
b5: CheapCast: Googles Chromecast für Arme?

c1: Experimenting with ICS (in Virtualbox, VMlite, VMware)
c2: Testing Android-x86 Ice Cream Sandwich-Image from VMLite
c3: VBoot: Genialer Ansatz zum Booten aus virtuellen Laufwerken


Werbung

Dieser Beitrag wurde unter Android, Chromecast, Video/Foto/Multimedia, Windows 7, Windows 8, Windows 8.1, Windows Vista, Windows XP abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Kommentare zu Nodecast: Chromecast-Emulator (für Windows) im Hands on – Teil 3

  1. Stefan Musil sagt:

    Danke für die volksnahe Dokumentation 🙂
    Um den NodeCast server zu starten genügt “node server.js” jedoch nicht.
    Es muss der Name des NodeCast Servers mit angegeben werden

    node server.js –name GeräteName

    Der Name kann frei gewählt werden, sollte der Name Leerzeichen beinhalten, so muss er von “” eingefasst sein.
    Beispiel: “Mein Geraet”

    Vielleicht ist das ja auch eine Option einer neueren Version…

    Bei jedem Start des NodeCast Servers, sollte das “Lauschfenster” http://localhost:8008 aktualisiert werden, sonst wird der Start des NodeCast Servers nicht bemerkt und die Verbindung zum Client kommt nicht zustande.

    Alles in Allem, ist der NodeCast Server eine gute Sache um sich die Möglichkeiten, als auch Einschränkungen des CromeCast Dienstes bewusst zu machen.

  2. Günter Born sagt:

    @Stefan: Danke für die Ergänzung! Der Test ist hier schon so lange her, ausweislich des obigen Screenshots musste ich nichts als Gerät eintragen – ob es zwischenzeitlich erforderlich ist, kann ich nicht sagen. Dein Kommentar ist aber sicherlich hilfreich für Mitleser, wenn es mit dem von mir beschriebenen Aufruf nicht klappt.

  3. nes3Ah sagt:

    Ich schaffe es nicht, dass meine Batch Datei funktioniert.
    Kann mir jemand ein Beispiel schicken oder schreiben?

    Ansonsten rieeeesen Dank! Es funktioniert, letztendlich mit IE.
    Edge will nicht in den Vollbildmodus, Chrome streikt 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.