SRT vs VTT vs ASS: 2026년에 써야 할 자막 형식은?
SRT·VTT·ASS 세 자막 형식을 자세히 비교해요: 각각 무엇을 담는지, 어디서 깨지는지, 그리고 YouTube·웹 플레이어·스타일 캡션·보관용 영상에는 어떤 형식이 맞는지까지 정리했어요.
열 번 중 아홉 번은 SRT가 정답이에요. 파일이 웹페이지에서 재생된다면 VTT가 정답이고요. 캡션이 단순히 표시되는 게 아니라 디자인의 대상이라면 ASS가 정답이에요. 이 비교의 나머지는 모두 세부 사항이지만, 파일이 거부되고 스타일이 조용히 사라지고 타이밍이 반올림 오차로 어긋나는 지점은 바로 그 세부 사항 안에 있어요.
여기서는 각 형식이 실제로 담고 있는 내용과, 각각이 부족해지는 정확한 지점을 살펴봐요.
표 하나로 보는 비교
| SRT | VTT | ASS | |
|---|---|---|---|
| 정식 이름 | SubRip | WebVTT | Advanced SubStation Alpha |
| 공식 규격 | 없음, 관행만 존재 | 있음, W3C | 없음, 커뮤니티 문서만 존재 |
| 타임스탬프 | 00:00:01,000 (쉼표) | 00:00:01.000 (마침표) | 0:00:01.00 (센티초) |
| 스타일 | 기본 태그, 지원이 제각각 | ::cue를 통한 CSS | 전체 스타일 테이블과 줄 단위 재정의 |
| 위치 지정 | 불가능 | 가능, 큐 설정 | 가능, 픽셀 단위까지 |
| 카라오케/단어 타이밍 | 불가능 | 불가능 | 가능 |
| 폰트 내장 또는 첨부 | 불가능 | 불가능 | 가능, MKV로 먹싱할 때 |
웹 track 요소 | 불가능 | 가능, 필수 | 불가능 |
| YouTube, Vimeo, LinkedIn | 가능 | 가능 | 스타일 렌더링 안 됨 |
| VLC, mpv, 미디어 센터 | 가능 | 가능 | 가능 |
| 일반적인 용도 | 모든 곳 | 웹 플레이어 | 스타일 캡션, 애니메이션, 카라오케 |
SRT: 어디서든 통하는 형식
SRT 큐는 네 줄로 이루어져요 — 번호, 시간 범위, 텍스트, 그리고 빈 줄이에요:
1
00:00:01,000 --> 00:00:04,120
This is the first subtitle.
이게 전체 형식이에요. 공식 규격은 없어요 — SRT는 모두가 합의해서 구현한 관행일 뿐이고, 바로 그래서 어디서든 통하는 거예요.
이 관행에는 느슨한 부분도 있어요. 대부분의 플레이어는 텍스트 안의 <i>, <b>, <u> 태그를 인식하고 색상 속성이 있는 font 태그도 많은 플레이어가 인식하지만, 어느 것도 보장되지 않고 태그를 이해하지 못하는 플레이어는 태그를 그냥 글자 그대로 보여줄 수도 있어요. 인코딩은 또 다른 전형적인 함정이에요: SRT는 인코딩 규칙이 생기기 전부터 있던 형식이라, Windows-1254나 Latin-1로 저장된 파일은 UTF-8을 가정하는 플레이어에서 강세 문자와 비라틴 문자를 깨진 글자로 보여줘요. SRT를 UTF-8로 저장하면 “자막이 깨졌어요” 문제는 대부분 일어나지 않아요.
SRT를 쓰세요 — 플랫폼에 업로드할 때, 클라이언트에게 파일을 보낼 때, 또는 15년 뒤에도 이 파일이 제대로 열리기를 바랄 때예요.
VTT: 웹을 위한 SRT, 그리고 더 확장할 여지
WebVTT는 HTML5 track 요소가 요구하는 형식이에요. 자막이 웹페이지 안에서 재생된다면 브라우저는 VTT 말고 다른 건 원하지 않아요.
WEBVTT
intro
00:00:01.000 --> 00:00:04.120 line:90% align:center
This is the first subtitle.
SRT와 다른 네 가지 차이는 외워둘 만해요:
- 헤더. 파일은 반드시
WEBVTT로 시작해야 해요. 이게 없으면 그대로 거부되고, 이름만 바꾼 SRT가 브라우저에서 실패하는 가장 흔한 이유가 바로 이거예요. - 문장 부호. 밀리초 뒤에는 쉼표가 아니라 마침표를 써요. 이걸 고치지 않고
.srt를.vtt로 이름만 바꾸면 파일은 로드되지만 아무것도 나오지 않아요. - 큐 설정. 각 큐는
line,position,align,size,vertical값을 가질 수 있어서 텍스트를 하단 중앙 밖으로 옮길 수 있어요 — 구워 넣은 텍스트나 로고가 그 자리를 차지할 때 유용해요. - 실질적인 스타일과 구조. VTT는 CSS
::cue선택자를 쓰는STYLE블록,NOTE주석,REGION정의, 큐에 붙이는 선택적 이름까지 지원해요. 게다가 항상 UTF-8이라 인코딩 함정 자체가 사라져요.
VTT를 쓰세요 — 플레이어가 웹페이지일 때, 또는 전달 규격이 WebVTT를 명시할 때예요. 일부 플랫폼, 특히 온라인 강의 호스팅은 이름으로 딱 집어 WebVTT를 요구해요.
ASS: 캡션이 디자인의 일부일 때
Advanced SubStation Alpha는 완전히 다른 종류의 파일이에요. SRT와 VTT는 무엇을 언제 말하는지를 기술해요. ASS는 그걸 어떻게 그리는지를 기술해요.
ASS 파일은 여러 섹션으로 나뉘어요. [Script Info]는 PlayResX와 PlayResY로 가상 캔버스를 정의해서, 영상 해상도가 무엇이든 위치와 폰트 크기가 항상 비례를 유지하게 해요. [V4+ Styles]에는 폰트, 크기, 기본색과 외곽선 색, 테두리 스타일, 외곽선·그림자 두께, 정렬, 여백을 담은 이름 붙은 스타일이 들어가요. [Events]에는 대화 줄이 들어가고, 각 줄은 자기 스타일의 어떤 값이든 인라인으로 재정의할 수 있어요: 정확한 위치를 위한 \pos, 앵커를 위한 \an, 페이드를 위한 \fad, 애니메이션 트랜스폼을 위한 \t, 그리고 단어 단위 카라오케 타이밍을 위한 \k예요.
누구나 처음엔 이 부분에서 걸려요: ASS 색상은 &HBBGGRR 형식으로, 바이트 순서가 거꾸로예요. 표준 RGB 헥스처럼 보이지만 그게 아니에요 — 브랜드 색상을 그대로 복사해 넣으면 채널이 뒤바뀐 색이 나와요.
이 형식 덕분에 스타일이 입혀진 다국어 전달도 가능해져요. MKV 하나에 언어별 ASS 트랙 과 첨부 폰트 파일을 함께 담을 수 있어서, 그 폰트를 한 번도 본 적 없는 기기에서도 스타일이 똑같이 렌더링돼요.
ASS를 쓰세요 — 카라오케나 단어 단위 강조가 필요할 때, 캡션을 하단 중앙이 아닌 곳에 배치할 때, 언어별로 다른 타이포그래피가 필요할 때, 또는 여러 언어의 스타일 트랙을 하나의 파일에 담아야 할 때예요.
변환하면 무엇이 남을까
이 형식들 사이의 변환은 한 방향으로만 안전해요.
| 변환 | 결과 |
|---|---|
| SRT → VTT | 사실상 무손실 — 헤더와 문장 부호만 바뀜 |
| VTT → SRT | 텍스트와 타이밍은 유지됨; 위치, 리전, CSS는 사라짐 |
| ASS → SRT | 텍스트와 타이밍은 유지됨; 스타일, 위치, 카라오케가 전부 사라짐 |
| ASS → VTT | 텍스트와 타이밍은 유지됨; 일부 위치는 근사하게 재현 가능 |
| SRT → ASS | 되긴 하지만 기본 스타일만 나옴 — 컨테이너만 늘어날 뿐 디자인이 생기진 않음 |
실용적인 규칙은 이거예요: 가지고 있는 것 중 가장 정보가 풍부한 버전을 마스터 파일로 두고, 거기서 더 단순한 버전들을 만들어 내세요. 반대 방향으로는 아무것도 복원되지 않아요.
그래서 실제로는 뭘 보내야 할까?
| 보내는 곳 | 형식 | 이유 |
|---|---|---|
| YouTube, Vimeo, LinkedIn | SRT | 어디서나 통하고, 어차피 플레이어가 스타일을 다시 입힘 |
| HTML5 플레이어가 있는 웹페이지 | VTT | track 요소가 요구함 |
| 온라인 강의 플랫폼 | VTT | 업로드 규격에서 이름으로 흔히 지정함 |
| 번역가나 클라이언트 | SRT | 세상 모든 자막 도구에서 열림 |
| 보관이나 로컬 재생 | MKV 안의 ASS | 스타일과 모든 언어 트랙을 파일 하나에 유지함 |
| TikTok, Reels, Shorts | 없음 — 구워 넣기 | 이 플랫폼들은 자막 파일을 아예 읽지 않음 |
사람들이 늦게 알아채는 게 바로 마지막 행이에요. 세로형 소셜 플랫폼에는 자막 업로드 기능 자체가 없어요. 거기서 캡션은 영상 속 픽셀일 뿐이고, 이건 파일 형식의 문제가 아니라 렌더링의 문제예요. 영상에 자막 구워 넣기에서 품질을 망치지 않고 하는 방법을 다뤄요.
Sablate에서는 이게 어떻게 적용될까
Sablate는 모든 요금제에서 .srt, .vtt, .txt를 만들고, Pro에서는 .ass와 소프트 자막 .mkv까지 만들어요. 알아둘 만한 점은 편집기 스타일 패널에서 만든 스타일이 미리보기용 근사치가 아니라는 거예요: .ass 내보내기, 구워 넣은 .mp4, .mkv 안의 트랙까지 모두 같은 스타일 정의로부터 libass가 렌더링하기 때문에 세 결과물이 정확히 일치해요.
하나의 녹화로 여러 언어를 만든다면 형식 결정이 전달 방식 결정과 맞물려요 — 다국어 작업 흐름에서 둘을 함께 다뤄요. Pro는 $29 한 번의 결제이고, 가격에서 전체 내역을 확인할 수 있어요.
한 줄 요약
특별한 이유가 없다면 SRT를 보내세요. 브라우저나 강의 플랫폼이 이름으로 요구할 때는 VTT를 보내세요. 캡션이 디자인의 대상일 때 — 카라오케, 배치, 언어별 타이포그래피 — ASS를 쓰고, 그 ASS 파일을 마스터로 보관하세요. 거기서 변환해 나온 파일은 다시 되돌릴 수 없으니까요.