이중 자막 만들기, 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 헤더 줄도 빠져 있기 때문입니다.