본문으로 바로 가기
SubtitleMatrix

SRT를 TTML로 변환

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

이 변환에서 달라지는 것

이 방향에서는 아무것도 잃지 않습니다. 원본 형식의 모든 기능이 대상 형식에 갈 곳이 있습니다.

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

이 페이지는 SRT를 TTML로 바꿉니다. TTML은 XML로 자막을 적는 표준 형식으로, 각 큐가 begin·end 속성을 가진 <p> 요소가 됩니다. SRT의 큐 하나가 TTML의 p 하나가 됩니다.

SRT의 00:00:04,126은 TTML의 00:00:04.126이 되고, 굵게·기울임은 span의 tts:fontWeight·tts:fontStyle로, 두 줄은 <br/>로 적힙니다. 시간은 밀리초까지 정확합니다.

잃는 것은 없습니다. SRT가 표현하는 것은 TTML도 표현하며, 출력은 매번 같은 XML 구조로 쓰입니다. 파일은 브라우저 안에서 처리되며 업로드되지 않습니다.

TTML은 브라우저가 직접 표시하지 않으므로, 결과를 눈으로 확인하려면 TTML을 읽는 플레이어가 필요합니다. XML 들여쓰기 때문에 파일은 SRT보다 조금 커지지만, 큐 텍스트와 시간은 같습니다. 대상 플레이어가 굵게·기울임 속성을 실제로 그리는지도 확인하세요. SRT의 큐 텍스트는 <p> 요소 안에 그대로 들어갑니다.

예시

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

입력

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

결과물

<?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:03.500">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000"><span tts:fontStyle="italic">Whispering</span> now.<br/>And a second line.</p>
<p begin="00:00:06.000" end="00:00:09.250"><span tts:fontWeight="bold">Bold</span> statement.</p>  </body>
</tt>

여기서는 아무것도 빠지지 않습니다. 양쪽을 줄 단위로 비교해 보세요.

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

입력

1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.


2
00:00:03,500 --> 00:00:06,000


3
00:00:08,000 --> 00:00:09,000
Last one.

결과물

<?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:03.500"><span tts:fontWeight="bold">Bold</span> and <span tts:fontStyle="italic">italic</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000"></p>
<p begin="00:00:08.000" end="00:00:09.000">Last one.</p>  </body>
</tt>

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

자주 묻는 질문

SRT에서 TTML로 가면 출력이 어떤 모양인가요?

XML 선언 아래 <tt><body>가 오고, 큐마다 begin·end 속성을 가진 <p> 요소가 들어갑니다. 굵게·기울임은 span의 tts:fontWeight·tts:fontStyle로, 두 줄은 <br/>로 적힙니다.

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

네, 밀리초까지 정확합니다. SRT의 00:00:04,126은 TTML의 00:00:04.126이 되고, 2.9초짜리 큐는 그대로 2.9초입니다. 반올림이나 이동은 없습니다.

두 줄짜리 SRT 큐는 TTML에서 어떻게 나오나요?

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

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

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

TTML을 다시 SRT로 바꿀 수 있나요?

가능하지만 TTML→SRT는 스타일·위치·cue 모델 밖 구성을 보고합니다. 이 방향에서는 아무것도 잃지 않으므로, 그 비용은 되돌릴 때만 생깁니다.

SRT에서 만든 TTML 파일의 인코딩은 무엇인가요?

UTF-8, 유닉스 줄 바꿈, BOM 없음입니다. 입력 SRT의 인코딩과 무관하며, 읽을 때 디코딩이 일어나면 결과 패널이 알려 줍니다.

관련 도구