Kategorien
Elektronik Hard- & Software In eigener Sache Medien Projekte

Videotext online: ttxweb im Live-Betrieb bei der ARD

Kurzmeldung

Wie vielleicht einige von euch wissen, faszinieren mich Technik und Geschichte des Teletexts, hierzulande eher bekannt als Videotext, schon seit langem. Die damals wie heute ingenieurstechnisch höchst clevere Mischung aus digitaler Codierung und analoger Fernsehübertragung, insbesondere die Art und Weise, wie das Signal aufgebaut ist und wie einfach es dadurch auf Hardware der damaligen Zeit decodiert werden kann, finde ich bis heute großartig. Auch wenn ich durchaus immer mal wieder meine Zweifel hatte, ob seine schiere Existenz heute noch gerechtfertigt ist, bin ich doch sehr dafür, ihn zu pflegen und gut zu behandeln, solange wir ihn noch haben. ;)

Wie begann sie also, meine „Teletext-Geschichte“? Da meine Großeltern bereits seit den späten 80er-Jahren einen Fernseher mit Videotext-Decoder hatten (im Gegensatz zu meinen Eltern) und ich dort regelmäßig den „Witz des Tages“ (im ARD/ZDF-Videotext auf Tafel 571…) lesen durfte, gehörte dieses Medium für mich von Kindesbeinen an dazu. Wie es genau funktionierte, verstand ich natürlich erst viel später.

Als dann irgendwann Level 2.5-Teletext aufkam und spätere Fernsehgeräte, mit denen ich in der Familie in Berührung kam, tatsächlich diesen Standard unterstützten (Wow! Plötzlich richtige Logos, wie beim ZDF, und eine ungeahnte Farbenvielfalt im Videotext!…), wollte ich irgendwann wirklich wissen, wie das alles funktioniert, und begann, mir im Internet – zum Glück wurde das damals gerade möglich – die entsprechenden Standards zusammenzusuchen und mich einzulesen.

Im Jahr 2011 habe ich mich dann in einem Blogbeitrag und einem zugehörigen, längeren Artikel mit den technischen Hintergründen des Standards beschäftigt und habe versucht, diesen in möglichst verständlichen Worten zu erklären.

Da ich mich in der Folgezeit selbst auch immer mehr mit (Retro-)Hardware beschäftigt habe, wurde mir seitdem mehr und mehr klar, mit welch einfachen Logikbauteilen eine Dekodierung eines Teletext-Signals möglich ist. Wie wenig „State“ ein solcher Decoder hat. Dass es letztlich nur ein paar Bytes RAM, ein paar (Schiebe)register, ein paar Logikbausteine, einen Character Generator mit CG-ROM und ein bisschen Videoelektronik braucht, um einen Teletext-Decoder zu realisieren. Theoretisch alles mit diskreten Bauteilen machbar (bis auf den Seiten-RAM und das CGROM vielleicht).

Irgendwann hatte ich seitdem immer Lust, so etwas selber – komplett diskret – nachzubauen. Allein, es fehlte mir die Zeit und die Muße. Später sah ich dann, dass das schon andere getan haben – in VHDL, was eine großartige Idee ist.

In meinem Beruf ergab sich dann irgendwann die Herausforderung, die Web-Darstellung des hr-texts, des Videotexts des Hessischen Rundfunks, technisch auf neue Beine zu stellen, wenn auch zunächst als vages Ziel, ohne konkreten Auftrag oder Deadline.

Meine Idee, einen eigenen Videotext-Decoder – zumindest Seiten-Decoder, ohne die Empfangs- und Auswahllogik, die ja beim Decodieren von fertigen, als Datei vorliegenden Seiten nicht nötig ist – zu schreiben, in dem Fall mit Ausgabe als HTML, nahm hierdurch neue Gestalt an, und ich programmierte „nebenher“ eine kleine Skriptsammlung in PHP, die genau das tat: ttxweb.

ttxweb kann Videotext-Daten aus einer Datei (momentan im EP1-Dateiformat, eine Anpassung an alle anderen Dateiformate, die Level 1.0/1.5-Teletext-Daten enthalten, ist aber sehr leicht machbar) lesen und in standardkonformes HTML wandeln, das in allen aktuellen Browsern aussieht wie eine „echte“ Teletextseite.

Die Besonderheit – zumindest für mich – daran ist, dass die Dekodierung genauso „stateless“ und ohne separaten „Framebuffer“ für die Displayattribute erfolgt, wie dies ein uralter Teletext-Decoder der allerersten Generation auch getan hätte.

Sprich: die Steuerzeichen werden im Zeitpunkt ihres Auftretens in Anweisungen für die HTML-Ausgabe übersetzt, anstatt dass für jede Zeichenzelle eine Speicherzelle für die Attribute (Vorder-/Hintergrundfarbe, Blinken etc.) vorgehalten würde, wie es z.B. bei einer VGA-Grafikkarte im Textmodus der Fall wäre.

Genau so arbeitet auch ein ursprünglicher Teletext-Decoder ohne Mehr-Seiten-Speicher: letztlich werden die Attribute wie Farbe, Blinken usw. in einfachen Registern vorgehalten und während jeder Rasterzeile während des Auslesens des Seitenspeichers und des CGROM in Echtzeit geändert, sobald im Seitenspeicher an der jeweiligen Spalte ein entsprechendes Steuerzeichen auftritt.

Mit dem Aufkommen von Level 1.5 (erweiterter Zeichensatz) bzw. Level 2.5 (erweiterte Farbpalette und dynamisch definierbare Zeichen) war ein solches Vorgehen dann nicht mehr möglich. Die erweiterten Zeichen bei Level 1.5 werden beispielsweise durch ein zusätzlich übertragenes Packet (X/26), also einer „unsichtbaren“ 26. Zeile, definiert, welche dem Decoder sagt, in welcher Zeile und welcher Spalte er ein Zeichen ersetzen soll. Hier ist definitiv Software nötig, um die entsprechenden Steuer-„Triplets“ zu durchlaufen.

Mein Decoder unterstützt – in auf die in europäischen Sprachen üblichen Sonderzeichen begrenztem Maße – Level 1.5, indem vor der Ausgabe die X/26-Triplets prozessiert und die betreffenden Zeichen durch die korrekten Unicode-HTML-Entitäten ersetzt werden.

Nun – wie ging die Geschichte aus? Ich habe das Ganze Open Source gemacht und auf GitHub gestellt und insbesondere der ARD und allen anderen öffentlich-rechtlichen Rundfunkanstalten ausdrücklich erlaubt, den Code zu verwenden (tatsächlich ist er auch in einem separaten Repository im ARD-internen GitLab eingecheckt, wo noch ein paar Konfigurations-Besonderheiten mitgepflegt werden, die Codebasis ist aber die gleiche). Die Lösung basiert auf zeitgemäßen Webtechnologien, ist mobil-tauglich bzw. responsiv, unterstützt Updates in Echtzeit via XHR, zeigt alle denkbaren Textattribute (inkl. doppelter Höhe/Breite/Größe und Blinken) an, unterstützt, wie gesagt, Level 1.5-Zeichen (auch das „gefürchtete“ @-Zeichen in allen möglichen Codiervarianten) und liest EP1-Dateien sowohl ohne als auch mit X/26-Erweiterungen aus, letztere in mehreren Geschmacksrichtungen (Softel Flair und Softel TAP).

Als erster Sender der ARD nutzt der Hessische Rundfunk nun die Lösung für den hr-text – und spart damit jedes Jahr bares Geld, da nicht mehr auf einen externen Dienstleister für die Web-Darstellung zurückgegriffen werden muss. Das kommt allen Beitragszahlenden zugute. Die neue Lösung läuft auf einem schlanken Webserver (mehr braucht’s ja nicht) als VM in der „ARD-Cloud“ und kann von allen gern hier bewundert werden:

https://hr-text.hr-fernsehen.de

Und ja, ich geb’s zu: ein bisschen stolz bin ich darauf schon… ;-)

Falls irgendwo Interesse an einer Implementierung „in the wild“ bestehen sollte, zögert nicht, mich zu kontaktieren, falls es Fragen zum Deployment geben sollte.

Liebe Grüße und einen guten Rutsch,
Euer Fabian

Kategorien
Hard- & Software Medien Netzwelt

Seufz. Liebe ARD Mediathek, ich würde dich ja gerne gern haben, aber…

Lust auf einen Rant zu einem anderen Thema als Corona? You’re Welcome!

Screenshot aus der ARD Mediathek mit der Fehlermeldung "Die MediaCollection konnte nicht validiert werden".
Immer wieder ein Quell der Freude: Die ARD Mediathek.

Liebe ARD, genauer gesagt, liebes ARD Online in Mainz!

Ja, ihr habt mega viel Arbeit in die ARD Mediathek gesteckt in den letzten drei Jahren. Es hat sich vieles verbessert. Allein, dass es jetzt nicht mehr drei verschiedene Mediatheken gibt (Das Erste Mediathek, ARD Mediathek, die Dritten Programme – mit Ausnahme des BR, der ja irgendwie immer noch eine Extrawurst brät) ist löblich. Die Metadaten, die Verschlagwortung, die Suchfunktion, das Design und die Technologie dahinter werden langsam besser.

Aber all das darf nicht darüber hinwegtäuschen, dass die ARD Mediathek leider immer noch abgrundtief schlecht und unzuverlässig ist! So! Jetzt ist es raus!

Lobt euch bitte nicht für ein Produkt, das zwar besser als ein nicht mehr tragbares Vorgängerprodukt aus den 2000ern ist, aber nach heutigen Maßstäben (YouTube, Netflix) einfach immer noch unfassbar lächerlich ist. Und einfach an so vielen Stellen kaputt, ohne jegliche erkennbare Besserung in den letzten Monaten! Besonders, wenn man sie intensiv nutzt oder dies zumindest beabsichtigt, fällt das an allen Ecken und Enden auf.

Sendungen wie Tatort oder auch Brennpunkt tauchen immer noch drei, vier, fünfmal auf (bei den Dritten und im Ersten, mit und ohne Gebärdensprache, Sendungen im „Ersten“ auch immer noch viel zu häufig zweimal – einmal als Sendemitschnitt vom Ersten, einmal ohne SAW-Logos direkt zugeliefert).

Die Qualität schwankt extrem, von Full HD (mehr ist scheinbar nicht vorgesehen) bis zu ruckelndem Klötzchenbrei.

Immer wieder bleibt die Navigation im Vollbildmodus sichtbar und blendet sich ums Verrecken nicht aus. Egal, wie wild man mit der Maus gestikuliert, den Vollbildmodus verlässt, wieder aktiviert (das ist dann bei mir so ein Punkt wo ich wegschalte).

Weiter: bei „Sendungen A-Z“ fehlt bei jedem dritten Laden die Hälfte der Sendungen unter einem bestimmten Buchstaben. Reload bringt nichts. Ups, das Sandmännchen bringt einen „404 Error“. Weiter gehts, probierst du halt das Video über einen anderen Weg zu finden. Ach, da. Hups, „Die MediaCollection konnte nicht validiert werden“ (WTF?!).

Videos sind erst „ab 01.10.2021, 20:15 verfügbar“, obwohl es längst Dezember ist. Am Fernseher via HbbTV sind wahllos Videos „leider nicht verfügbar“. Die Lautstärkeregelung mit den Systemtasten verhält sich unter Windows immer noch erratisch (einmal mit der Maus auf „Mute“ in der Mediathek geklickt, ist es unmöglich, mit der Windows-Mute-Taste auf der Tastatur wieder zu unmuten, denn die toggelt dann das Windows-Mute und das Mediatheks-Mute gegenläufig. Liebe Developer, hört her: Die Mediathek darf nicht auf diese Tasten reagieren, die sollen nur die Systemlautstärke steuern, schon zig mal gemeldet, was ist denn daran so schwer zu verstehen?!).

Die Navigation ist generell unübersichtlich, es ist nicht immer klar, in welchem View man sich befindet, und auch der „Zurück“-Pfeil links oben macht oft nicht das, was man erwartet. Wenn er überhaupt da ist.

Willkürlich wird bei einigen Sendungen ein Datum angezeigt, bei anderen nicht. Hier zum Beispiel nicht:

Screenshot aus der ARD Mediathek. Zu sehen eine Reihe von Thumbnails, alle nur beschriftet mit "tagesschau von 20:00 Uhr" etc., ohne Datum.

Auf der Suche nach einer tagesschau-Ausgabe von einem bestimmten Datum? Viel Spaß!

Eine sich über zwei Zeilen erstreckende Qualitätsauswahl (ich zitiere: „Automatische Qualität – Niedrige Qualität – Mittlere Qualität – Hohe Qualität – Sehr hohe Qualität – Full HD“ – euer Ernst? „Hohe Qualität – Sehr hohe Qualität – Full HD“? Wenn ihr so viele Qualitätsstufen habt, schreibt doch wenigstens einfach die Auflösung hin, wie bei YouTube, dann weiß man bescheid!) überfordert den Nutzer.

Bei Nutzung im Browser reißt der UX-Flow einfach immer irgendwo ab, weil die ganze Sache in einen Zustand gerät, wo einfach keine Thumbnails mehr laden, Sendungen fehlen, oder, oder. Da hat sich in den letzten 24 Monaten keinen Deut was gebessert!

It – is – a – mess!

Liebe Leute, ernsthaft! Es macht auch 2021 immer noch einfach keinen Spaß, Inhalte bei euch anzuschauen. Niemand von euren anvisierten „jungen Zielgruppen“ wird sich von euch von Instagram, YouTube & Co. freiwillig auf die ARD Mediathek „locken lassen“, so lange es da so, mit Verlaub, sch…recklich ist! Seht das mal ein und repariert in einem ersten Schritt einfach mal alles oben Genannte! Die meisten dieser Fehler sind seit Monaten bekannt!

Und ich wünschte, ich könnte was anderes sagen, denn ich bin ja auf eurer Seite.

So. Habe fertig. ;-)

(Bilder: Symbolbilder ARD Mediathek. Quelle: ardmediathek.de)

Kategorien
Hard- & Software In eigener Sache Netzwelt Projekte

Warum FLST unter Firefox 57 nicht mehr funktioniert, und warum ich daran nichts ändern kann

FWW-FLST Logo-Grafik

Vor einigen Tagen wurde Firefox 57 veröffentlicht (auch unter dem Namen „Firefox Quantum“ bekannt), und wer keine Add-Ons installiert hat, wird vor allem eines gemerkt haben: Der Browser ist merklich schneller geworden und auch das Font-Rendering auf Webseiten ist nun schöner.

Alles in allem also ein toller Fortschritt – oder?

Nun ja – Langjährige Firefox-User, die seit über 12 Jahren Funktionalitäten zu schätzen gelernt haben, die nur mit Add-Ons realisierbar waren (zum Beispiel das von FLST implementierte Tab-Flipping per Klick auf den aktuellen Tab… ;-), aber auch: Tab-Scrolling durch alle offenen Tabs durch Drehen des Mausrades auf der Tableiste; bunte Tabs usw.) werden das anders sehen. All ihre geliebten Add-Ons funktionieren auf einen Schlag nicht mehr. So auch mein Add-On „FLST (Focus Last Selected Tab)“ mit seiner wohl tatsächlich von einer Vielzahl von Usern jetzt schmerzlich vermissen Tab-Flipping-Funktion.

Warum? Weil Mozilla die XPCOM/XUL-API, die die Grundlage für alle Add-Ons war, einfach „abgeklemmt“ hat. Das Killer-Feature von Firefox, nämlich die Erweiterbarkeit durch Add-Ons (und zwar nicht nur „optische Erweiterbarkeit“ wie bei Skins/Themes oder Erweiterbarkeit um bestimmte Website-spezifische Aktionen wie bei Chrome-Extensions), welches für viele eingefleischte Firefox-Fans das Hauptargument war, bei diesem Browser zu bleiben (denn langsamer als Chrome war er schon immer…), ist damit einfach weg. Einfach so.

Begründung von Mozilla: Die XUL-API habe Firefox verlangsamt und sei unsicher gewesen, da Add-Ons im Prinzip die komplette Kontrolle über den Browser (nämlich: über seine Oberfläche, seine Funktionalitäten, sein Aussehen, sein Verhalten) hatten.

Stimmt soweit – aber genau das war ja der Punkt, der die Add-Ons und damit die gesamte Firefox-„Biosphäre“ so interessant gemacht hat!

Absurd ist das deshalb, weil mit der Einführung von Add-On-Signaturen das Problem der Sicherheit von XUL-Add-Ons eigentlich schon gelöst oder zumindest gelindert wurde, und weil die neuen WebExtensions „nur noch“ so Sachen machen dürfen, wie… JavaScript in Seiten injizieren. Ja, richtig gelesen. Mein FLST darf nicht mehr den Klick auf die Tab-Leiste abfragen, aber JavaScript in jede beliebige Seite injizieren (nachdem ich bei der Installation einmal um Erlaubnis gefragt habe) dürfte es! Da schüttelt man doch den Kopf.

Und jetzt? Die erwähnten WebExtensions sind der neue Weg, Erweiterungen für Mozilla zu schreiben. Vorteil soll sein, dass diese (fast) unverändert kompatibel zu Chrome sind (oder gemacht werden können) und weniger tief in den Browser eingreifen. Damit soll der Browser insgesamt wartbarer werden, schneller, sicherer.

Und das stimmt sogar. Ja, alles wirklich valide Argumente aus Sicht der Entwickler! Vielleicht lassen sich damit neue User gewinnen, und klar: der neue Firefox ist schnell und sieht gut aus! Aber meiner Meinung nach hat sich Mozilla hier den Ärger all derer selbst eingehandelt, die über Jahre hinweg die größten Verfechter waren und selbst gegenüber anderen, die immer meinten, Firefox sei langsam(er), argumentierten, das habe gute Gründe und dafür sei er von den Features her auch viel mächtiger.

Jetzt ist er es jedenfalls nicht mehr.

Schade!

Wie geht es nun mit den „Legacy-Add-Ons“ weiter? Einige simple Funktionen lassen sich sicher in WebExtensions abbilden, aber gerade die Add-Ons, die die vermeintlich einfachsten Features (wie FLST) implementiert haben, lassen sich auf der neuen API einfach nicht mehr implementieren. Weil, „geht halt nicht“! Punkt!

Ganz konkret scheitert es im Falle von FLST am Fehlen eines bestimmten Event-Listeners (nämlich dem für Klicks auf der Tableiste bzw. auf Tabs). Und ich scheine mit meinem Add-On nicht der Einzige zu sein, der sich diesen (oder auch Events für Rechtsklicks/Linksklicks/Mausradklicks/Mausrad-Bewegung auf der Tableiste) wieder herbeiwünscht – ein Blick in den Mozilla-Bugtracker unter der ID 1246706 zeigt hitzige Diskussionen (Tipp: auch die als „unangemessen“ gemeldeten Beiträge mal einblenden…) ;-)

Was soll ich sagen: der Bug ist im Status „RESOLVED – WONTFIX“. Was soviel heißt wie: „Gibbet nich. Wird nicht mehr implementiert. Basta.“

Also – allen, die sich in den vergangenen Tagen darüber geärgert haben, dass mein Add-On nicht mehr funktioniert, oder mich angeschrieben und darum gebeten haben, dass ich das Add-On für Firefox 57 aktualisiere, sei gesagt: Ich würde ja gerne – aber es gibt einfach technisch keine Möglichkeit! Bedankt euch bei Mozilla! ;-P

Tipp: wer FLST weiter nutzen möchte, kann noch bis Mitte nächsten Jahres auf die (in erster Linie für Unternehmen mit „konservativerer“ Update-Politik gedachte) sogenannte ESR-Version von Firefox zurückgreifen. Dort werden bis voraussichtlich Juni 2018 noch XUL-Add-Ons unterstützt. Danach ist, wie es aussieht, auch hier Schluss.

Sollte sich an Mozillas Haltung etwas ändern bzw. bestimmte APIs wieder eingeführt werden, werde ich gerne nochmal einen Anlauf unternehmen. Für jetzt ist das Projekt „FLST als WebExtension für Firefox 57+“ allerdings erstmal begraben.

Euer Fabian

Kategorien
Hard- & Software In eigener Sache Netzwelt Projekte

FLST aktualisiert, neues Tool veröffentlicht

Seit letzter Woche gibt es ein kleines Update zu "Focus Last Selected Tab", welches ein kleines Problem mit Firefox 42 und höher aus dem Weg räumt (ein Klick auf den neuen Tab-Mute-Button löste immer auch ein Tab-Flipping aus, sofern dies aktiviert war). Viel Spaß mit der neuen Version (1.2.1)!

AESy IconAußerdem habe ich mein vor einigen Monaten entwickeltes Mini-Tool AESy online gestellt (der etwas merkwürdige Name leitet sich vom digitalen Audio-Datenstromformat AES/EBU ab, das im professionellen Audio-Umfeld verwendet wird). Auch wenn das Tool seit einiger Zeit in mehreren Fernseh-Ton-Regien innerhalb der ARD tatsächlich zum Einsatz kommt, um die Soundausgabe softwarebasierter Sample-Player in Verbindung mit günstigen USB-Soundkarten unterbrechungsfrei zu machen (und auch ursprünglich hierfür entwickelt wurde), so kann es doch auch für Heimanwender einen recht hohen Nutzwert haben:

Wer seinen PC über S/PDIF oder HDMI an seinen Heimkino-Receiver oder Verstärker mit digitalem Audioeingang angeschlossen hat, kennt eventuell das Problem, dass immer dann, wenn längere Zeit kein Sound vom PC ausgegeben wurde, der Anfang des jeweils nächsten Sounds (z.B. der Song-Anfang des nächsten Stücks) abgeschnitten wird, weil der AV-Receiver ein paar Millisekunden braucht, um sich erneut auf den S/PDIF-Bitstrom zu synchronisieren. Das passiert insbesondere bei Laptop-Soundkarten, die den S/PDIF-Strom komplett abschalten, wenn einige Sekunden kein Sound mehr durch den Soundtreiber ausgegeben wurde.

Wen das nervt, für den ist AESy das richtige Tool. AESy löst das Problem durch kontinuierliche Erzeugung eines stummen Audio-Streams ("Leerrahmen") einer ausgewählten Sample-Rate. Es bietet darüber hinaus noch die Möglichkeit, einen 1-kHz-Pegelton (Sinuston) zu generieren. Es kann auf meiner Download-Seite für persönliche und nichtkommerzielle Zwecke kostenlos heruntergeladen werden. Zu nichtkommerziellen Zwecken zähle ich im Fall dieses Programms auch den Einsatz in öffentlich-rechtlichen Rundfunkanstalten sowie in Bildungseinrichtungen.

Kategorien
Hard- & Software In eigener Sache Netzwelt Projekte

Update für FLST (Focus Last Selected Tab) für Firefox 29 verfügbar

FWW-FLST Logo-GrafikIn den letzten Tagen erreichten mich vermehrt Kommentare, dass mein Firefox-Add-On „Focus Last Selected Tab“ (FLST) für Firefox 4 und höher unter dem neuen Firefox 29 nicht mehr ganz das tut, was es soll: Tab-Flipping funktioniert zwar noch, aber die Funktion, den zuletzt fokussierten Tab beim Schließen eines Tabs automatisch anzuwählen, funktioniert nicht mehr, wenn man einen Tab per Klick auf den „X“-Button schließt. Beim Schließen von Tabs mittels Tastatur-Shortcut funktionierte alles wie gehabt.

Da ich selbst aufgrund der neuen Oberfläche von Firefox 29, mit der ich mich irgendwie noch nicht so recht anfreunden kann, derzeit die ESR-Version von Firefox 24 weiternutze, wurde ich erst durch die Benutzer-Reviews auf den Fehler aufmerksam und habe mich dessen nun angenommen. Seit heute steht auf der Mozilla-Add-On-Webseite eine aktualisierte Version (1.1.5) bereit, die das Problem behebt und auch unter Firefox 29 und höher einwandfrei funktioniert.

Benutzer, die automatische Add-On-Updates in Firefox aktiviert haben, kommen automatisch in den Genuss des Updates.

Darüber hinaus habe ich das Add-On mit diesem Update auch kompatibel zu SeaMonkey 2.x gemacht; ein Wunsch, der ebenfalls schon seit Monaten immer mal wieder aus der SeaMonkey-Gemeinde an mich herangetragen wurde.

Ich hoffe, mit diesem Update allen Firefox-29- und SeaMonkey-Usern den Wochenstart etwas versüßen zu können!

Viele Grüße,
Fabian