メインコンテンツへスキップ
SubtitleMatrix

ASS を SRT に変換

形式変換Advanced SubStation Alpha(ASS)
字幕テキストを貼り付けることもできます

この変換で変わること

4 項目が失われるか、判断が必要です

  • スタイル

    すべてのスタイル(太字、斜体、色、縁取り、影)

  • 位置

    画面内の位置指定(すべての字幕が既定の位置に戻ります)

  • カラオケ

    カラオケのタイミング(音節ごとの強調)

  • 形式固有の内容

    元の形式が字幕ブロックの外に保持している内容(字幕以外のブロック、ヘッダーのテキスト、字幕ごとの設定、コメントアウトされたイベント)。変換先の形式に置き場所がありません

この一覧は、読み込んだファイルではなく、この2つの形式の機能対応表から作られています。形式としては許されているが対応表が扱っていない機能を使っている場合、そのファイルではさらに多くが失われることがあります。

このページは ASS を SRT に平坦化します。ASS は字幕をスタイルエンジンが描くテキストとして扱い、SRT は 2 つのタイムスタンプに挟まれたテキストとして扱います。変換では時間軸を ASS の 0:00:01.00 から SRT の 00:00:01,000 へ書き換えて保ち、文章もそのまま残します。斜体は斜体タグ、太字は太字タグになり、SRT が表現できる範囲の書式は引き継がれます。

描画に関する指示には行き先がありません。画面上の位置、フォント、縁取り、影、音節ごとのカラオケのタイミングは、いずれもレンダラへの命令であり、SRT には指示する先がありません。偽のマークアップとして本文に紛れ込ませずに捨て、その 1 つ 1 つをファイル欄の下に表示します。何を失うかを画面で確認してから変換できます。

1 シーズン分でも問題ありません。ファイルは 1 本ずつ処理され、途中でキャンセルでき、結果は 1 つの ZIP にまとまります。変換はブラウザ内で行われるため、台本がアップロードされることはありません。

例

典型的な ASS ファイルを SRT に変換した例

入力

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[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,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

出力

1
00:00:01,000 --> 00:00:04,000
Hello there.

2
00:00:05,000 --> 00:00:08,500
<i>Italic</i> and <b>bold</b> text.

3
00:00:09,000 --> 00:00:12,000
Positioned

4
00:00:13,000 --> 00:00:16,000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>

5
00:00:17,000 --> 00:00:20,000
Line one
Line two

6
00:00:21,000 --> 00:00:24,000
Top left

この出力で失われるもの:スタイル、位置情報、カラオケ、形式固有の内容。それ以外は行単位で一致します。

崩れた ASS 入力を同じ条件で SRT にした例

入力

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
ScriptType: v4.00+

[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,&H000000FF,&H00000000,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

出力

1
00:00:01,000 --> 00:00:04,000
Hello, world

2
00:00:05,000 --> 00:00:08,000
{\fad(300,300)}Unmodelled override

3
00:00:09,000 --> 00:00:12,000
Both, wrong order

4
00:00:13,000 --> 00:00:16,500
One decimal centisecond

5
00:00:17,000 --> 00:00:20,000
Soft
break

実ファイルの傷み方の例です。改行の混在、余分な空白、空のフィールドが含まれます。上の整った例と比べると、パーサーがどこまで許容するかが分かります。

よくある質問

ASS から SRT に変換すると画面の位置指定はどうなりますか?

SRT には字幕を画面上の任意の場所に置く手段がなく、表示位置はプレーヤーが決めます。\pos(320,240) のような座標を持つ行も普通の字幕ブロックとして出力され、座標は出力に現れません。

ASS のカラオケのタイミングは SRT に変換するとどうなりますか?

音節ごとのカラオケはタイミングの指示であり、対応する指示のない SRT では失われます。音節自体は見つけやすい形で残しますが、順に光らせていた時間は残らず、SRT では字幕ブロック全体が一度に表示されます。

ASS から SRT でタイムスタンプはどう変換されますか?

ASS は時・分・秒・100 分の 1 秒、SRT は時・分・秒・ミリ秒で書きます。100 分の 1 秒を 10 倍して区切り文字をカンマに変えるので、時間軸は元のファイルが持っていた 10 ミリ秒単位の精度のまま保たれます。

ASS のスタイルは SRT に変換するとどうなりますか?

読み取ったうえで SRT が表現できるものだけを移します。字幕ブロックのスタイルが有効にしている斜体と太字は出力のタグになり、フォント、サイズ、色、縁取り、余白は置き場所がないため失われます。

複数のスタイルを使った ASS の台本も SRT に変換できますか?

はい。Dialogue: 行は 1 行ずつ独立に読み、その行が参照するスタイルを引くので、12 種類のスタイルを持つ台本も 1 種類だけの台本と同じように変換できます。

関連ツール