Visualización programada de texto en la terminal, quizás con un ligero marcado (negrita, colores). También conocido como "reproducir subtítulos .srt"

Visualización programada de texto en la terminal, quizás con un ligero marcado (negrita, colores). También conocido como "reproducir subtítulos .srt"

Independientemente del reproductor multimedia, quiero mostrar subtítulos separados en una terminal de texto con desplazamiento para facilitar el aprendizaje del idioma, o cuando quiero más subtítulos o diferentes a los de otros espectadores, básicamente un reproductor de subtítulos independiente.

El formato de subtítulos que busco mostrar essrt, un formato sencillo basado en texto:

<indexNr>                    # Starts at 1, then 2, 3, ...
<startTime> --> <endtime>    # Both times in format "hh:mm:ss,ms"
<body1>                      # Subtitle text Line
<bodyN>                      # Optional following lines
<emptyLine>                  # Empty line as separator

Ejemplo:

1
00:00:02,623 --> 00:00:05,054
U&L StackExchange Studios present
♫ Nice Tune playing ♫

2
00:00:06,823 --> 00:00:08,414
From the <b>A Quick Hack</b> series

3
00:00:10,123 --> 00:00:23,054
Viewing Srt Files with Perl:

~/bin/playSRT.sh: (Lo que hago actualmente)

#!/bin/sh
perl -lane 'BEGIN{$counter=1;}
if(@F[1]=~ /-->/) {
  @t=split(":",(split(",",@F[0]))[0]);
  $s=@t[0]*3600+@t[1]*60+@t[2] ;
  #print "Waiting until $s s @t[0] @t[1] @t[2]";
  sleep($s-$last); $last=$s;
} else {if (@F[0] == $counter) {$counter++} else {print }}
' "$1"

Luego ejecuto playSRT.sh MyFile.srt, y eso funciona bastante bien, pero tiene desventajas, como una pausa/reanudación incómoda y un RW/FF imposible.

Estoy buscando una mejor solución. Busqué en Google y no tengo programas adecuados en mi administrador de paquetes. En este punto, creo, mi mejor opción es optimizar/desarrollar lo anterior para leer la entrada del teclado para reproducir/pausar, +/-5 segundos. Estoy buscando ayuda con eso y/o nuevas direcciones en la misión "2 subtítulos en pequeñas divisiones en la parte inferior".

información relacionada