在終端中定時顯示文本,可能有輕微的標記(粗體、顏色)。又名“播放 .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 個字幕”。

相關內容