日本のデジタル放送のMPEG-TSの字幕表示に対応したVLCです。
日本のデジタル放送(地デジ・BSデジタル)には字幕が含まれているものがあります。 その字幕情報をどうにかしてVLCで直接表示する方法がないかと、 ARIBの規格書を読んだり他のプログラムのソースを読んだりしつつ、 軽い気持ちで作ったものです。
- 番組情報表示
メディア情報画面(ツール→コーデック
)のコーデック画面に表示される局名やEPG
プログラム情報(再生→プログラム
)に表示される局名
を正しくデコードして文字化けしないように表示します。 - 字幕出力
ビデオ→字幕トラック
のところの、「ARIB字幕」「ARIB subtitles」を選択したときに、 ビデオ画面上に字幕を表示します。
-
番組情報表示・字幕出力機能の有効化
設定→すべて→入力/コーデック→デマルチプレクサー→MPEG-TS
の「Support ARIB STD-B24」というところのチェックで機能のオンオフができます。デフォルトはオフ。 -
使用フォント指定
設定→字幕とOSD
のところで指定します。ARIB外字や絵文字が表示できるものを使うことを推奨します。
例、和田研中丸ゴシック2004絵文字、Windows TV 太丸ゴシックなど。 -
字幕の自動選択
設定→字幕とOSD
の「優先する字幕の言語」に、jpnもしくはjaを指定します。 自動選択をしたい場合のみ設定してください。 この設定をした場合、ARIB字幕のみならず他の字幕フォーマットでも適用される可能性があります。 -
ARIB字幕(ARIB Subtitles)モジュールの設定
設定→すべて→入力/コーデック→字幕コーデック→ARIB字幕(ARIB Subtitles)
Freetypeレンダラーを使用時には、以下の設定をいじる必要は無いと思います。- 「ルビ(ふりがな)抑制」「Ignore ruby(furigana)」
ルビ(ふりがな)の出力をしたくない場合には、この項目にチェックを入れます。 - 「位置調整抑制」「Ignore position adjustment」
Freetype2フォントレンダラー使用時に、特定の文字(句読点、括弧、「ゃ」「っ」等) が表示される位置がずれる場合があり、その際には調整を行う必要があります。 この調整を行わなくていい場合には、この項目にチェックを入れます。 コアテキストフォントレンダラーを使用する場合には、この調整は必要が無いため、 チェックを入れないと駄目かと思われます。 - 「エリプシス(...)置換」「Replace horizontal ellipsis」
フォントによっては"…"三点リーダーが"..."のように下付で出てしまう場合があります。 U+2026 HORIZONTAL ELLIPSISで通常は中点が三つでるような感じになる筈ですが、そうでないフォントもあるため、 U+22EF MIDLINE HORIZONTAL ELLIPSISに置き換えて表示するための設定です。 - 「水平方向調整値」「Horizontal adjustment value」
字幕を表示する位置を水平方向にどれだけずらすかの設定です。 デフォルト値は、0です。 正の値を指定した場合、通常よりも右方にずれて表示され、 負の値を指定した場合、通常よりも左方にずれて表示されます。 - 「垂直方向調整値」「Vertical adjustment value」
字幕を表示する位置を垂直方向にどれだけずらすかの設定です。 デフォルト値は、0です。 正の値を指定した場合、通常よりも下方にずれて表示され、 負の値を指定した場合、通常よりも上方にずれて表示されます。
- 「ルビ(ふりがな)抑制」「Ignore ruby(furigana)」
-
外字置換
字幕のデータやEPGのデータは基本的にARIB STD-B24で規定される8単位符号で符号化されています。 一部外字については、ビットマップデータ自体がDRCS外字として伝送されます。 このデータを直接画面に表示することもできなくはないのですが、現状は既存の文字に置換して表示するようにしています。 このための置換するマッピングを外字置換設定ファイル(drcs_conv.ini)から読み込みます。外字置換設定ファイルは以下に記す所定のディレクトリに置きます。
Windows: %APPDATA%\vlc\arib (%APPDATA%はC:\Users\XXX\AppData) Mac OS X: ~/Library/Application Support/org.videolan.vlc/arib Linux: ~/.local/share/vlc/arib Android: /storage/sdcard0/Android/data/org.videolan.vlc/arib
外字置換設定ファイルのフォーマットは、
md5のハッシュ値=Unicodeのコードポイント値
のようになります。
例えば、携帯電話を表すDRCS外字(ハッシュ値68fc649b4a57a6103a25dc678fcec9f4)を Unicodeの'MOBILE PHONE' U+1F4F1で置き換えたい場合、
68fc649b4a57a6103a25dc678fcec9f4=U+1f4f1
のように設定します。 使用するフォントに含まれているものを指定してください。 上記コード(U+1F4F1)は恐らくサポートしているフォントは少ないと思われます。 和田研中丸ゴシック2004絵文字にはその手のフォントは沢山含まれています。
マッピングの中から対象のハッシュ値が見つからなかった場合、 ゲタ記号(〓)を代わりに表示するようにしています。
ハッシュ値と対応する文字をどのように決めるかについては、設定ファイルを置くディレクトリ のサブディレクトリdata (Windowsだと、%APPDATA%\vlc\arib\data)の下に、 ハッシュ値.pngというファイル名で自動的に外字のイメージが作成されるように なっていますので、そこから適宜判断してください。
Mac OS X版には、字幕やOSD表示するためのテキストレンダラーとして、 デフォルトで使われるfreetype以外にもquartztext(コアテキスト)というものも 用意されています。 今回、コアテキストフォントレンダラーをある程度使えるように改造してあります。 コアテキストフォントレンダラーを使うメリットとしては、 指定したフォントに含まれていない文字を出力しようとしたときに別のフォントから文字を探してくれたり、 テキストレイアウトが改善したりすることが上げられます。
-
テキストレンダラーの選択
設定→すべて→ビデオ→字幕とOSD
の「テキストレンダリングモジュール」で- デフォルト(Freetype2フォントレンダラー)
- コアテキストフォントレンダラー
のどちらかを選択することが出来ます。 個人的には、コアテキストフォントレンダラーをお勧めします。
-
使用フォント指定
コアテキストフォントレンダラーを選択した場合には、使用フォント設定は、設定→すべて→ビデオ→字幕とOSD→Mac用のテキストレンダラー
で指定します。 この設定は、基本設定のものとは異なるため、別途指定する必要があります。 指定する内容は、基本設定と同じで問題無いので、基本設定で選びその値を コピーすれば良いと思います。 例えば、ヒラギノ角ゴシック ProN W6を使用する場合には、 「HiraKakuProN-W6」「Hiragino Kaku Gothic ProN W6」 あたりを指定します。 -
ARIB字幕(ARIB Subtitles)モジュールの設定
設定→すべて→入力/コーデック→字幕コーデック→ARIB字幕(ARIB Subtitles)
設定項目のところに設定内容は書きましたが、コアテキストフォントレンダラー使用時には 以下のように指定することをお勧めします。- 「位置調整抑制」「Ignore position adjustment」
この設定にはチェックを入れます。 - 「水平方向調整値」「Horizontal adjustment value」
-12をセットします。
- 「位置調整抑制」「Ignore position adjustment」
コアテキストフォントレンダラーでヒラギノ使用時に面白いのは、外字設定ファイルで絵文字がでるように指定した場合、 グラフィカルな絵文字をカラー絵文字フォント(Apple Emoji Font)から出力してくれることです。 携帯(U+1F4F1)の場合、iPhoneみたいなのがでたり、TV(U+1F4FA)やチャイム(U+1F4E2)もちゃんとしたものが出るようになります。