Independentemente do reprodutor de mídia, quero exibir legendas separadas em um terminal de texto de rolagem para facilitar o aprendizado de idiomas, ou quando desejo legendas mais/diferentes do que os outros visualizadores, basicamente um reprodutor de legendas independente.
O formato de legenda que estou procurando exibir ésrt
, um formato fácil baseado em 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
Exemplo:
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
: (O que eu faço atualmente)
#!/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"
Eu então corro playSRT.sh MyFile.srt
, e isso funciona suficientemente bem, mas tem deficiências, como pausa/retomada estranha e RW/FF impossível.
Estou procurando uma solução melhor. Pesquisei no Google e não tenho programas adequados em meu gerenciador de pacotes. Neste ponto - eu acho - minha melhor opção é otimizar/desenvolver o acima para ler a entrada do teclado para reproduzir/pausar, +/- 5 segundos. Estou procurando ajuda com isso e/ou novas direções na missão "2 legendas em pequenas divisões na parte inferior".