Transport Stream analyiseren

Ich habe mal die (zugegeben etwas beschränkten) Möglichkeiten der aktuellen DVB.NET 3.9 SP1 genutzt, um in einem einfachen Beispiel zu demonstrieren, wie man sich einen Überblick über den Inhalt eines Transport Streams (eines ganzen Transponders) verschaffen kann. Das funktioniert allerdings nur mit BDA Treibern (also insbsondere nicht mit der Nexus / Premium Line).

Der DVB.NET TS Parser bietet im Moment leider nicht die Möglichkeit, dynamisch Teilströme an einen Client zu melden. Aber mit einem kleinen Trick geht es doch. Das Beispielprogramm aktiviert eine beliebige Quellgruppe (Transponder), die durch eine Quelle (Sender) als Repräsentant gekennzeichnet wird. Dann wird der Statistikmodus aktiviert, der dafür sorgt, dass für alle Datenströme Buch über die empfangenen Daten geführt wird. Wartet man nun etwas (so 30 Sekunden, damit auch TOT und TDT eingetroffen sind) und fragt diese Statistik dann ab, so erhält man im Allgemeinen alle Datenstromkennungen (PID) der Quellgruppe. Nun ist es ein Einfaches, Verbraucher an die einzelnen Ströme anzumelden und diese auszuwerten – das Beispiel ist allerdings extrem einfach gestrickt, reicht aber, um die meisten SI Tabellenströme von Nutzdaten zu trennen und bei PES Datenströmen die Breitstellung des PCR zu erkennen. Läßt man das Beispiel kurz laufen, kann man sich dann das Ergebnis der Analyse anschauen. Klar, dass da noch viel mehr drin wäre, aber das war hier erst einmal nicht das Thema.

Wie man am Beispiel sieht, bietet DVB.NET (aus gutem Grund) keinen direkten Zugriff auf die Interna des DVB Empfangs an. Mit ein bißchen .NET Reflection im Full Trust Modus ist das aber alles schnell gemacht. Mal schauen, ob zukünftige Versionen da einen einfacheren Zugang erlauben.

Auf diesem Wege auch einen guten Rutsch ins nächste Jahr

Jochen

Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.