TTML を SSA に変換
字幕テキストを貼り付けることもできます
この変換で変わること
2 項目が失われるか、判断が必要です
- 精度
タイミングの精度(変換先の時計はより粗いため、すべてのタイムスタンプは 10 ms 単位に丸められます)
- 形式固有の内容
元の形式が字幕ブロックの外に保持している内容(字幕以外のブロック、ヘッダーのテキスト、字幕ごとの設定、コメントアウトされたイベント)。変換先の形式に置き場所がありません
この一覧は、読み込んだファイルではなく、この2つの形式の機能対応表から作られています。形式としては許されているが対応表が扱っていない機能を使っている場合、そのファイルではさらに多くが失われることがあります。
このページは TTML を SSA に変換します。ファイルをドロップするか、テキストを貼り付けてください。SSA 形式で返ります。変換はすべてブラウザ内で実行され、ファイルはアップロードされません。登録も不要です。
TTML は XML で書かれ、時刻はミリ秒まで正確です。フレームレートや SMPTE のタイムコードで書かれた時刻も読み取れます。TTML と SSA は保存できる情報が同じではなく、その差は見た目の問題ではありません。SSA では精度(100 分の 1 秒への丸め)、形式固有の情報が行き場を失います。上の一覧は、読み込んだファイルではなく、2 つの形式がそれぞれ表現できるものから算出しています。だからファイルを開く前から同じ答えになります。
1 本でも、シーズン全体でも構いません。キューは順番に処理され、結果は 1 つの ZIP にまとめてダウンロードできます。
例
TTML ファイルを SSA に変換した例
入力
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
</layout>
</head>
<body>
<div>
<p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
</div>
</body>
</tt>
出力
[Script Info]
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:03.50,Default,,0,0,0,,Hello {\i1}there{\i0}.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,How are you?\NFine, thanks.
この出力で失われるもの:精度(100 分の 1 秒への丸め)、形式固有の情報。それ以外は行単位で一致します。
同じ変換を扱いにくい入力で行った例
入力
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
ttp:frameRate="25" xml:lang="en">
<body>
<div>
<p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
<p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
<p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
<p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom & Jerry.</p>
</div>
</body>
</tt>
出力
[Script Info]
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.50,0:00:03.50,Default,,0,0,0,,Loaded from an offset and a duration.
Dialogue: 0,0:00:04.00,0:00:06.50,Default,,0,0,0,,A coarser clock spelling.
Dialogue: 0,0:00:07.00,0:00:08.48,Default,,0,0,0,,Frames, at 25fps.
Dialogue: 0,0:00:09.00,0:00:11.00,Default,,0,0,0,,{\c&H000000FF&}Half-open{\c} and Tom & Jerry.
実際のファイルには、混在した改行コード、余分な空白、空のフィールドなどがあります。上の整った例と比べて、パーサーがどこまで許容するかを確認してください。
よくある質問
TTML を SSA に変換するとタイムコードはなぜ変わるのですか?
SSA は時刻を 0:00:04.13 で保存し、TTML は 00:00:04.126 で保存します。100 分の 1 秒と 1000 分の 1 秒の違いなので、各タイムコードは 10 ms 単位に丸められます。00:00:04,126 は 4.13 秒になります。伸縮や並べ替えはなく、cue の移動は最大 5 ms です。別のファイルと突き合わせる場合、ここだけが不正確になります。
TTML のプロローグと styling / layout は SSA でどうなりますか?
破棄されます。TTML は見た目とレイアウトを本文ではなく head に置きます。XML 宣言と名前空間の束縛、名前付きスタイルの styling 表(tts:color、tts:fontWeight)、名前付き領域の layout 表(tts:origin、tts:extent)、metadata、そして p 要素がそれらを指す style / region 属性です。SSA は文書ではなく cue を保存するため、head の内容に置き場所がありません。段落内に書かれたスタイルは別で、span の斜体指定は語の強調なので、SSA 側に書き方があれば対応するマークアップで出力されます。
TTML を SSA に変換した出力はどんな形ですか?
SSA らしく、cue 番号はありません。各字幕は [Events] セクションの Dialogue: 行になり、SRT が番号を持つ位置には Marked フィールドが入ります。TTML の各 cue は同じ順序・同じ本文で 1 つの SSA cue になります。
TTML の 2 行の cue は SSA でどう表現されますか?
バックスラッシュ N(\N)で区切られた 2 行になります。\N は ASS と SSA が強制改行を書く方法です。2 行が 1 つの字幕に属する関係は保たれ、プレーヤーは 2 行を一緒に表示します。
TTML の cue の順序は SSA 出力でも保たれますか?
はい。書き出し時に開始時刻の昇順へ並べ替えます。早いものが先で、これは本サイトのすべての形式が前提とする順序であり、プレーヤーが読み取る順序でもあります。TTML ファイルの cue が順不同だった場合、SSA 出力では順序が直ります。これは内容ではなくファイル構造の変更で、意図した動作です。
SSA を TTML に戻せますか?
はい。ただし逆方向には独自の損失一覧があります。SSA から TTML への変換ではカラオケのタイミング、形式固有の情報が失われます。2 つの形式が保持する情報が違うため、一覧は上とは別になります。
SSA 出力は TTML ファイルの文字コードを引き継ぎますか?
いいえ。入力が何であっても、出力は UTF-8、Unix 改行、BOM なしです。UTF-16 や Windows のシングルバイト文字コードで届いたファイルは読み込み時にデコードし、そのことは結果パネルに表示されます。出てくるのは常に同じ UTF-8 の SSA です。