블로그로 돌아가기

SRT vs VTT vs ASS: 2026년에 써야 할 자막 형식은?

SRT·VTT·ASS 세 자막 형식을 자세히 비교해요: 각각 무엇을 담는지, 어디서 깨지는지, 그리고 YouTube·웹 플레이어·스타일 캡션·보관용 영상에는 어떤 형식이 맞는지까지 정리했어요.

2026년 9월 11일
Sablate Team

SRT와 VTT의 차이는 작아요. VTT는 WebVTT의 줄임말로, 웹 브라우저에 맞게 다듬은 SRT예요. VTT 파일은 WEBVTT 헤더 줄로 시작하고, 밀리초 앞에 쉼표 대신 마침표를 쓰고, 항상 UTF-8이고, SRT에는 담을 곳이 없는 위치 지정과 CSS 스타일도 담을 수 있어요. ASS는 아예 다른 종류의 파일이에요. 무엇을 언제 말하는지만 담는 게 아니라, 모든 줄을 어떻게 그리는지 — 폰트, 색상, 정확한 위치, 단어 단위 카라오케 타이밍 — 까지 기술해요.

열 번 중 아홉 번은 SRT가 정답이에요. 파일이 웹페이지에서 재생된다면 VTT가 정답이고요. 캡션이 단순히 표시되는 게 아니라 디자인의 대상이라면 ASS가 정답이에요. 이 비교의 나머지는 모두 세부 사항이지만, 파일이 거부되고 스타일이 조용히 사라지고 타이밍이 반올림 오차로 어긋나는 지점은 바로 그 세부 사항 안에 있어요.

여기서는 각 형식이 실제로 담고 있는 내용과, 각각이 부족해지는 정확한 지점을 살펴봐요.

표 하나로 보는 비교

SRTVTTASS
정식 이름SubRipWebVTTAdvanced 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년 뒤에도 이 파일이 제대로 열리기를 바랄 때예요. 아직 SRT 파일을 만들어야 한다면, SRT 파일 만들기에서 직접 입력하고, 타이밍을 맞추고, 자동으로 생성하는 방법까지 다뤄요.

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 파일은 어떻게 생겼을까

위와 같은 첫 번째 자막을 최소한의 ASS 파일로 쓰면 이렇게 돼요:

[Script Info]
ScriptType: v4.00+
PlayResX: 1920
PlayResY: 1080

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,64,&H00FFFFFF,&H000000FF,&H00000000,&H64000000,0,0,0,0,100,100,0,0,1,3,0,2,60,60,50,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.12,Default,,0,0,0,,This is the first subtitle.

눈에 띄는 점이 두 가지 있어요. 모든 줄이 이름 붙은 스타일을 가리키기 때문에, 파일 전체의 모양을 바꾸는 일이 수천 개의 큐를 일일이 찾아 바꾸는 작업이 아니라 Style: 행 하나를 고치는 것으로 끝나요. 그리고 타임스탬프가 100분의 1초까지만 표기돼서, ASS를 한 번 거쳐 왕복하면 큐가 최대 10밀리초까지 움직일 수 있어요.

누구나 처음엔 이 부분에서 걸려요: ASS 색상은 &HBBGGRR 형식으로, 바이트 순서가 거꾸로예요. 앞에는 알파 바이트가 붙고, 그 값이 00이면 불투명이에요. 표준 RGB 헥스처럼 보이지만 그게 아니에요 — 브랜드 색상을 그대로 복사해 넣으면 채널이 뒤바뀐 색이 나와요.

ASS와 SSA

SSA(SubStation Alpha)는 같은 형식의 구버전이에요. ASS는 그 "v4+" 개정판이고, ScriptType: v4.00+ 줄이 바로 그걸 선언해요. ASS에서는 스타일 필드와 인라인 재정의 태그가 더 늘었고, 요즘 도구는 모두 ASS로 저장해요. 누군가 .ssa 파일을 보내도, ASS를 읽는 플레이어나 편집기라면 어느 것이든 열 수 있어요.

ASS를 지원하는 플레이어와 편집기

libass 기반으로 만든 데스크톱 플레이어는 ASS를 온전히 렌더링해요. VLC와 mpv가 그렇고, libass를 쓰는 미디어 센터도 마찬가지예요. MKV는 ASS를 필요한 폰트와 함께 담도록 만들어진 컨테이너예요. 웹 브라우저는 ASS를 자체적으로 표시하지 못하니, 웹 플레이어에는 대신 VTT 사본이 필요해요. 편집에는 ASS 자막의 스타일과 배치를 중심으로 설계된 무료 도구 Aegisub가 있고, Subtitle Edit은 다른 모든 형식과 함께 ASS도 열고 저장해요.

이 형식 덕분에 스타일이 입혀진 다국어 전달도 가능해져요. MKV 하나에 언어별 ASS 트랙 과 첨부 폰트 파일을 함께 담을 수 있어서, 그 폰트를 한 번도 본 적 없는 기기에서도 스타일이 똑같이 렌더링돼요.

ASS를 쓰세요 — 카라오케나 단어 단위 강조가 필요할 때, 캡션을 하단 중앙이 아닌 곳에 배치할 때, 언어별로 다른 타이포그래피가 필요할 때, 또는 여러 언어의 스타일 트랙을 하나의 파일에 담아야 할 때예요.

변환하면 무엇이 남을까

이 형식들 사이의 변환은 한 방향으로만 안전해요.

변환결과
SRT → VTT사실상 무손실 — 헤더와 문장 부호만 바뀜
VTT → SRT텍스트와 타이밍은 유지됨; 위치, 리전, CSS는 사라짐
ASS → SRT텍스트와 타이밍은 유지됨; 스타일, 위치, 카라오케가 전부 사라짐
ASS → VTT텍스트와 타이밍은 유지됨; 일부 위치는 근사하게 재현 가능
SRT → ASS되긴 하지만 기본 스타일만 나옴 — 컨테이너만 늘어날 뿐 디자인이 생기진 않음

실용적인 규칙은 이거예요: 가지고 있는 것 중 가장 정보가 풍부한 버전을 마스터 파일로 두고, 거기서 더 단순한 버전들을 만들어 내세요. 반대 방향으로는 아무것도 복원되지 않아요.

그래서 실제로는 뭘 보내야 할까?

보내는 곳형식이유
YouTube, Vimeo, LinkedInSRT어디서나 통하고, 어차피 플레이어가 스타일을 다시 입힘
HTML5 플레이어가 있는 웹페이지VTTtrack 요소가 요구함
온라인 강의 플랫폼VTT업로드 규격에서 이름으로 흔히 지정함
번역가나 클라이언트SRT세상 모든 자막 도구에서 열림
DaVinci Resolve 같은 영상 편집 프로그램SRT자막 트랙으로 가져올 수 있음 — Resolve 진행 단계 참고
보관이나 로컬 재생MKV 안의 ASS스타일과 모든 언어 트랙을 파일 하나에 유지함
TikTok, Reels, Shorts없음 — 구워 넣기이 플랫폼들은 자막 파일을 아예 읽지 않음

사람들이 늦게 알아채는 게 바로 마지막 행이에요. 세로형 소셜 플랫폼에는 자막 업로드 기능 자체가 없어요. 거기서 캡션은 영상 속 픽셀일 뿐이고, 이건 파일 형식의 문제가 아니라 렌더링의 문제예요. 영상에 자막 구워 넣기에서 품질을 망치지 않고 하는 방법을 다뤄요.

Sablate에서는 이게 어떻게 적용될까

Sablate는 모든 요금제에서 .srt, .vtt, .txt를 만들고, Pro에서는 .ass와 소프트 자막 .mkv까지 만들어요. 알아둘 만한 점은 편집기 스타일 패널에서 만든 스타일이 미리보기용 근사치가 아니라는 거예요: .ass 내보내기, 구워 넣은 .mp4, .mkv 안의 트랙까지 모두 같은 스타일 정의로부터 libass가 렌더링하기 때문에 세 결과물이 정확히 일치해요.

하나의 녹화로 여러 언어를 만든다면 형식 결정이 전달 방식 결정과 맞물려요 — 다국어 작업 흐름에서 둘을 함께 다뤄요. 이 파일들을 만들어 줄 도구를 아직 고르는 중이라면, 오프라인 자막 생성기 비교에서 데스크톱 도구들을 나란히 비교해요. Pro는 $29 한 번의 결제이고, 가격에서 전체 내역을 확인할 수 있어요.

한 줄 요약

특별한 이유가 없다면 SRT를 보내세요. 브라우저나 강의 플랫폼이 이름으로 요구할 때는 VTT를 보내세요. 캡션이 디자인의 대상일 때 — 카라오케, 배치, 언어별 타이포그래피 — ASS를 쓰고, 그 ASS 파일을 마스터로 보관하세요. 거기서 변환해 나온 파일은 다시 되돌릴 수 없으니까요.

자주 묻는 질문

YouTube에는 어떤 자막 형식을 써야 하나요?

SRT를 쓰세요. YouTube는 어디서든 SRT를 받아주고, 어떤 편집기든 SRT를 만들 수 있고, 어차피 YouTube는 모든 캡션을 플레이어 자체 스타일로 렌더링하니 더 풍부한 형식을 써도 그 플랫폼에서는 얻는 게 없어요. WebVTT를 요구하는 웹 플레이어에도 같은 파일을 보낼 때만 VTT를 쓰세요.

SRT와 VTT의 실제 차이는 뭔가요?

세 가지예요. VTT는 밀리초 앞에 마침표를 쓰고 SRT는 쉼표를 써요. VTT 파일은 반드시 WEBVTT 줄로 시작해야 하고 항상 UTF-8이에요. VTT는 위치와 정렬을 위한 큐 설정, CSS를 통한 스타일, 선택적인 큐 이름까지 추가로 지원해요. 이 세 가지를 빼면 두 파일은 거의 똑같아요.

YouTube가 ASS 자막 파일을 읽을 수 있나요?

업로드는 받아줄 수 있지만 스타일은 렌더링하지 않아요. 위치, 폰트, 색상, 외곽선, 카라오케 타이밍이 모두 사라지고 캡션은 YouTube 자체 스타일로 나와요. 그 모양 자체가 콘텐츠의 일부라면, 스타일이 입혀진 파일을 올리는 대신 캡션을 영상에 구워 넣으세요.

ASS 형식이 실제로 필요한 때는 언제인가요?

캡션의 모양 자체가 영상의 일부일 때예요: 카라오케 단어 타이밍, 하단 중앙이 아닌 위치에 놓인 캡션, 줄마다 다른 폰트와 색상, 또는 여러 언어의 스타일 트랙을 함께 담은 MKV 하나가 필요할 때죠. 스트리밍 플랫폼의 평범한 대화 자막이라면 ASS는 필요 이상의 형식이에요.

ASS를 SRT로 되돌려도 아무것도 손실되지 않나요?

아니요. 텍스트와 타이밍은 깔끔하게 옮겨지지만 SRT에는 담을 곳이 없어서 모든 스타일 지정이 버려져요. 위치, 폰트, 색상, 애니메이션, 카라오케 타이밍이 전부 사라져요. 반대로 SRT를 VTT로 바꾸는 건 거의 손실이 없어요 — 대부분 헤더 한 줄과 문장 부호 차이일 뿐이에요.

영상 플레이어가 가장 잘 지원하는 형식은 뭔가요?

SRT는 실질적으로 모든 곳에서 지원돼요. ASS는 VLC나 mpv처럼 libass 기반으로 만들어진 데스크톱 플레이어와 미디어 센터, 그리고 MKV 컨테이너에서 지원돼요. VTT는 웹 브라우저가 HTML5 텍스트 트랙에 요구하는 형식이에요. 모든 곳에서 동시에 최선인 단일 형식은 없어요.

ASS 자막 파일은 어떻게 열고 편집하나요?

재생만 하려면 VLC나 mpv에서 영상 옆에 파일을 불러오거나, 그 트랙이 들어 있는 MKV를 재생하세요. 편집하려면 ASS 작업을 중심으로 만든 무료 편집기인 Aegisub나 Subtitle Edit을 쓰세요. ASS 파일은 일반 텍스트라서 아무 텍스트 편집기로도 열 수 있어요. 웹 브라우저는 ASS를 자체적으로 표시하지 못하니, 웹 플레이어에는 대신 VTT 사본이 필요해요.