Deckenbeamer

Ihr kennt das vielleicht: Euer Partner möchte keinen grossen Fernseher, ihr wollt aber Kinofeeling.

Vor ein paar Jahren habe ich deshalb einen portablen Beamer angeschafft.

Jedesmal, wenn ich einen Film „in groß“ sehen wollte war dann die folgende Prozedur angesagt:

  1. Beamer auf ein altes Lampenstativ montieren
  2. Stativ an der richtigen Stelle aufbauen
  3. Bild auf die Projektionsfläche (Wand) ausrichten und scharfstellen
  4. Stromkabel anschliessen
  5. HDMI-Kabel ansschliessen
  6. Das Audiokabel für den Rückkanal zur Stereoanlage anschliessen
  7. Film vom Abspielgerät abspielen.
  8. Am Ende alles wieder aufräumen

Da dies, wie ihr sicher bemerkt habt, ziemlich umständlich ist, vereinfachte ich die Prozedur: Statt alles immer wieder auf- und abzubauen stellte ich den angeschlossenen Beamer nach Gebrauch einfach in eine Ecke und schaltete lediglich die Mehrfachsteckdose aus.

Unglücklicherweise sah das nicht besonders aufgeräumt aus und alle stolperten regelmässig über die Füsse des Lampenstativs.

Am liebsten also eine Deckenmontage. Allerdings finde ich Kabelkanäle an der Decke nicht sonderlich hübsch. Auch nicht diese superflachen.

In einen weiteren Optimierungsschritt versuchte ich daher die Anzahl der Kabel zu reduzieren. Der Beamer würde neben einer Deckenlampe montiert werden. Strom wäre also über ein kurzes, nicht störendes Kabel am Montageort vorhanden.

Die Stromquelle konnte ich nutzen, weil die Philips Hue Deckenlampe drahtlos ein- und ausgeschaltet werden kann. Es wäre schliesslich fatal, wenn die Lampe leuchten muss, damit der Beamer läuft! Gleichzeitig wäre es genauso fatal wenn der Beamer anginge sobald man die Deckenbeleuchtung einschaltet. Aber auch das ist kein Problem, weil der Beamer, wenn der Strom eingeschaltet wird nicht automatisch angeht, die Lampe jedoch schon.

Das Audiokabel habe ich durch eine Bluetooth-Funkstrecke mit apt-x ersetzt, was ganz ausgezeichnet funktioniert. Sowohl in Sachen Latenz als auch von der Qualität her. Der Versuch, das HDMI Kabel durch drahtlose HDMI-Bridges zu ersetzen scheiterte leider an Preis und Qualität. Erst gab es keine zuverlässigen Lösungen, dann waren sie mir zu teuer (~200 EUR+). Und man hätte ein weiteres Stromkabel zum Betrieb der Empfangsseite am Beamer gebraucht und somit ein HDMI-Kabel durch ein Stromkabel ersetzt und nichts gewonnen.

Bei der Betrachtung meiner Anwendungsfälle kam die Idee auf, dass sich das Problem durchaus auch mit drahtlosen TV-Sticks lösen lassen könnte. Die Anwendungsfälle sind:

  • Spielfilme und Serien von Amazon streamen
  • Filme von DVD oder NAS abspielen
  • Games von der Playstation oder Wii zocken
  • Bei iTunes gekaufte oder geliehene Filme abspielen
  • Webseiten anzeigen
  • Bilder Slideshows abspielen
  • Youtube Videos wiedergeben
  • Watchever sollte nach Möglichkeit auch unterstützt werden (optional, da der Dienst angeblich wohl eh demnächst eingestellt werden soll)
  • Präsentationen vom Notebook oder Tablet aus anzeigen
  • Die Übertragungslösung muss Beamerseitig über USB mit Strom versorgt werden können, da ein weiteres Stromkabel oder eine klobige Verteilerdose unbedingt vermieden werden soll.
  • Die Wiedergabe sollte von allen möglichen Geräten möglich sein. Zumindest jedoch von:
    • Android Smartphone & Tablet
    • Mac OS X
    • iPhone, iPad
    • Evtl. auch mit Linux, Windows 7++ und ggf. Windows Phone 8.1++ (optional)
  • Wiedergabe der Videomedien mit einer Auflösung von min. 720p mit min. 30fps.

Ausprobiert habe ich dann die folgenden Stick-Lösungen:

  • FireTV Stick
  • Apple TV (trotz 220V Anschluss, aber die hatte ich nunmal schon)
  • Chromecast
  • RenkCast (DLNA/Airplay Stick von Renkforce/Conrad)

Das vorläufige Ende vom Lied war: Die Apple TV flog aus der Konkurrenz raus, weil sie weder Amazon Videos streamen noch über USB mit Strom versorgt werden kann und eigentlich auch nur mit Apple Geräten sinnvoll verwendet werden will. Der Renkforce lief mir zu instabil und zu langsam und die EZShare App wirkte etwas altbacken und schlecht gepflegt. Der FireTV Stick schliesslich ist dem Chromecast auf den ersten Blick recht ähnlich, hat aber einige deutliche Unterschieden unter der Haube:

  • Apps werden auf dem Stick installiert statt auf dem Smartgerät
  • Eine Fernbedienung ist nötig um den FireTV zu bedienen.
  • Unterstützt nur Miracast, was qualitativ nicht optimal ist. (hohe Anforderungen an Abspielhardware, oft  hohe Latenz, Ruckler und asynchrone Video/Audio Spuren)
  • Man benötigt ein Amazon-Konto statt einem Googlekonto

Und so fiel die Wahl auf den auch nicht so ganz perfekten (weil neugierigen) Chromecast Stick, der aber inzwischen tatsächlich alle Usecases ausser den Punkt mit der Playstation/Wii erfüllt. Und das ganz ohne Fernbedienung und von jedem Gerät auf dem entweder der Chrome Browser, die Chromecast App oder Android läuft.

So hängt der Beamer nun an der Decke, nur mit einem Stromkabel angeschlossen und alles funktioniert tadellos, ohne ruckeln und ohne Gestänge zwischen Bild und Betrachter.

Links Zum Weiterlesen (englisch):

Screen mirroring with Chromecast

Chromecast vs. Miracast

Miracast explained: How is it different from Chromecast and AirPlay?

Bildschirmfoto 2016-05-18 um 20.50.41„WordPress ist total lahm und lässt sich mit HTTPS nicht vernünftig nutzen und Apache mit PHP ist ja auch nicht mehr so optimal“ hat mir ein Bekannter neulich erzählt.

Ich war anderer Meinung und habe Lust bekommen,  Performanceoptimierung zu betreiben, mit Software herumzuspielen und auszuprobieren ob die These stimmt – oder widerlegt werden kann.

Zu Anfang lag da noch ein alter Blog rum. Dieser hier. Oll, langsam, die Leserzahlen egal – ein idealer Kandidat für meinen Versuch.

Stylesheet aufräumen

Zunächst habe ich das Stylesheet aufgeräumt und viele schwere und unnütze Webfonts durch einen leichtgewichtigeren ersetzt. So kam ich von ~7MB, die in 12s auf etwa 6,1MB, die laut Webpagetest Performance Messtool in 11s geladen waren. 11s – eine halbe Ewigkeit. In der Auswertung sah ich, dass vor allem die Bilder auf der Webseite einen grossen Anteil (>50%!) am gesamten Seitenvolumen hatten.

Lazy Loading und Bilder komprimieren

Um dem entgegenzuwirken suchte ich eine Möglichkeit die Bilder im nicht sichtbaren Teil der Webseite erst zu Laden, wenn sie benötigt werden (oder kurz vorher). Also ein sogenanntes „Lazy Loading“ einzurichten. Hierfür gibt es ein passendes WordPress Plugin („Lazy Load“), mit dem der Job recht flott erledigt war. So werden beim Seitenaufruf erstmal nur die Thumbnails geladen, aber nicht mehr die kompletten Bilder.

Den Standardwert für die Bildkomprimierung habe ich ausserdem von 95% auf 80% gesenkt, ansonsten hätten viele Bilder doch zu sehr an Qualität eingebüsst. In einem Fotoblog darf man ruhig wenig komprimierte JPEGs zeigen, auch wenn diese Dateien dann etwas grösser ausfallen.

Diese Massnahmen haben die Ladezeit aber immerhin auf etwa 6s gedrückt und die Gesamtseitenkapazität auf etwa 700kB reduziert. Damit könnte man leben. Wenn da nicht diese 3s Time to first Byte in der Webpagetest Auswertung gewesen wären. In 3s laden moderne Webseiten inkl. Rendering im Browser. In 3s treffen Finanzalgorithmen Millardenentscheidungen in hunderten von Transaktionen. In 3s ändert sich die Welt.

Schneller!!!

Meine Vermutung war, dass eines der installierten Plugins dafür verantwortlich ist, dass es so lange dauert bis WordPress das erste Byte an den Browser ausliefert. Ich probierte also alle Plugins der Reihe nach durch (Messen, deaktivieren, messen…jeweils mehrere Zyklen) und identifizierte auf diese Art zwei Plugins die Zeit stehlen.

Interessanterweise kostete das W3 Total Cache Plugin fast 2s, obwohl es eigentlich zur Performanceverbesserung gedacht ist. Das veraltete Statistikplugin, dass im Hintergrund lief und Dinge tat, von denen ich keine Ahnung hatte und dabei alles bremste kostete nochmal etwa 1s.

Jetzt hatte ich also eine WordPress instanz, die etwa ein Zehntel der ursprünglichen Grösse hatte und in einem viertel der Zeit lädt. Blöderweise hatte ich dadurch den Cache und die Lesestatistik eingebüsst. Suboptimal. Ersteres bremste jetzt bei jedem weiteren Seitenaufruf und letzteres verhindert, dass ich sehe welche Artikel am meisten gelesen werden (schade, aber zu verschmerzen).

Johnny Cache alias Varnish.

Ich dachte über eine Architekturänderung nach. Bisher lief der Apache Webserver im Standalone Modus und machte alles alleine. Für das Caching habe ich spaßeshalber einen Varnish Cache davorgehängt – und siehe da: Die Ladezeiten beim zweiten Aufruf waren wieder da wo sie hin sollten: Im Keller. Ganz unten. Top!

Und dank neuem, passiven Statistikplugin sehe ich jetzt wieder die Seitenaufrufe, aber ohne störende Nebenwirkungen auf die Time-to-first-Byte (TTFB).

Und HTTPS?

SSL hätte ich ja auch gerne noch, dachte ich so. Vor allem im Hinblick auf die vielen Browserfeatures die in den Chromes, Firefoxes und Edges dieser Welt Stück für Stück nur noch per HTTPS zur Verfügung stehen bzw. stehen werden. Also flugs einen HA-Proxy als SSL Terminator vor den Varnish Cache geklemmt, ein LetsEncrypt SSL Zertifikat installiert – und erstmal nur Probleme gehabt: Redirect Loops, Security Warnungen wenn Seiteninhalte teilweise per HTTP geladen wurden, Browserfehler…Blöd.

Um die Warnungen vor gemischt geladenem Content zu verhindern habe ich das „SSL Insecure Content Fixer“ Plugin installiert und einige Plugins mit hartkodiertem Protokoll in den URLs (z.b. das Google Translate Plugin) per Hand angepasst. Die Redirect Loop Probleme waren eine Mischung aus fehlerhafter HA-Proxy, Varnish und WordPress Config gepaart mit einer WordPress Default URL die mit „http://“ begann.

Nachdem nun alle Probleme ausgemerzt sind läuft die Kiste. Genauer: das Blog ist flott geworden. Flotter als es jemals war.

In Zahlen: First Load: ~3,8s, 670kB. Second Load: 2,7s, 64kB.

Und das mit ein paar wenigen nicht so komplizierten Handgriffen. Die These meines Bekannten ist damit hinreichend widerlegt. Oder?

Auf jeden Fall war es ein Grund seit langer Zeit wieder einmal einen Artikel hier zu posten.

Seit dem letzten Segeltörn besitze ich ein T-Shirt mit der Aufschrift “Nee, nee. Das gehört so!” vorne und “Das ist mir ja noch nie passiert!” hinten. Eigentlich aus einer lustigen Begebenheit an Bord einer Segelyacht entstanden und als Geschichte von vorn nach hinten zu lesen habe ich heute gemerkt, dass man es auch von hinten nach vorne lesen kann. Also: “Das ist mir ja noch nie passiert!” – “Nee, nee. Das gehört so!”.

Der Kniebes’sche Markus hat mich mit einem Blogstock beschmissen. “Das ist mir ja noch nie passiert!” war mein erster Gedanke. Was ein Blogstöckchen ist wusste ich zu diesem Zeitpunkt noch nicht.

Eine kurze Internetrecherche später war klar: Ein Blogstöckchen ist quasi eine Art Stafettenlauf für Blogger. In diesem Fall soll wohl jeder angeworfene das Stöckchen aufnehmen und unter dem gleichen Titel ein paar Fakten über sich zusammentragen und so klammheimlich dazu gebracht werden endlich mal wieder einen Blogeintrag zu posten und dabei etwas über sich zu verraten. Anschliessend wird das Stöckchen an jemand anderen weitergereicht. Faulheit ist keine Ausrede.

Dass grade in dieser unpassenden, unproduktiven, entspannten Phase nach einem erholsamen Urlaub so etwas kommt ist wohl einfach nur ein blöder Zufall. Nun denn, hier sind meine 10 Cents 20Punkte:

1. Den pawlikviewing-Blog gibts jetzt seit 23.02.2011.

2. Insgesamt wurden bisher 442 Artikel veröffentlicht.

3. Der Postillion ist lustiger.

4. Basic Thinking ist unterhaltsamer

5. Für ein Fototechnikblog ist pawlikviewing meistens zu technikorientiert und zu spät dran.

6. Aber ich liebe es neue Kameras anzutesten und Bedienkonzepte auszuprobieren. durchzuspielen und zu zerlegen. UX hat Sex!

7. Für ein Fotokunstblog ist pawlikviewing nicht anspruchsvoll genug

8. Mit Fotokunst kann ich meistens wenig anfangen. Siehe auch Rhein IIdie Bechers oder eben dieser Dirk Brömmel. Zum Beispiel.

9. Aus diesem Grund wird aus mir auch nie ein richtiger Top-Fotograf werden, was auch nicht weiter schlimm ist.

10. Hier erscheinen nur Artikel über die Themen, die mich interessieren und nicht über das, von dem ich glaube, dass es “die Massen” (wer auch immer das sein mag) interessiert. Sorry dafür. ;-)

11. Ich versuche keine Tracker, Werbung oder anderen Internetmüll auf diesen Seiten zu verwenden.

12. Urlaubsfotos können hier schonmal einen ganzen Blogeintrag füllen…

13. Lieber ziehe ich aber über Kameradesignunfälle wie die K-01 her.

14. Morgen ist auch noch ein Tag: jaja, ich schreibe viel zu selten hier, aber…mehr geht halt nicht.

15. Meine Meinung über Fotorumors-Seiten: Sie sorgen dafür, dass einem das Sortiment in den Fotogeschäften, auch den am besten ausgestattetsten, völlig veraltet vorkommt.

16. Die beste Kamera ist die, die demnächst angekündigt werden wird.

17. Ich liebe Zitroneneis in Positano.

18. Pizza in Napoli ist auch toll.

19. Genauso wie Norwegen zu Fuß, mit dem Auto oder per Zug.

20. Der letzte Punkt. Definitiv. Der Allerletzte.

Ehrlich: ich finde es sehr Erstaunlich, dass wirklich 20 Punkte herausgekommen sind. Denn soviel gibts über pawlikviewing ja nicht zu erzählen. ;-)

Und damit reiche ich das Stöckchen mal weiter an…Sabine.

Aus der Kategorie: Alles