본문으로 바로 가기
SubtitleMatrix

SSA를 TTML로 변환

형식 변환SubStation Alpha (SSA)
또는 자막 텍스트를 붙여넣으세요

이 변환에서 달라지는 것

2가지가 버려지거나 결정이 필요합니다

  • 가라오케

    가라오케 타이밍(음절 단위 강조)

  • 형식 고유 내용

    원본 형식이 자막 블록 밖에 두는 내용(자막 블록이 아닌 구획, 머리말 텍스트, 자막 블록별 설정, 주석 처리된 이벤트) — 대상 형식에는 들어갈 자리가 없습니다

이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.

이 페이지는 SSA를 TTML로 바꿉니다. TTML은 XML로 자막을 적는 표준 형식으로, 각 큐가 begin·end 속성을 가진 <p>가 됩니다. SSA의 인라인 강조를 span 속성으로 옮기는 대상입니다.

SSA의 0:00:04.12는 TTML의 00:00:04.120이 되고, 굵게·기울임·색은 span의 tts:fontWeight·tts:fontStyle·tts:color가 되며, 두 줄은 <br/>로 적힙니다. 시각은 밀리초까지 정확합니다.

사라지는 것은 카라오케, cue 모델 밖의 구성, 그리고 스타일 표입니다. {\k50} 같은 음절별 타이밍과 [Script Info]·[Fonts]·[Graphics] 구역, Comment 줄, [V4 Styles]의 글꼴·크기·외곽선 설정이 TTML에 자리가 없습니다. 위치는 이 방향의 손실 목록에 들어 있지 않지만, \an·\pos 코드가 TTML에 문자 그대로 남지는 않으므로 배치는 대상 플레이어에서 확인하세요.

여러 파일을 넣으면 순서대로 처리되고 중간에 취소할 수 있으며 ZIP 하나로 내려옵니다. 브라우저 안에서 변환되어 업로드가 없습니다.

예시

전형적인 SSA 파일을 TTML로 변환

입력

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[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: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

결과물

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:04.000">Hello there.</p>
<p begin="00:00:05.000" end="00:00:08.000"><span tts:fontStyle="italic">Italic</span> line.</p>
<p begin="00:00:09.000" end="00:00:12.000">Two<br/>lines</p>  </body>
</tt>

이 출력에서 빠진 것: 카라오케와 형식 고유 구성. 나머지는 줄 단위로 일치합니다.

같은 변환을 지저분한 입력으로

입력

[Script Info]
Title: Dirty SSA
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
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

결과물

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:04.000"><span tts:fontWeight="bold">Bold</span> and <span tts:textDecoration="underline">underlined</span>.</p>
<p begin="00:00:05.000" end="00:00:08.000">A soft<br/>break and a {\p1}mystery{\p0} code.</p>  </body>
</tt>

실제 파일에 흔한 손상입니다. 줄 바꿈이 섞이고, 공백이 남고, 필드가 비어 있습니다. 위의 깔끔한 예와 비교해 해석기가 무엇을 용서하는지 보세요.

자주 묻는 질문

SSA에서 TTML로 가면 무엇이 사라지나요?

카라오케 타이밍과 cue 모델 밖의 구성([Script Info], [V4 Styles], [Fonts]·[Graphics], Comment 줄)입니다. 글자와 시간축, 본문의 인라인 강조는 TTML 쪽 표현으로 옮겨집니다.

SSA의 스타일 표는 TTML에서 어떻게 되나요?

스타일 표 자체는 옮겨지지 않습니다. [V4 Styles]의 글꼴·크기·외곽선 설정을 TTML에 그대로 적을 자리가 없어, 대상 재생기는 기본 스타일로 그립니다. 본문에 적힌 굵게·기울임·색은 span 속성으로 남습니다.

SSA의 위치 지정은 TTML에서 살아남나요?

이 방향의 손실 목록에는 위치가 들어 있지 않습니다. 다만 \an·\pos 코드가 TTML에 문자 그대로 남지는 않으므로, 배치가 중요한 자막은 대상 플레이어에서 확인하세요.

SSA의 카라오케 표기는 TTML에서 어떻게 되나요?

사라집니다. {\k50} 같은 음절별 타이밍이 TTML에 자리가 없어 출력에 남지 않습니다. 가사가 아니라 대사라면 잃는 것은 강조뿐입니다.

SSA의 시간은 TTML에서 정확한가요?

네, 밀리초까지 정확합니다. 0:00:04.12는 00:00:04.120이 되어 시각이 그대로이고, 2.9초짜리 큐는 그대로 2.9초입니다.

두 줄짜리 SSA Dialogue는 TTML에서 어떻게 나오나요?

두 줄 사이에 <br/>이 들어갑니다. TTML이 강제 줄 바꿈을 적는 방식이며, 두 줄은 하나의 자막으로 묶여 함께 표시됩니다.

SSA의 내장 글꼴은 TTML에서 어떻게 되나요?

사라집니다. [Fonts] 블록을 TTML로 옮기지 않으므로, 스타일이 가리키는 글꼴이 대상 환경에 없으면 다른 글꼴로 대체됩니다. 글꼴 파일은 따로 배포해야 합니다.

SSA 큐의 순서는 TTML에서 유지되나요?

네. 시작 시간이 빠른 순으로 정렬되고, 원본이 순서를 벗어나 있었다면 출력에서 바로잡힙니다. 내용이 아니라 구조의 변경이며 의도된 동작입니다.

관련 도구