TTML을 SSA로 변환
또는 자막 텍스트를 붙여넣으세요
이 변환에서 달라지는 것
2가지가 버려지거나 결정이 필요합니다
- 정밀도
타이밍 정밀도 — 결과물의 시계가 더 거칠어 모든 타임스탬프가 가장 가까운 10 ms로 반올림됩니다
- 형식 고유 내용
원본 형식이 자막 블록 밖에 두는 내용(자막 블록이 아닌 구획, 머리말 텍스트, 자막 블록별 설정, 주석 처리된 이벤트) — 대상 형식에는 들어갈 자리가 없습니다
이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.
TTML을 SSA로 바꾸면 자막이 Dialogue 줄로 재구성되고 시간은 0.01초 단위로 반올림됩니다. SSA는 ASS의 이전 형식이라 레이어 대신 Marked 필드를 쓰고, 스타일을 문서 안에 정의할 수 있습니다. 다만 TTML 머리말의 표는 그대로 옮겨지지 않습니다.
TTML은 00:00:04.126까지, SSA는 0:00:04.13까지 적습니다. 4.126초는 4.13초가 되고 cue는 5ms 넘게 움직이지 않습니다. 늘어나거나 순서가 바뀌는 일은 없습니다.
잃는 것은 정밀도와 형식 고유 정보입니다. XML 선언, 네임스페이스, <styling>, <layout>, <metadata>, style·region 참조는 SSA에 대응하는 자리가 없습니다. 문단 안 span 강조는 SSA 태그로 남고, 두 줄은 \N으로 이어집니다.
여러 파일을 넣으면 순서대로 처리되어 ZIP 하나로 내려옵니다. SSA는 오래된 재생기에서도 읽히지만 새 도구는 ASS를 더 잘 지원하므로, 대상 플레이어가 정해져 있다면 그쪽을 확인하세요. 변환은 브라우저 안에서 실행됩니다.
예시
일반적인 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.
이 결과에서 사라지는 것: 정밀도, 형식 고유 정보. 나머지는 줄 단위로 같습니다.
까다로운 입력에 같은 변환 적용
입력
<?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로 바꾸면 타임코드가 왜 0.01초 단위가 되나요?
SSA는 시간을 0:00:04.13처럼 0.01초까지 적고 TTML은 00:00:04.126처럼 0.001초까지 적기 때문입니다. 모든 값이 가장 가까운 10ms로 반올림되어 4.126초는 4.13초가 되고, 순서가 바뀌거나 cue가 5ms 넘게 움직이지 않습니다.
TTML의 <styling>·<layout> 표는 SSA에서 어떻게 되나요?
사라집니다. XML 선언, 네임스페이스, 이름 있는 스타일과 영역, <metadata>, <p>의 style·region 참조가 SSA에 대응하는 자리를 갖지 못합니다. 문단 안쪽 span의 강조는 SSA 태그로 남습니다.
TTML을 SSA로 바꾸면 결과가 어떻게 생겼나요?
cue 번호 없이 자막마다 [Events] 구역의 Dialogue 줄 하나가 됩니다. SRT가 번호를 두는 자리에 SSA는 Marked 필드를 두고, TTML의 cue 하나가 SSA의 cue 하나가 되어 순서와 글자는 같습니다.
두 줄짜리 TTML 자막은 SSA에서 어떻게 되나요?
두 줄 사이에 \N이 들어간 한 자막으로 나옵니다. SSA가 강제 줄 바꿈을 적는 방식이며, 두 줄이 같은 자막이라는 사실은 유지됩니다.
TTML cue 순서는 SSA에서도 유지되나요?
유지되고, 변환 과정에서 시작 시간이 이른 순서로 정렬됩니다. TTML이 cue를 뒤섞어 두었다면 SSA 결과에서 순서가 바로잡히며, 이는 내용이 아니라 구조를 바꾸는 일입니다.
SSA를 다시 TTML로 바꾸면 무엇을 잃나요?
노래방 타이밍과 형식 고유 정보를 잃습니다. SSA에서 TTML로 가는 방향은 그 자체로 손실이 있고, 이 방향에서 버린 TTML 머리말 정보는 SSA에 기록되지 않아 복원되지 않습니다.