字幕ファイル (.srt) の書き方
字幕ファイル (.srt)
動画に字幕を付けるのは、再エンコードなどが必要で面倒だと思っていたが、テキスト形式の字幕ファイル (.srt) さえ作っておけば、プレーヤー側では簡単に追加できるようだ。書式も簡単で、以下のようになっている。
1
00:00:00,000 --> 00:00:05,000
最初の字幕
2
00:00:05,000 --> 00:00:10,000
次の字幕
3
00:00:10,000 --> 00:00:20,000その次の字幕
一行目は字幕No、二行目は表示時間、三行目は字幕の内容(テキスト)、そして識別用の空行となっている。非常に簡単である。
一行目の字幕Noは、例えば数百の字幕を書いた後に途中に追加する際、いちいち番号を振り直さなければならず面倒なようだが、必ずしも連番になっていなければならない訳ではないようである。
こうした書いた字幕ファイルは、「動画のファイル名.srt」として、動画ファイルと同じフォルダに入れておけば、プレヤーが自動的に読み込んでくれる(要設定)。
字幕スタイル・ファイル (.srt.style)
字幕の文字(フォント、大きさ、色等)や表示位置を指定したい場合は、「字幕スタイル・ファイル」を作成すればよい。これは「字幕ファイル名.srt.style」とする。
書式は以下の通りである。
ScriptType: v4.00+
PlayResX: 384
PlayResY: 288
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00ffffff,&H0000ffff,&H00000000,&H80000000,-1,0,0,0,100,100,0,0.00,1,2,2,2,20,20,20,1
一見、複雑にみえるが要は "Format" の順番で、パラメーターが並んでいるだけである。列挙すると以下のようになる。
- Name
- スタイルネーム(変更不可)
- Fontname
- フォント名
- Fontsize
- フォントサイズ
- PrimaryColour
- 文字色(色名の直接指定不可。&HaaBBGGRR で指定[aa は透明度])
- SecondaryColour
- ?(カラオケの効果用らしい)
- OutlineColour
- 文字の境界の色
- BackColour
- 影の色
- Bold
- 太字(-1 で太字、0 で通常の書体)
- Italic
- 斜体(-1 で斜体、0 で通常の書体)
- Underline
- 下線(-1 下線あり、0 でなし)
- StrikeOut
- 打ち消し線(-1 であり、0 でなし)
- ScaleX
- 文字の横幅(100 がデフォルト。90 は横幅90%の意味)
- ScaleY
- 文字の高さ(100 がデフォルト。90 は縦90%の意味)
- Spacing
- 文字間の間隔(ピクセル単位。デフォルトは 0)
- Angle
- 文字の角度(デフォルトは、0.00。縦書きにする場合は、270.00 )
- BorderStyle
- 文字表示のスタイル(1 で輪郭と影が付く。3 で長方形の背景がでる)
- Outline
- 文字の境界(縁)の太さ(0 で縁なし)
- Shadow
- 文字の影の太さ(0 で影なし)
- Alignment
- 文字表示の位置(1〜9 で指定)
- MarginL
- 字幕左の余白
- MarginR
- 字幕右の余白
- MarginV
- 字幕の高さ
- Encoding
- ファイルのエンコーディング。日本語フォントそのものを含む場合は、1 にして UTF-8 または Unicode 16-LE で保存する。
なお、PlayResX と PlayResY は字幕の解像度を表し、表示する文字のすべてのサイズに影響する。動画の解像度を同じにすれば大きさが分かりやすいが、必ずしもそうする必要はない。
縦書き
縦書きで字幕を表示したい場合は、上記の字幕スタイル・ファイルで縦書き要フォント(@フォント名)を指定し、Angle の値を 270 にすればよい。
ところで、特定のテクストのみ縦書きで表示させたい場合がある。そうした際は、スタイル・ファイルではなく、個々の字幕にダグを付けることで縦書きにすることができる。書式は以下の通りである。
{\an6}{\fe128}{\fn@MS UI Gothic}{\pos(355,178)}{\frz270}縦書きのテクスト{\an}
重要なのは {\frz270} で、これが縦書きの命令。{\fn} はフォントの指定なので、縦書きフォントの名前を書く。その前の、{\fe} はフォントエンコーディング。{\fs} はフォントの大きさ。{\pos(X,Y)} は表示する座標で {\an} は字幕を表示する大まかな場所(1〜9 が指定可能)を意味する。最後の {\an} は終了タグで、複数の字幕を同時に表示する際に必要らしい。
下記の参考サイトにあるように、このSRT形式はかなり色々なことができる。ここでは当面使いそうなものを書いておく。
フェードイン・フェードアウト
細かく設定することも可能だが、次の簡易的なものでも十分機能する。
{\fad(1000,2000)}フェードイン・フェードアウト
上記は「1秒かけてフェードインして、2秒かけてフェードアウトする」例。
参考サイト:MPC and SRT (+ASS)