TL;DR: Blu-ray の字幕はたいてい PGS——字幕の画像の連なりで、1 行につき 1 枚のビットマップに、それぞれ開始・終了時刻が付き、全体が 1 つの .sup ファイルとして保存されています。.sup は文字ではなく画像を含むため、ほとんどのプレーヤーやクラウドドライブでは表示できず、どんな変換ツールでも SRT にはできません。画像を OCR してテキスト化します——GeekLink は Mac 上で .sup をそのままタイミング付きの SRT にローカルで読み取ります。
SUP(PGS)字幕とは?
PGS(Presentation Graphic Stream)は Blu-ray ディスクで使われる字幕形式です。各字幕行はテキストのレンダリング画像として、表示・非表示の正確な時刻とともに保存され、トラック全体が 1 つの .sup ファイルになります。DVD の VobSub の Blu-ray 版にあたり、考え方は同じ(文字ではなく画像)で、コンテナが新しいだけです。
字幕が画像であるため、ファイルの中に取り出せる文字はなく、SRT を前提とする字幕エディタやプレーヤーには読み取るものがありません。.sup は画像の連なりなので、編集可能な SRT にするには必ず OCR が必要です——ファイルに変換すべき文字が存在しない以上、これは形式変換ではありません。
なぜプレーヤーやクラウドドライブは .sup を読み込めない?
これが多くの人がこの変換を探す理由です。軽量なプレーヤー——スマホアプリ、スマート TV のプレーヤー、そしてクラウドドライブ内蔵のプレーヤー——は SRT のようなテキスト字幕ファイルしか受け付けません。OCR を内蔵していないため、画像ベースの .sup トラックはそもそも表示できず、映像は再生されるのに字幕が出ない状態になります。
クラウドドライブで映像は再生されるのに字幕がまったく表示されず、字幕ファイルが .sup なら、理由はこれです。こうしたプレーヤーは SRT を読み込み、グラフィック字幕トラックは読み込みません。.sup を一度きり先に SRT へ変換しておくことで、実際に視聴するあらゆる場所で字幕が機能するようになります。
SUP を SRT にするのは OCR の作業
.sup の画像を 1 行ずつ読み取ってテキストにする必要があります。Windows では Subtitle Edit がこの OCR を実行できますが、画像を 1 枚ずつ読むため映画 1 本ぶんでは遅くなります。どのツールでも結果は普通の SRT で、.sup が元々持っていたタイミングをそのまま引き継ぎ、編集可能なテキストが付きます。あらゆるプレーヤーに読み込ませたり、翻訳に回したりできます。
SUP から SRT へのツールはファイルを「変換」しているのではなく、各字幕画像を OCR し、認識したテキストを開始・終了時刻を保ったまま SRT に書き込んでいます。だからタイミングは手作業の同期なしで正確に出ます——各行はすでに .sup 内に自分のタイムスタンプを持っているのです。
映像を OCR するより .sup を直接 OCR する方が正確な理由
Blu-ray 字幕を OCR する方法は 2 つあり、精度は同じではありません。字幕を映像に描画してフレームを OCR するか、.sup の画像を直接 OCR するかです。後者の方がはるかに信頼できます。
.sup の画像は透明な背景に載ったきれいな字幕ビットマップです——文字の後ろに映像がないため、OCR は雑然と動くシーンから文字を切り出す必要がありません。これは焼き込み字幕の抽出とは正反対で、あちらは文字が映像の上に載り、背景こそが難所です。つまり .sup を先に映像へ描き戻してはいけません——そうすると OCR が乗り越えるべき背景を足すだけです。
とはいえ、きれいな画像でも誤読は起こり得ます——細い縁取りや珍しいフォントはどんな OCR エンジンもつまずかせます。だからこそ役立つのは確認できることです。GeekLink は認識した各行の隣に元の字幕画像を並べて表示するので、誤字を一目で見つけて直せます。出力を鵜呑みにしなくて済みます。
Mac での手順は?
Mac では GeekLink が .sup をそのまま変換します——映像への描画なし、クラウドへのアップロードなし:
- Blu-ray から
.supを取り出す。MakeMKV でディスクをリッピングして PGS トラックを分離するか、mkvextract で MKV から抜き出します。いずれにせよ.supファイルが手に入ります。 .supを GeekLink にドロップ。各字幕画像をテキストに OCR し、タイミング付きの SRT を書き出します。すべてパソコン上でローカルに処理され、何もアップロードされません。- 確認して修正。GeekLink は認識した各行の隣に元の字幕画像を並べるので、OCR の誤りを見つけて直し、必要ならタイミングを調整して保存できます。
- 翻訳や再利用。この SRT から 40 以上の言語に翻訳したり、バイリンガルファイルを書き出したり、あるいは SRT をそのまま任意のプレーヤーやクラウドドライブで映像の隣に読み込ませたりできます。
GeekLink はすべてをローカル・オフラインで実行するので、映画 1 本——あるいはエピソード集をまとめてキューに入れても——自分のマシン上で変換され、サーバーには何も送られません。ソースが Blu-ray ではなく DVD なら、字幕は PGS ではなく VobSub です。考え方は同じで、手順は DVD から字幕を抽出するで解説しています。
よくある質問
.sup ファイルとは?
Blu-ray の PGS 字幕トラックです——各字幕がそれぞれ開始・終了時刻を持つ画像の連なりです。画像ベースなので、編集可能な SRT にするには OCR が必要です。
.sup を .srt に改名・変換するだけでいい?
いいえ。.sup は文字ではなく画像を含むため、改名しても何も起きず、存在しない文字を取り出せる変換ツールもありません。字幕画像を SRT にできるのは OCR だけです。
クラウドドライブで映像は再生されるのに字幕が出ないのはなぜ?
クラウドドライブのプレーヤーは SRT のようなテキスト字幕を読み込み、グラフィックの .sup トラックは読み込みません。.sup を一度 SRT に変換し、その SRT を映像の隣に読み込ませてください。
.sup を OCR するのは音声認識より良い?
正規の Blu-ray では、.sup は制作側が画面に載せた字幕そのものなので、OCR すれば元の言い回しを保てます。一方、音声認識は音声を書き起こし直すため、画面上の字幕と異なることがあります。OCR でも文字を誤読することはあるので、結果を元画像と照らして確認することが大切です。
オフラインで使えますか?
はい。GeekLink は .sup を Mac 上でローカルに OCR します。字幕画像も生成した SRT もパソコンから外に出ません。