DVB.NET und DirectShow – der ewige Kampf

Nachdem ich nun meinen ersten PC auf Windows 10 aktualisiert habe musste ich feststellen, dass die mit Windows 7 noch verfügbaren Microsoft Video Codecs für MPEG-2 und H.264 nicht mehr zur Verfügung stehen – genau genommen ist das schon seit Windows 8 so, aber diese Version habe ich stillschweigend übersprungen. Das ist für mich etwas schade, da der DVB.NET / VCR.NET Viewer sehr pingelig bezüglich der verwendeten Codecs ist und mit den Microsoft Codecs ausgesprochen gut zurecht kam.

Ich habe daher die LAV Codecs installiert und grundsätzlich funktionieren die auch, nur leider ist der Ton deutlich sichtbar versetzt. Ich habe hier zwar etwas drehen können, aber mein mangelndes Wissen im Bereich BDA und DirectShow macht sich mal wieder sehr schmerzlich bemerkbar. Da ich nicht die Absicht habe, dieses Wissen zukünftig zu vertiefen, kann es sein, dass mit Windows 10 das endgültige Ende des Viewers gekommen ist. Ein kleiner Tweak hilft aber zumindest mir ein bisschen, so dass ich demnächst ein Update für den Viewer bereit stellen werden – eine wirkliche Weiterentwicklung der Version 4.3 wird es wie angekündigt nicht geben.

Doch nun zu einigen Details. Im Kern setzt DVB.NET zur Anzeige von Bild und Ton zwar auf BDA und DirectShow, verwendet allerdings keine der angebotenen Splitter. Vielmehr wird im Eingang ein TS (Transport Stream) selbst analysiert, was Teile des Codes nicht nur flexibler macht (es ist egal, ob der Strom von einer TV Karte, einer Datei oder über das Netzwerk ankommt) sondern tatsächlich auch den Code vereinheitlicht und vereinfacht.

Der Preis ist allerdings, dass Bild und Ton manuell in den BDA Graphen injiziert werden müssen. Aus nicht mehr ganz nachvollziehbaren Gründen (ja, das ist teilweise schon sehr lange her – sorry) versetzt DVB.NET die so genannte Stream Time der Tonspur um eine halbe Sekunde nach hinten. Die Idee war damals bei langsameren Rechnern wohl, dass der Video-Codec Zeit erhalten sollte, das Bild vorzubereiten, bevor dies synchron mit dem Ton angezeigt wird. Irgendwie kommt LAV aber mit dieser Manipulation wohl nicht klar.

Da dieser Parameter (AVDelay im Code) sowieso schon konfigurierbar war, hat der Viewer nun die Möglichkeit erhalten, diese Einstellung in einem gewissen Rahmen (+/- 2 Sekunden) vorzugeben. Mit einem Wert von 0 scheint es im Moment einigermaßen ordentlich zu funktionieren – perfekt ist es aber nicht! Ich werde das weiter beobachten, eventuell wird dieser Work-Around aber als Patch veröffentlicht – schauen wir einmal.

Neue Einstellungen

Bis bald

Jochen

P.S.: Ein Wert von 100 hat sich zumindest bei mir hier ganz gut bewährt und ich habe die Version Online gestellt.

Und noch eine kleine App

Ergänzend zu BitMe habe ich noch ein kleines Spielchen im Umfeld der binären Zahlen entwickelt – passend zum Informatikunterricht zu Beginn der Mittelstufe. Bei BoolIt ist es die Aufgabe, für die einfachen Logikgatter auf Basis von zufällig gewählten Eingängen so schnell wie möglich den Wert des Ausgangs zu bestimmen.

Der Quellcode ist wie gewohnt auf GitHub zu finden. Auch diese App ist wieder bewusst einfach gehalten und tatsächlich habe ich im Wesentlichen die selben Android Basistechnologien wie bei BitMe verwendet – also nicht wirklich viel Neues gelernt. Ich denke das nächste Projekt muss zumindest ein noch weißes Feld enthalten – schauen wir mal!

Frohe Ostern

Jochen

BitMe BoolIt IEC Unterstützung

Jeder hat mal klein angefangen…

Um einmal ein wenig aus den tief eingelaufenen (Microsoft) Wegen zu entfliehen und vielleicht auch mal einen Blick in die persönliche Zukunft zu werfen, habe ich mich entschlossen ein bisschen (wenn auch private) praktische Erfahrungen im Mobile Umfeld zu sammeln. Nach einigen Enttäuschungen bei Versuchen mit einer Web App (auf Basis von jQuery Mobile) – über die ich vielleicht auch einmal hier berichten werde – und dem bewussten Überspringen von Xamarin (bedingt durch ein ziemlich schlechtes Buch) habe ich als zweiten Versuch direkt das Android SDK mit dem Android Studio verwendet. Lustiger Weise konnte ich hier zig Jahre alte Java Kenntnisse direkt nutzen – irgendwie trotzt einiger Neuerung doch alles sehr vertraut.

Naja, so richtig toll ist die erste App nicht geworden, vor allen was die graphische Gestaltung angeht. Aber sie scheint ihren Zweck zu erfüllen (zum Hintergrund: mein Sohn muss sich in Informatik gerade mit dem Binärsystem auseinandersetzen), daher habe ich sie einfach mal auf Google Play veröffentlicht. Den Quellcode gibt es natürlich auch wie gewohnt auf GitHub, aber da ich selbst noch ganz am Anfang stehe kann man hier nicht viel lernen.

Mein Fazit: nach einigen Einstiegsschwierigkeit ist das Android Studio doch eine recht angenehme IDE. Die Grundstruktur einer Android App ist durchaus vergleichbar mit anderen UI Konzepten, die mir im Laufe der Jahre so begegnet sind – in meinen Augen vor allem WPF und Silverlight. Allerdings glaube ich, dass eine App für alle Formfaktoren wirklich kein Kinderkram ist – ich habe alleine schon Mühe gehabt, eine einfach Seite auf einem Galaxy S4 auch auf einem S3 Mini einigermaßen bedienbar zu bekommen.

Aber ich lerne ja noch 🙂 Und es macht wirklich Spaß, mal wieder Neuland zu betreten – trotz der immer wiederkehrenden kleinen und großen Rückschläge.

In diesem Sinne: Death to the Comfort Zone!

Jochen

Support für Versionen vor 4.3 eingestellt

Mit der Freigabe der Version 4.3 vom VCR.NET Recording Service, DVB.NET und dem VCR.NET / DVB.NET Viewer wird der Support für alle älteren Versionen einschließlich der Version 4.2 eingestellt. Insbesondere wird nun Windows XP nicht mehr unterstützt – ich hoffe, dass ich damit keinen zu hart treffe, aber die 4.2 hat sich ja im letzten Jahr als ausreichend stabil erwiesen.

Jochen

DVB.NET und VCR.NET 4.3 sind fertig gestellt

Detail zu den Änderungen und Erweiterungen finden sich in der Änderungshistorie, die Downloads stehen an der gewohnten Stelle zur Verfügung. Zur besonderen Beachtung: da das Paket nun das Microsoft .NET Framework 4.5.1 voraussetzt ist ein Betrieb unter Windows XP nicht mehr möglich.

Es handelt sich um die letzte Version des DVB.NET / VCR.NET Paketes, i.e. es wird zukünftig keine neuen Features mehr geben. Ich werde allerdings noch eine Weile Fehler beheben – in der Hoffnung, dass die Anzahl ernsthafter Probleme überschaubar bleibt.

Viel Spaß trotzdem

Jochen