¿Cómo extraer marcas de tiempo de subtítulos usando ffprobe (no funciona como se esperaba)?

¿Cómo extraer marcas de tiempo de subtítulos usando ffprobe (no funciona como se esperaba)?

Estoy intentando extraer marcas de tiempo de subtítulos de un archivo M2TS usando ffprobe. Esto no funciona como se esperaba. Se sabe que el archivo M2TS contiene 1001 subtítulos en la pista 4, pero obtengo alrededor de 4000 marcas de tiempo. Además, esas marcas de tiempo están relacionadas de manera extraña y no están ordenadas.

La línea de comando que estoy usando:

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

ts.txtluego contiene bloques como el siguiente (he insertado líneas en blanco para facilitar la lectura):

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

Cada bloque se corresponde con un subtítulo. Las marcas de tiempo de un bloque no están ordenadas. Las dos últimas marcas de tiempo de un bloque son idénticas o difieren en 1 tick como máximo. La base de tiempo es 90000 ticks / s.

Estoy convencido de que mi problema se debe a mi falta de comprensión de cómo ffprobefunciona y cómo se incrustan las marcas de tiempo de los subtítulos en un contenedor. ¿Alguien podría explicar brevemente cómo extraer las marcas de tiempo de los subtítulos de la manera correcta? Solo me interesan las marcas de tiempo de PTS.

Luego agregué información del marco a la salida y le hice imprimir la sección y las claves:

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

Esto no ayudó; A continuación se muestra un ejemplo del resultado:

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|

Además de ser más detallado, ahora hay subtitleentradas de sección adicionales, pero no contienen datos. Por supuesto, ahora también hay frameentradas de secciones adicionales, pero no las mostré porque ninguna de ellas está relacionada con los subtítulos.

Finalmente, me gustaría señalar que, ffprobeen general, parece ser una herramienta adecuada para extraer marcas de tiempo PTS: las marcas de tiempo de audio y video que extraigo de la misma manera son todas correctas. Son sólo las marcas de tiempo de los subtítulos las que imponen un problema.

información relacionada