Wie extrahiere ich Untertitel-Zeitstempel mit ffprobe (funktioniert nicht wie erwartet)?

Wie extrahiere ich Untertitel-Zeitstempel mit ffprobe (funktioniert nicht wie erwartet)?

Ich versuche, Untertitel-Zeitstempel aus einer M2TS-Datei zu extrahieren ffprobe. Dies funktioniert nicht wie erwartet. Die M2TS-Datei enthält bekanntermaßen 1001 Untertitel in Spur 4, aber ich erhalte etwa 4000 Zeitstempel. Darüber hinaus sind diese Zeitstempel auf seltsame Weise miteinander verknüpft und unsortiert.

Die Befehlszeile, die ich verwende:

ffprobe -show_entries packet=stream_index,pts,duration -of compact=p=0:nk=1 input.m2ts > ts.txt

ts.txtenthalten dann Blöcke wie die folgenden (ich habe zur besseren Lesbarkeit Leerzeilen eingefügt):

4|57795041|N/A|
4|57795000|N/A|
4|57789168|N/A|
4|57789250|N/A|
4|57789250|N/A|
4|57982728|N/A|
4|57982687|N/A|
4|57982686|N/A|

4|63380621|N/A|
4|63380580|N/A|
4|63374748|N/A|
4|63374830|N/A|
4|63374830|N/A|

... and so on

Jeder Block entspricht einem Untertitel. Die Zeitstempel in einem Block sind nicht sortiert. Die letzten beiden Zeitstempel in einem Block sind identisch oder unterscheiden sich um maximal 1 Tick. Die Zeitbasis ist 90000 ticks / s.

Ich bin überzeugt, dass mein Problem auf mein mangelndes Verständnis der Funktionsweise ffprobeund der Einbettung von Untertitel-Zeitstempeln in einen Container zurückzuführen ist. Könnte mir bitte jemand kurz erklären, wie man Untertitel-Zeitstempel richtig extrahiert? Mich interessieren nur PTS-Zeitstempel.

Ich habe dann der Ausgabe Frame-Informationen hinzugefügt und dafür gesorgt, dass der Abschnitt und die Schlüssel gedruckt werden:

ffprobe -show_entries packet=stream_index,pts,duration:frame -of compact input.m2ts > ts.txt

Dies hat nicht geholfen. Im Folgenden sehen Sie ein Beispiel aus der Ausgabe:

packet|stream_index=4|pts=76826553|duration=N/A|
packet|stream_index=4|pts=76826144|duration=N/A|
packet|stream_index=4|pts=76826143|duration=N/A|
subtitle|

Neben der Ausführlichkeit gibt es jetzt auch zusätzliche subtitleAbschnittseinträge, die jedoch keine Daten enthalten. Natürlich gibt es jetzt auch zusätzliche Abschnittseinträge frame, aber ich habe sie nicht angezeigt, da keiner von ihnen mit Untertiteln zu tun hat.

Abschließend möchte ich sagen, dass ffprobees sich im Allgemeinen um ein geeignetes Tool zum Extrahieren von PTS-Zeitstempeln zu handeln scheint: Die Audio- und Video-Zeitstempel, die ich auf dieselbe Weise extrahiere, sind alle korrekt. Nur die Untertitel-Zeitstempel bereiten Probleme.

verwandte Informationen