Universal Subtitle Format
Matroska時代のXML字幕フォーマットです。名前付きスタイル、1つのファイルに複数の言語、拡張の余地があります。採用したプレーヤーは多くありませんが、Subtitldが保持するすべての情報を含められるため、Subtitldはプロジェクトをこの形式で保存します。
概要
| 拡張子 | .usf |
|---|---|
| メディアタイプ | text/xml |
| 仕様 | USF 1.1。CoreCodecのプロジェクト(2010年)。Titlevisionがオンラインで管理しています |
| 時間の精度 | ミリ秒 |
| 文字コード | XMLで宣言されます。特に指定がなければUTF-8です。 |
| 装飾 | 名前付きスタイル。テキスト内では <i>、<b>、<u>、<font> |
| 配置 | スタイルまたはテキストごとに、9つの位置と余白 |
| 話者 | 各テキストに speaker |
| 言語 | 1ファイルに複数。言語ごとに <subtitles> ブロックを1つ(ISO 639-2コード) |
| コンテナ内 | Matroskaでは S_TEXT/USF |
ファイルの構成
XMLドキュメントです。メタデータとスタイルのヘッダーがあり、その後に言語ごとの字幕ブロックが続きます。
<USFSubtitles version="1.0"> <metadata>…</metadata> <styles>…</styles> <subtitles> <language code="por"> Portuguese (Brazil) </language> <subtitle start="00:00:01.000" stop="00:00:02.500"> <text>Olá!</text> </subtitle> </subtitles> </USFSubtitles>
- 1 · ルート
<USFSubtitles>と、従っているUSFのバージョン。 - 2 · ヘッダー
タイトル、作者、言語。字幕で使える名前付きスタイル。
- 3 · 言語
言語ごとの
<subtitles>ブロック。ISO 639-2コードで区別します。 - 4 · 字幕
開始、終了(または長さ)、テキスト。
時刻
秒だけでも書けます。 100 は 00:01:40.000、1.5 は1.5秒です。終了の代わりに duration で長さを指定することもできます。
テキスト
USFのテキストはXHTMLのサブセットです。タグは小文字で、正しくネストされ、<br/> は閉じた形で書きます。
| 要素 | 効果 | Subtitldでの扱い |
|---|---|---|
<i>, <b>, <u> |
斜体、太字、下線 | 保持 |
<font color="#00FF0000"> |
色。フォント、サイズ、縁取り、影も指定できます | 色を保持 |
<br/> |
改行 | 保持 |
<s> |
取り消し線。USFの計画リストにはあるものの、仕様にはありません | 取り消し線として書き出し。他のツールではテキストのまま表示される場合があります |
<karaoke>, <k t="250"/> |
カラオケのタイミング | テキストを保持 |
<image>, <shape> |
画像と図形 | 保持されない |
アルファ値が先頭にあり、透明度の数え方が逆です。 USFの色は #AARRGGBB で、00 が不透明、FF が透明です。#00FF0000 は純粋な赤です。アルファを省いた #FF0000 も赤になります。
スタイルと位置
<style name="Narrator">
<fontstyle italic="yes"/>
<position alignment="TopCenter"/>
</style>
テキストは名前でスタイルを指定します(<text style="Narrator">)。フォント、色、斜体、太さ、下線、そして位置を取得します。位置は TopLeft から BottomRight までの9か所のうち1つです。Default という名前のスタイルはすべての字幕を変えてしまうため、Subtitldは書き出さず、プレーヤーが独自の表示を保てるようにします。
言語
各言語には独自の <subtitles> ブロックがあり、ISO 639-2コードで名前が付けられます。eng、fre、ger、por などです。1つのコードが複数の言語を指すことがあるため、Subtitldは各言語の名前も要素内に書きます。これにより、por がブラジル・ポルトガル語かポルトガル・ポルトガル語かを判別できます。
<language code="por">
Portuguese (Brazil)
</language>
USFでのSubtitld
Subtitldのプロジェクトは USF です。.usfx プロジェクトは、USFに動画、音声、吹き替えを加えて1ファイルにまとめたものです。
- 各字幕のテキスト、装飾、位置
- 翻訳(言語ごとのブロック)
- 話者(色付き。要求があれば画像も)
- 吹き替えとその声(要求があればクリップも)
- 開始と終了(ミリ秒単位)
- 行ごとのフォント、サイズ、縁取り、影
- 画像、図形、カラオケのタイミング
- エフェクト
Subtitldが追加した情報は、他のツールがそのまま残します。
USFファイルを開く
Subtitldは、Subtitldが書いたものと他のツールが書いたものを読み取ります。
- XMLで宣言された文字コード。
- テキストが使う名前付きスタイルの斜体、太字、下線、色、位置。
- 一部のツールが書く、
italic、bold、underlineを持つ<font>。 stopがない場合のduration、秒だけで書かれた時刻。- 1つの字幕内の複数のテキストは、それぞれ行として扱います。
- 各言語のブロックは、時刻によって最初の言語と対応付けます。そのため、ブロックごとに字幕の数が同じである必要はありません。
- ISO 639-2コードと言語名、古いSubtitldのバージョンが書いたコード。
USFではないファイルは、その旨を表示し、何も開きません。
USFの保存
USFはプロジェクト全体を保持するため、エクスポート、字幕、USFの順に選ぶと、中に含めるものだけを尋ねます。
- 話者画像を埋め込む各話者の画像を、そのスタイル内にbase64で埋め込みます。
- 音声クリップを埋め込む各吹き替えのクリップを、その字幕内にbase64で埋め込みます。
ファイルはUTF-8で、言語はISO 639-2コードと名前で記録されます。USFが必須とするタイトルを付け、Default スタイルは書き出しません。
豆知識
USFは2002年11月に初めて公開されました。Advanced SubStation AlphaのXML版の代替として作られた、CoreCodecのプロジェクトです。
最新版は2010年11月のものです。その仕様は今も計画の一覧に <s> を挙げています。
バージョン0.9から、VLCはUSFのテキストとタイミング、そしてVSFilterと同様に一部の装飾を表示します。
関連する形式
-
.ttmlTimed Text Markup Language
-
.assAdvanced SubStation Alpha
-
.smiSynchronized Accessible Media Interchange
Subtitld で動画と一緒に開き、波形上でタイミングを調整しましょう。