Отображение текста в терминале по времени, возможно, с небольшой разметкой (жирный шрифт, цвета). Также известен как "воспроизведение .srt субтитров"

Отображение текста в терминале по времени, возможно, с небольшой разметкой (жирный шрифт, цвета). Также известен как "воспроизведение .srt субтитров"

Независимо от медиаплеера я хочу отображать отдельные субтитры в прокручиваемом текстовом терминале, чтобы облегчить изучение языка, или когда мне нужно больше/других субтитров, чем в других средствах просмотра, по сути, автономный проигрыватель субтитров.

Формат субтитров, который я пытаюсь отобразить, этоsrt, простой текстовый формат:

<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

Пример:

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: (Чем я сейчас занимаюсь)

#!/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"

Затем я запускаю playSRT.sh MyFile.srt, и это работает достаточно хорошо, но имеет недостатки, такие как неудобная пауза/возобновление и невозможность RW/FF.

Я ищу лучшее решение. Я погуглил, и в моем менеджере пакетов нет подходящих программ. На данный момент - я думаю - мой лучший вариант - оптимизировать/доработать вышесказанное для чтения ввода с клавиатуры для воспроизведения/паузы, +/-5 секунд. Я ищу помощь с этим и/или новые направления в квесте "2 субтитра в небольших разделах внизу".

Связанный контент