이중 자막 만들기, SRT·VTT·ASS 3가지 형식 비교
이중 자막의 어려움은 "번역"이 아닙니다. 번역은 도구가 해줍니다. 정말 사람을 붙잡는 것은 번역이 끝난 뒤 두 줄의 텍스트를 하나의 자막 파일 안에 어떻게 넣을 것인가입니다.
이중 자막에는 두 가지 방식이 있습니다. 단일 파일 두 줄(한 큐에 두 줄의 텍스트)과 듀얼 트랙(원문, 번역문 각각 한 트랙씩, 따로 켜고 끌 수 있음)입니다. 듀얼 트랙은 로컬에서 재생하며 볼 때 적합합니다. 플랫폼이나 클라이언트에 납품할 때는 단일 파일 두 줄을 쓰세요. 많은 플랫폼이 트랙 하나만 받고, 사용자가 켜지 않으면 아무것도 보이지 않기 때문입니다. 이 글에서 설명하는 것은 모두 단일 파일 두 줄 방식입니다.
SRT: 호환성 최고, 하지만 스타일 없음
SRT의 이중 자막은 그저 두 줄의 텍스트이며, 순서가 곧 배치입니다.
1
00:00:01,000 --> 00:00:03,000
Hoy vamos a hablar de tres cosas
오늘은 세 가지 이야기를 합니다
두 줄은 같은 큐에 속해 같은 시간 구간을 공유하며, 사이에 빈 줄을 넣으면 안 됩니다. 빈 줄은 "다음 자막이 시작된다"로 파싱됩니다. 또 SRT는 어떤 인라인 스타일도 지원하지 않으므로, 두 줄의 글자 크기, 색상, 위치는 완전히 동일합니다.
즉 SRT에서는 순서가 유일한 배치 수단입니다. 위에 놓은 줄을 관객이 먼저 읽습니다.
적합한 경우: YouTube CC 업로드, 대다수 플랫폼의 자막 가져오기, 클라이언트 납품.
VTT: 스타일은 가능, 플랫폼 지원은 제각각
VTT(WebVTT)의 파일 헤더에는 반드시 WEBVTT 한 줄이 있어야 하고, 타임스탬프의 밀리초는 마침표로 구분합니다(00:00:01.000). SRT는 쉼표를 쓰므로, 이것이 둘 사이의 가장 눈에 띄는 차이입니다. 이중 자막 역시 두 줄이지만 클래스로 표시할 수 있습니다.
WEBVTT
1
00:00:01.000 --> 00:00:03.000
<c.es>Hoy vamos a hablar de tres cosas</c>
<c.ko>오늘은 세 가지 이야기를 합니다</c>
CSS의 ::cue 규칙과 함께 쓰거나, 큐 위치 매개변수(line, position, align)로 두 줄을 떨어뜨려 배치하면 표현력이 SRT보다 한층 높습니다.
적합한 경우: 웹 플레이어, HLS 스트리밍. 주의: 로컬 플레이어와 일부 플랫폼의 VTT 지원은 SRT만큼 보편적이지 않고, "가져오기에 성공한 뒤" 실제로 어떻게 표시되는지는 플랫폼마다 편차가 큽니다.
ASS / SSA: 이중 자막 배치 최강, 대부분 굽기 전용
ASS는 두 줄에 각각 다른 스타일을 지정할 수 있는 유일한 형식입니다. 언어별로 스타일을 하나씩 정의(글자 크기, 폰트, 색상, 외곽선, 여백)하고, 이벤트 섹션의 같은 시점에 두 개의 레코드를 작성합니다.
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.50,ES,,0,0,0,,Hoy vamos a hablar de tres cosas
Dialogue: 0,0:00:01.00,0:00:02.50,KO,,0,0,0,,오늘은 세 가지 이야기를 합니다
두 줄이 서로 다른 스타일을 가리켜, 원문 줄은 조금 크게 번역 줄은 조금 작게 하고 위치도 정밀하게 제어할 수 있습니다. SRT와 VTT로는 불가능합니다.
비용: ASS는 주로 로컬 재생과 하드자막 굽기에 쓰이며, 대부분의 온라인 플랫폼은 업로드 자막으로 받아들이지 않습니다. 시간 형식도 시:분:초.백분초(두 자리)로 SRT, VTT와 다릅니다.
위아래 순서: 정답은 없지만 일관성은 필요
독자의 시선은 위에서 아래로 흐르므로 윗줄이 먼저 읽히고, 순서가 우선순위를 결정합니다.
| 주요 관객층 | 권장 순서 | 이유 |
|---|---|---|
| 해외 관객 위주(TikTok, Reels, Shorts) | 번역문 위, 원문 아래 | 대상 관객이 이해할 수 있는 줄을 먼저 읽게 |
| 국내 관객 위주, 해외도 겸함 | 원문 위, 번역문 아래 | 기존 관객의 시청 습관을 바꾸지 않음 |
| 이중 언어 수업, 어학 학습 | 원문 위, 번역문 아래 | 학습자가 원문을 먼저 보고 번역을 대조 |
"어느 쪽이 더 옳은가"보다 더 중요한 것은 영상 전체에서 순서를 일관되게 유지하는 것입니다. 중간에 순서를 바꾸면 관객이 계속 시선을 다시 맞춰야 합니다. 또 이중 자막일 때는 큐당 두 줄만 있어 줄바꿈 여유가 없으므로, 흔히 권장되는 기준인 중국어 한 줄 16자 이하, 영어 42자 이하를 감안하면 번역문을 미리 더 압축해야 합니다.
도구로 이중 SRT 바로 만들기
줄을 손으로 조립하면 실수가 쉽습니다. 빈 줄 누락, 타임라인 복사 어긋남, 큐 수 불일치가 대표적입니다. 이중 SRT 생성 도구를 쓰면 이런 과정을 건너뛸 수 있습니다. 원문 SRT를 올리면 도구가 타임라인을 파싱하고 텍스트를 번역한 뒤, "원문 + 번역문" 위아래 배치로 조립해 이중 SRT를 바로 내려받을 수 있습니다. 무료, 로그인 불필요이며 제한은 파일당 1MB 이하, 500개 큐 이하, 도구별로 IP당 하루 3회입니다.
아직 SRT가 없다면, SmileSub의 메인 워크플로는 영상에서 바로 시작합니다. 영상 업로드 → 음성 자동 인식 → 번역 → 이중 자막을 화면에 굽기 → 완성본 다운로드 순서로, 중국어, 영어, 일본어, 한국어 등 20개 언어 상호 번역을 지원합니다. 완성본과 별도로 자막 파일 한 판을 남겨 두면 YouTube의 CC 트랙으로도 그대로 쓸 수 있습니다.
자주 묻는 질문
만든 이중 자막이 플레이어에서 한 줄만 표시되는 이유는?
보통 두 줄 사이에 빈 줄이 실수로 들어간 경우입니다. 두 번째 줄이 새 큐로 파싱되는데 자기 타임라인이 없어 함께 버려집니다. 큐 수가 원래 개수와 같은지 확인하면 원인을 찾을 수 있습니다.
SRT에서 두 줄의 글자 크기를 다르게 할 수 있나요?
불가능합니다. SRT에는 스타일 레이어가 없어 두 줄이 완전히 동일합니다. 두 언어의 글자 크기나 색상을 다르게 하려면 ASS를 쓰거나, 자막을 화면에 굽기하면서 렌더링 시점에 각각 설정해야 합니다.
VTT와 SRT의 밀리초 구분자가 같나요?
다릅니다. 가장 많이 틀리는 지점입니다. SRT는 쉼표(00:00:01,000), VTT는 마침표(00:00:01.000)를 씁니다. SRT 파일의 확장자만 .vtt로 바꾸면 보통 파싱되지 않는데, WEBVTT 헤더 줄도 빠져 있기 때문입니다.