SRT, VTT, SBV, ASS 자막 파일 차이점 정리
SRT (SubRip)
가장 널리 쓰이는 자막 포맷입니다. 구조가 단순해서 메모장으로도 열고 고칠 수 있고, 대부분의 영상 플랫폼과 편집 프로그램, 플레이어가 읽습니다.
1
00:00:01,000 --> 00:00:04,000
안녕하세요, 오늘 영상에 오신 것을 환영합니다.
2
00:00:04,500 --> 00:00:07,000
오늘은 AI 자막에 대해 알아보겠습니다.
블록마다 번호, 시작과 끝 시각(시:분:초,밀리초), 자막 텍스트, 빈 줄이 순서대로 옵니다. 밀리초 앞 구분자가 쉼표라는 점이 VTT와 다릅니다.
굵게, 기울임 같은 기본 태그 정도만 쓸 수 있고 위치, 폰트, 색상은 플레이어마다 처리가 달라서 믿고 쓰기 어렵습니다. 유튜브 업로드, 편집 프로그램으로 가져오기, 번역 작업처럼 텍스트와 타이밍만 있으면 되는 경우에 씁니다.
VTT (WebVTT)
HTML5 <track> 요소에서 쓰는 웹 표준 포맷입니다. 생김새는 SRT와 거의 같습니다.
WEBVTT
00:00:01.000 --> 00:00:04.000 align:center
안녕하세요, 오늘 영상에 오신 것을 환영합니다.
00:00:04.500 --> 00:00:07.000
오늘은 AI 자막에 대해 알아보겠습니다.
SRT와 다른 점은 다음과 같습니다.
- 첫 줄에
WEBVTT헤더가 있어야 합니다. - 밀리초 앞 구분자가 마침표입니다(
00:00:04.500). - 큐 번호는 없어도 됩니다.
- 타이밍 줄 뒤에
align,position,line,size같은 큐 설정을 붙여 위치와 정렬을 지정할 수 있습니다. - 브라우저에서는 CSS
::cue로 자막 모양을 바꿀 수 있습니다.
웹사이트에 영상을 직접 넣을 때, Vimeo 같은 영상 호스팅이나 이러닝 플랫폼에서 많이 씁니다. 유튜브도 VTT 업로드를 받습니다.
SBV (유튜브)
유튜브 스튜디오에서 자막을 내려받을 때 고를 수 있는 포맷 중 하나입니다. 큐 번호가 없고, 시작과 끝 시각을 쉼표로 이어 한 줄에 씁니다.
0:00:01.000,0:00:04.000
안녕하세요, 오늘 영상에 오신 것을 환영합니다.
0:00:04.500,0:00:07.000
오늘은 AI 자막에 대해 알아보겠습니다.
시작과 끝 사이에 --> 대신 쉼표가 들어가기 때문에 SRT만 읽는 도구에 그대로 넣으면 오류가 납니다. 스타일이나 위치 정보는 없습니다. 유튜브 밖에서 편집하려면 먼저 SBV를 SRT로 바꾸는 변환기로 바꿔 두는 편이 편합니다.
ASS/SSA (Advanced SubStation Alpha)
SubStation Alpha(SSA)에서 발전한 포맷으로, Aegisub 같은 편집기와 애니 팬자막 작업에서 많이 씁니다. 자막마다 폰트, 크기, 색, 테두리, 그림자, 화면 좌표, 페이드와 이동 효과를 정할 수 있고, \k 태그로 음절마다 색이 바뀌는 카라오케 효과도 만들 수 있습니다.
[Script Info]
ScriptType: v4.00+
PlayResX: 1920
PlayResY: 1080
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour...
Style: Default,Arial,40,&H00FFFFFF,&H000000FF...
[Events]
Format: Layer, Start, End, Style, Name, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,안녕하세요
스타일은 [V4+ Styles]에 이름을 붙여 정의하고, 대사는 [Events]의 Dialogue: 줄에 씁니다. 시각은 센티초(1/100초) 단위입니다. 구조가 복잡해서 손으로 고치기보다는 Aegisub 같은 편집기로 다룹니다.
VLC, MPC-HC, mpv 같은 PC 플레이어는 ASS 스타일을 그대로 보여 주지만, 유튜브는 ASS 파일을 받지 않습니다. 텍스트와 타이밍만 필요하면 ASS/SSA를 SRT로 바꾸는 변환기가 스타일 태그를 걷어 내고 센티초 타이밍을 SRT 밀리초로 바꿉니다. 반대로 SRT에 기본 스타일을 붙여 ASS로 만들려면 SRT를 ASS로 바꾸는 변환기를 쓰면 됩니다.
포맷별 비교
| 특성 | SRT | VTT | SBV | ASS |
|---|---|---|---|---|
| 호환성 | 매우 높음 | 높음(웹) | 낮음(유튜브) | 낮음(PC 플레이어) |
| 스타일 지정 | 기본 태그 | 큐 설정, CSS | 없음 | 상세 |
| 손으로 편집 | 쉬움 | 쉬움 | 쉬움 | 어려움 |
| HTML5 웹 표준 | X | O | X | X |
| 애니메이션, 카라오케 | X | X | X | O |
| 유튜브 업로드 | O | O | O | X |
변환 방법
Picute의 무료 변환기는 모두 브라우저 안에서 처리되고 파일을 서버로 올리지 않습니다.
설치형 도구를 쓴다면 다음이 많이 쓰입니다.
- Subtitle Edit (Windows, 무료): 대부분의 포맷끼리 변환
- Aegisub (무료): ASS 편집
- FFmpeg (명령줄, 무료):
ffmpeg -i input.srt output.vtt
변환할 때 확인할 것:
- SRT와 VTT를 오갈 때는 밀리초 구분자(쉼표와 마침표)와
WEBVTT헤더가 맞게 바뀌었는지 봅니다. - SBV를 SRT로 바꾸면 큐 번호가 새로 붙고 시각 표기가 SRT 형식으로 바뀝니다.
- ASS를 SRT나 VTT로 바꾸면 스타일과 효과는 사라지고 텍스트와 타이밍만 남습니다.
- 한국어 자막은 UTF-8(BOM 없음)로 저장해야 다른 도구에서 깨지지 않습니다.
용도별 포맷 선택
| 사용 목적 | 포맷 |
|---|---|
| 유튜브 업로드 | SRT 또는 VTT |
| 유튜브에서 내려받은 자막 편집 | SBV를 SRT로 바꿔서 편집 |
| 웹사이트에 직접 넣는 영상 | VTT |
| 영상 편집 프로그램 | SRT |
| 애니 팬자막, 카라오케 | ASS |
| PC 플레이어 | ASS 또는 SRT |
| 자막 파일 업로드를 받지 않는 SNS | 자막을 영상에 입힌 MP4 |
Picute에서 내보내는 형식
Picute에서 영상 파일이나 유튜브 링크로 자막을 만들면 편집기에서 SRT와 VTT 자막 파일, 자막을 영상에 입힌 MP4로 내보낼 수 있습니다. ASS가 필요하면 SRT로 받은 뒤 위의 SRT를 ASS로 바꾸는 변환기를 쓰면 됩니다.
자주 묻는 질문
한국어 자막을 변환했더니 글자가 깨져요.
변환기보다는 파일 인코딩이 원인인 경우가 많습니다. 오래된 한글 자막은 EUC-KR이나 CP949로 저장된 경우가 있고, 이 파일을 UTF-8을 기대하는 도구로 열면 글자가 깨집니다. 원래 인코딩을 지정해 다시 연 뒤 UTF-8(BOM 없음)로 저장하면 됩니다. 방법은 한글 자막 인코딩 깨짐 해결에 정리해 두었고, 자막 인코딩 변환기로 브라우저에서 바로 바꿀 수도 있습니다.