VTT를 TTML로 변환
또는 자막 텍스트를 붙여넣으세요
이 변환에서 달라지는 것
1가지가 버려지거나 결정이 필요합니다
- 형식 고유 내용
원본 형식이 자막 블록 밖에 두는 내용(자막 블록이 아닌 구획, 머리말 텍스트, 자막 블록별 설정, 주석 처리된 이벤트) — 대상 형식에는 들어갈 자리가 없습니다
이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.
이 페이지는 WebVTT를 TTML로 바꿉니다. TTML은 XML로 자막을 적는 표준 형식으로, 각 큐가 begin·end 속성을 가진 <p>가 됩니다. 두 형식 모두 밀리초를 쓰므로 시간 코드가 문자 그대로 옮겨집니다.
VTT의 00:00:04.126은 TTML의 00:00:04.126이 되고, <i>·<b>는 span의 tts:fontStyle·tts:fontWeight가 되며, 두 줄은 <br/>로 적힙니다. 시간에는 반올림이 없습니다.
사라지는 것은 cue 모델 밖의 구성입니다. WEBVTT 헤더와 주석, NOTE·STYLE·REGION 블록, align·position 같은 큐 설정이 TTML의 대응물로 자동 변환되지 않습니다. 큐의 글자와 시간은 온전히 넘어갑니다.
여러 파일을 넣으면 순서대로 처리되고 중간에 취소할 수 있으며 ZIP 하나로 내려옵니다. 브라우저 안에서 변환되어 업로드가 없습니다.
TTML은 방송·스트리밍 파이프라인에서 자막 교환 형식으로 쓰입니다. VTT의 큐 설정과 블록을 옮기지 않으므로, 대상 플레이어가 TTML의 스타일 속성을 어떻게 읽는지 확인하세요.
예시
전형적인 WebVTT 파일을 TTML로 변환
입력
WEBVTT
intro
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.
결과물
<?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:04.500" end="00:00:08.000">Second line with <span tts:fontStyle="italic">italics</span>.</p> </body>
</tt>
이 출력에서 빠진 것: 형식 고유 구성. 나머지는 줄 단위로 일치합니다.
같은 변환을 지저분한 입력으로
입력
a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.
결과물
<?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:02.000">No header, two lines before the timecode.</p> </body>
</tt>
실제 파일에 흔한 손상입니다. 줄 바꿈이 섞이고, 공백이 남고, 필드가 비어 있습니다. 위의 깔끔한 예와 비교해 해석기가 무엇을 용서하는지 보세요.
자주 묻는 질문
VTT의 NOTE·STYLE·REGION 블록은 TTML에서 어떻게 되나요?
사라집니다. VTT는 헤더·주석·스타일 블록·영역 정의·큐 설정을 담지만 TTML에는 그대로 옮길 대응물이 없습니다. 큐의 글자와 시간은 온전히 넘어갑니다.
VTT에서 만든 TTML 파일은 어떤 모양인가요?
XML 선언 아래 <tt><body>가 오고, 큐마다 begin·end 속성을 가진 <p>가 들어갑니다. 굵게·기울임은 span의 tts:fontWeight·tts:fontStyle로, 두 줄은 <br/>로 적힙니다.
VTT의 시간은 TTML에서 정확한가요?
네, 밀리초까지 정확합니다. VTT와 TTML 모두 00:00:04.126처럼 적으므로 시간 코드가 들어온 그대로 나옵니다. 반올림이나 이동은 없습니다.
두 줄짜리 VTT 큐는 TTML에서 어떻게 나오나요?
두 줄 사이에 <br/>이 들어갑니다. TTML이 강제 줄 바꿈을 적는 방식이며, 두 줄은 하나의 자막으로 묶여 함께 표시됩니다.
VTT 큐의 순서는 TTML에서 유지되나요?
네. 시작 시간이 빠른 순으로 정렬되고, 원본이 순서를 벗어나 있었다면 출력에서 바로잡힙니다. 내용이 아니라 구조의 변경이며 의도된 동작입니다.
TTML을 다시 VTT로 바꿀 수 있나요?
가능하지만 TTML→VTT는 스타일·위치·cue 모델 밖 구성을 보고합니다. 이 페이지에서 버린 NOTE·STYLE·REGION과 큐 설정은 TTML에 기록이 없어 되살아나지 않습니다.
VTT에서 만든 TTML 파일의 인코딩은 무엇인가요?
UTF-8, 유닉스 줄 바꿈, BOM 없음입니다. 입력 VTT의 인코딩과 무관하며, 읽을 때 디코딩이 일어나면 결과 패널이 알려 줍니다.