Wie kann ich EPG-Daten aus MPEG TS-Dateien extrahieren?

4976
rogerdpack

Ich habe die Möglichkeit, "MPEGTS" DVB / ATSC-Streams aufzunehmen. Ich möchte in der Lage sein, die TS-Dateien zu entnehmen und "EPG" (Programmieranleitung) -Informationen daraus zu extrahieren, da FFmpeg (das Capturing übernimmt) scheinbar keine EPG-Informationen aus den MPEGTS-Streams lesen kann . Wie extrahiere ich diese Daten in eine Textform, die für Menschen lesbar ist? Ich habe die MPEGTS-Dateien als Eingabe verfügbar. Ich habe ein paar Bibliotheken ausprobiert:

libdvbtee scheint nur für Unix zu kompilieren: https://github.com/mkrufky/libdvbtee/issues/12 (Update: es funktioniert jetzt für Windows, siehe Antwort)

DVBInspector ist nur eine grafische Benutzeroberfläche (Befehlszeilenoberfläche ist hier erwünscht).

Die kostenlose Version von TSReader extrahiert keine EPGs.

FFmpeg scheint noch kein Konzept für die Unterstützung von EPG zu haben.

CherryEPG scheint nur zu schreiben, nicht EPG zu lesen.

libucsi kann es anscheinend tun, aber es war nicht klar, ob es eine Befehlszeilenoption gab.

EPG Collector scheint nur GUI (?) Zu sein und war schwer zu verstehen, wie man eine vom Menschen lesbare Ausgabe konvertieren kann.

7
Downvoter können sich gerne dazu äußern oder mir einen besseren Ort mitteilen, um sie zu posten. rogerdpack vor 8 Jahren 0
`libdvbtee` wird jetzt für Windows kompiliert, wenn Sie den` win`-Zweig verwenden. Ich hoffe auf ein Testfeedback, bevor ich die restlichen Änderungen in den `master'-Zweig einfüge. http://github.com/mkrufky/libdvbtee/commits/win mkrufky vor 8 Jahren 0

2 Antworten auf die Frage

7
mkrufky

Nachdem Sie diese Frage gepostet haben, bin ich weitergegangen und habe die Unterstützung für Windows Builds verbessert libdvbtee

libdvbteeist eine Open Source-Transportdaten- Decoderbibliothek ( mkrufky.github.io/libdvbtee ), die Sie zum Anzeigen des EPG oder anderer in eine TSDatei eingebetteter Serviceinformationen verwenden können . Verwenden Sie den folgenden Befehl:

dvbtee -F mpegfile.ts 

Wenn Sie die -jOption hinzufügen, wird auch der Inhalt der PSIPTabellen und descriptorsin einem JSONObjekt ausgegeben :

dvbtee -F mpegfile.ts -j 
Der Fragesteller erwähnte bereits "dvbtee" und dass es für sie nicht funktionierte. Sie sollten wahrscheinlich hinzufügen, dass Sie Ihr Programm inzwischen unter Windows verbessert haben. :) Dubu vor 8 Jahren 0
Ich habe "dvbtee" in der Tat verbessert, als das OP diese Frage veröffentlichte. Die Diskussion zwischen uns und dem github-Ausgaben-Tracker wurde fortgesetzt. Er bat mich, hier eine abschließende Antwort zu veröffentlichen, um anderen Nutzern zu helfen. mkrufky vor 8 Jahren 1
Ihre dvbpsi-Bibliothek scheint jetzt (sofern der Name kein Zufall ist) Teil von videolan zu sein (http://git.videolan.org/git/libdvbpsi.git), aber was ist mit dvbtee selbst? Bruce Adams vor 6 Jahren 0
`dvbpsi` ist, solange ich mich erinnern kann, ein Teil von videolan. `dvbtee` ist eine Abstraktion auf einer viel höheren Ebene, die wahrscheinlich nie an dem Videolan-Projekt teilnehmen wird. Es wird in einem separaten Git-Repository gepflegt und entwickelt. Ich bin offen für die Erstellung von Distributionspaketen, wenn die Leute interessiert sind, aber andererseits ist es Open Source, und jeder kann sich dazu frei fühlen. mkrufky vor 6 Jahren 0
@BruceAdams, wenn Sie nach einem Windows-Build von "dvbtee" suchen, hat das OP-Poster eine Cross-Build-Konfiguration unter https://github.com/rdp/ffmpeg-windows-build-helpers mkrufky vor 6 Jahren 0
Eigentlich war ich auf der Suche nach einem Linux-Build. Bruce Adams vor 6 Jahren 0
Es gibt Build-Anweisungen in der `README.md` mkrufky vor 6 Jahren 0
1
rogerdpack

OK, ich habe EPGCollector entdeckt. Er hat EPGCentre.exe, die nette Benutzeroberfläche, und EPGCollector.exe, die eine Konsolen-App ist. Die EPGCentre.exe spuckt eine Konfigurationsdatei aus, die Sie überall speichern können. Führen Sie dann einfach die Konsolen-App als Prozess aus, die im Hintergrund aktiviert wird

Beispiel-Befehlszeilenargumente für die Konfigurationsdatei, die EPGCentre.exe ausspuckt!

C: \ EPGCollector.exe /INI=BNE.ini