ビデオと字幕 · 字幕ツールキット
SubRip の歴史: DVD リッピング ツールの出力がどのように .srt になったか
· 背景
字幕 srt ファイル形式 タイムコード
SRT は、標準ではなくプログラムにちなんで名付けられています。この投稿では、SubRip の OCR 出力がどのようにしてウェブ上で最も一般的な字幕形式になったのか、正式な仕様がない理由、そしてそれが今日の互換性にとって何を意味するのかを追跡します。
フォーマットにプログラムの名前が付けられているのはなぜですか? — SubRip 名の背後にある日常のパズル
SRT という文字は、標準委員会の名前ではなく系統マーカーです。これらは、ディスクからの字幕素材を時間指定テキストに変換するソフトウェアである SubRip を指します。この起源は、この形式がユーティリティの実用的な出力のように感じられる理由を説明するのに役立ちます。つまり、周囲に大規模なメタデータ モデルがなく、通常のエディタで読み取れるコンパクトな番号付きブロックです。
履歴の詳細は、日々の互換性にとってはそれほど重要ではなく、SRT が使用と実装を通じて広がるという結果よりも重要です。したがって、リポジトリは、これを、許容されるすべてのバリエーションが 1 つの統治仕様から引用できる文法としてではなく、現実世界の方言が寛容な入力を必要とする従来の形式として扱います。
プログラムの SubRip — 文字認識を使用して DVD の字幕をテキストとして抽出するツール
DVD 字幕ストリームは通常のテキスト行ではなく画像ベースであるため、編集可能な単語を抽出するには文字認識または手動修正が必要です。 SubRip はその抽出ワークフローに関連付けられており、そのテキスト出力は認識されたダイアログとそれを表示するために必要なタイミングを組み合わせています。この記事では、公開日、作成者、バージョン履歴などの詳細は、ここで使用されているリポジトリ ソースによって確立されていないため、指定しません。
文字認識は、SRT の単語が間違ったままであるにもかかわらず、構造的には完璧であり得る理由も説明します。 ToolAcre はキューの境界を解析し、マークアップを削除できますが、光学的認識や転写の修正は実行しません。歴史的な起源と現在の変革は別の仕事です。
出力形式 — インデックス、タイムコード行、テキスト、空白行、およびそのシンプルさが普及した理由
見慣れた出力形状には 4 つの部分があります。数値インデックス、矢印で区切られた開始タイムスタンプと終了タイムスタンプを含む行、1 つ以上のテキスト行、およびブロックを終了する空白行です。その強みは点検性です。人間は特別なソフトウェアを使わずにキュー 40 を見つけ、その時間を読み取り、その単語を編集することができますが、パーサーは同じ文書をブロックに分割することができます。
ToolAcre はインデックスを ID として信頼しません。各ブロックで矢印を検索し、正常に解析されたキュー自体に番号を付け、以降のすべての行をキュー テキストとして結合します。シリアル化の際に、SRT インデックスを 1 つから連続して出力します。これにより、重複やギャップが履歴アーティファクトとして保存されるのではなく修復されます。
標準はなく、唯一の慣例 — 仕様の欠如がどのように方言やプレイヤー固有の寛容をもたらしたのか
すべてのプロデューサーとプレーヤーを管理する 1 つの正式な SRT 仕様がなければ、規約が互換性レイヤーになります。ファイルには、カンマまたはピリオドの分数、時間の省略、バイト オーダー マーク、行末の混在、インデックスの欠落、および不正な形式のブロックが含まれています。異なるプレーヤーは異なるサブセットを許容するため、あるアプリケーションで動作するファイルはそのアプリケーションに関する証拠であり、普遍的な有効性の証明ではありません。
パーサーは、一般的で明確なバリエーションを受け入れ、安全に解釈できないエラーを報告することでこれに答えます。ミリ秒の区切り文字とオプションの時間のいずれかを受け入れ、先頭のマークを削除し、行末を正規化し、タイムスタンプ行を検索します。 59 を超える分または秒は拒否され、キューをサイレントに移動するのではなく、ファイル全体を中止するのではなく BAD_TIMESTAMP または NO_TIMESTAMP を記録します。
タイムコード内のカンマ — 大きなレガシーを持つ 1 つの小さな詳細
SRT 規則では、00:01:02,500 のように、ミリ秒の 3 桁の前にコンマを書き込みます。この句読点は見た目には小さいですが、WebVTT はピリオドを書き込むため、操作上は重要です。拡張子の名前を変更しても文字は変更されないため、厳密なコンシューマは、時間が数値的には正しいが、宣言された形式に対して文法的に間違っているファイルを拒否することができます。
ToolAcre は読み取り中は寛容ですが、書き込み中は厳密です。混合セパレータソースは解析できますが、SRT 出力は常にカンマを受け取り、WebVTT 出力はドットを受け取ります。 3 桁より短い小数入力は右詰めされるため、 .5 は 5 ミリ秒ではなく 10 分の 5 秒を意味します。
SRT 今日 - プレーヤー、プラットフォーム、エディターのための事実上の交換フォーマット
SRT は、キューの順序、経過時間、テキストなどの重要な内容がプレーヤー、プラットフォーム、編集者にとって簡単にマッピングできるため、コンパクトな交換表現として引き続き役立ちます。 「事実上」は重要な修飾語です。宛先によって独自の制限が課されたり、異なるマークアップを許容したりする場合がありますが、拡張子だけではエンコード、キャプションの完全性、編集品質については何も言えません。
SRT は、すべての機能が別の形式で生き残ったことを証明するものとしてではなく、交換ファイルとして使用します。 WebVTT 設定、コメント、領域、スタイル ブロックには、すべて SRT に相当するものがあるわけではありません。コンバーターは、効果が定義されていない SRT を書き込む場合でも、NOTE、STYLE、および REGION ブロックをスキップし、キュー設定を保持します。
要点: シンプル、遍在的、不特定 — 変換およびクリーニング時に字幕ツールキットが SRT のバリエーションをどのように処理するか
SRT は、コア表現が検査して実装するのに十分単純であるため存続しましたが、同じ規則主導の歴史により、単一の厳密な読み取りでは捕捉できないバリエーションが生じました。 Subtitle Toolkit は実用的な中間点を処理します。つまり、一般的なタイムスタンプとファイル形状のバリエーションを受け入れ、安全でないブロックを特定し、予測可能な SRT または WebVTT フォームを 1 つ作成します。
別のコンバーターが既に正規化したコピーではなくオリジナルをロードし、エクスポートする前に課題リストを読み取り、キュー数を比較します。スキップされた不正なキューは、クリーンなシリアル化によって修復されません。それは省略されて報告されていますが、これは情報源が安全に述べていない時点で推測するよりも正直です。