SRT vs VTT 차이: 자막 형식 비교와 변환 방법

SRT와 VTT 자막의 차이를 정리했습니다. 타임스탬프 문법, WEBVTT 헤더, 스타일, 플랫폼별 지원, SRT를 VTT로 변환하는 방법까지 설명합니다.

쉼표 타임스탬프가 있는 SRT 파일과 WEBVTT 헤더로 시작하는 VTT 파일이 나란히 놓이고 변환 화살표로 이어진 모습

다른 언어로 보기: English, Русский, Українська, Dansk, Deutsch, Español, Français, Italiano, Magyar, Nederlands, Norsk bokmål, Polski, Português (Brasil), Suomi, Svenska, Türkçe, Ελληνικά, עברית, العربية, 日本語, 中文(中国), 中文(台灣), Indonesia, Tiếng Việt

SRT와 VTT는 모두 시작 시간, 종료 시간, 표시할 텍스트로 이루어진 자막 큐(cue)를 저장하는 일반 텍스트 자막 형식이며, 단순한 자막이라면 거의 서로 바꿔 쓸 수 있습니다. 차이는 작지만 엄격합니다. VTT(WebVTT) 파일은 반드시 WEBVTT 줄로 시작하고 밀리초 앞에 마침표를 쓰는 반면, SRT는 헤더가 없고 쉼표를 씁니다. VTT에는 위치 지정, 스타일, 주석 기능도 더해집니다. 정리하면, 내 사이트의 HTML5 동영상에는 VTT, 페이스북과 링크드인에는 SRT, 유튜브와 비메오에는 둘 중 아무거나 쓰면 됩니다.

이 글에서는 두 형식을 예시와 함께 보여 주고, 플랫폼별로 어떤 형식을 받는지 정리한 뒤, 타이밍을 깨뜨리지 않고 SRT를 VTT로, 또 그 반대로 변환하는 방법을 설명합니다.

SRT vs VTT 한눈에 비교

SRT (SubRip)VTT (WebVTT)
파일 확장자.srt.vtt
헤더없음필수: 첫 줄이 WEBVTT
타임스탬프 형식00:01:02,500 (쉼표)00:01:02.500 (마침표), 시간(hour) 생략 가능
큐 번호필수, 순서대로선택 사항인 식별자(숫자 또는 이름)
위치 지정정의되지 않음큐 설정: line, position, size, align, vertical
스타일비공식 <i>, <b>, <u>, 가끔 <font><b>, <i>, <u>, 클래스, 화자 태그, CSS를 담은 STYLE 블록
주석없음NOTE 블록
공식 규격없음(사실상의 표준)있음, W3C 규격
주요 용도SNS 플랫폼, 동영상 편집기, PC용 플레이어HTML5 동영상, 웹 플레이어, 스트리밍

SRT 파일이란?

SRT 파일은 SubRip 자막 파일로, 번호가 매겨진 큐를 나열한 일반 텍스트 파일입니다. 각 큐는 순번, 타이밍 줄, 한 줄 이상의 텍스트 세 부분으로 이루어지며, 다음 큐 앞에는 빈 줄이 하나 들어갑니다.

1
00:00:01,000 --> 00:00:04,200
Welcome to the quarterly update.

2
00:00:04,600 --> 00:00:08,000
<i>Today we cover sales,
hiring and the product roadmap.</i>

타이밍 형식은 시:분:초,밀리초이며, 시간은 항상 두 자리이고 쉼표를 씁니다. SRT는 공식적으로 표준화된 적이 없어서 서식 태그 지원이 제각각입니다. 많은 PC용 플레이어가 <i>와 <b>를 표시하지만, 유튜브 도움말에는 스타일 마크업이 없는 기본 SRT 파일만 지원하며 일반 UTF-8로 저장해야 한다고 나와 있습니다. 구조가 워낙 단순해서 SRT는 거의 모든 동영상 편집기와 SNS 플랫폼이 읽을 수 있는 형식이고, 아무 텍스트 편집기로나 고칠 수 있습니다.

VTT(WebVTT) 파일이란?

WebVTT(Web Video Text Tracks)는 웹을 위해 만들어진 자막 형식입니다. MDN의 WebVTT 문서(영문)에 규칙이 정리되어 있습니다. 파일은 반드시 WEBVTT로 시작해야 하고, UTF-8이어야 하며, 타임스탬프는 밀리초 앞에 마침표를 씁니다. 시간(hour)은 생략할 수 있어서 01:02.500도 유효합니다.

WEBVTT

NOTE Quarterly update, English captions

intro
00:01.000 --> 00:04.200
Welcome to the quarterly update.

00:04.600 --> 00:08.000 line:85% align:center
<v Maria>Today we cover sales,
hiring and the product roadmap.</v>

여기에는 SRT에 없는 세 가지가 들어 있습니다.

  • 큐 설정은 타이밍 줄 뒤에 붙어 텍스트가 나타나는 위치를 정합니다. line(세로 위치), position과 size(가로 배치와 너비), align(start, center, end), vertical(세로쓰기 문자용)입니다.
  • 화자·클래스 태그인 <v Maria>나 <c.highlight>는 누가 말하는지 표시하거나 스타일을 적용합니다.
  • NOTE 블록은 시청자에게 보이지 않는 주석입니다. 큐 식별자(위의 intro 같은 것)는 선택 사항입니다.

첫 번째 큐 앞에 STYLE 블록으로 CSS를 넣을 수도 있습니다.

WEBVTT

STYLE
::cue {
  color: #ffffff;
  background-color: rgba(0, 0, 0, 0.7);
}
::cue(v[voice="Maria"]) {
  color: #ffd166;
}

브라우저 밖에서는 스타일 지원이 고르지 않습니다. 예를 들어 유튜브는 WebVTT의 위치 지정은 받지만 스타일은 굵게, 기울임, 밑줄로만 제한합니다. 스타일은 모든 플레이어가 따르는 기능이 아니라 덤이라고 생각하십시오.

어떤 플랫폼이 SRT나 VTT를 받나요?

시청자는 대부분 파일 형식을 볼 일이 없지만, 업로드 화면은 까다롭습니다. 각 플랫폼의 도움말과 최근 가이드에서 확인한 내용은 다음과 같습니다(2026년 10월 확인, 화면 구성은 바뀔 수 있으니 현재 고객센터에서 다시 확인하십시오).

플랫폼SRTVTT비고
유튜브예예SRT는 기본 형식(스타일 마크업 없음), WebVTT는 고급 형식(위치 지정, 제한된 스타일). 일반 UTF-8.
비메오예예비메오 고객센터는 가능하면 WebVTT를 권장하며, 파일은 UTF-8이어야 합니다.
페이스북예문서화되지 않음가이드들은 한결같이 SRT만 설명하며, video.en_US.srt처럼 로캘 접미사를 붙인 파일 이름을 씁니다.
링크드인예문서화되지 않음링크드인 도움말은 PC에서 게시 전에 SRT 파일을 첨부하는 방법을 설명합니다.
틱톡직접 업로드 방법 확인 못 함직접 업로드 방법 확인 못 함자막 파일을 첨부하는 공식 방법을 찾지 못했습니다. 틱톡 자체 자막 기능을 쓰거나 자막을 영상에 입히십시오.
HTML5 <video>기본 지원 안 함예<track> 요소는 WebVTT용으로 설계되었습니다.

유튜브는 SRT와 VTT 중 무엇을 쓰나요?

둘 다 씁니다. 유튜브의 지원되는 자막 파일 페이지는 SubRip(.srt)을 기본 형식에, WebVTT(.vtt)를 고급 형식에 넣어 두었습니다. 텍스트와 타이밍만 필요하다면 SRT가 문제를 일으킬 가능성이 가장 낮습니다. 화면 속 글자를 피해 자막 위치를 옮겨야 한다면 VTT를 쓰십시오.

내 사이트의 HTML5 동영상

직접 운영하는 플레이어라면 현실적으로 VTT밖에 선택지가 없습니다.

<video controls src="update.mp4">
  <track kind="subtitles" src="update.en.vtt" srclang="en" label="English" default>
</video>

SRT 파일만 있다면 먼저 변환하십시오. 자막을 영상에 입히는 방법과 숏폼 플랫폼용 자막은 동영상에 자막 넣는 방법 가이드를 참고하십시오.

SRT를 VTT로(또 VTT를 SRT로) 변환하는 방법

두 형식이 워낙 비슷해서 변환은 대부분 기계적인 작업입니다. 짧은 파일은 손으로 해도 되고, 그보다 길면 변환기를 쓰는 편이 낫습니다.

SRT → VTT 직접 변환

  1. 첫 줄에 WEBVTT를 넣고 그 아래에 빈 줄을 하나 둡니다.
  2. 타이밍 줄에서만 밀리초 앞의 쉼표를 마침표로 바꿉니다. 00:00:04,600은 00:00:04.600이 됩니다.
  3. 큐 번호는 그대로 둡니다. WebVTT는 이를 식별자로 받아들입니다.
  4. UTF-8 인코딩, .vtt 확장자로 저장합니다.

찾아 바꾸기는 조심하십시오. 쉼표를 모두 바꾸면 대사 속 쉼표까지 바뀝니다.

VTT → SRT 직접 변환

  1. WEBVTT 헤더와 STYLE, NOTE, REGION 블록을 모두 지웁니다.
  2. 타이밍 줄 끝에 붙은 큐 설정을 지웁니다.
  3. 시간이 빠진 곳에는 시간을 채우고(01:02.500은 00:01:02.500), 마침표를 쉼표로 바꿉니다.
  4. 큐에 1, 2, 3 순서로 번호를 매기고 <v Maria> 같은 VTT 전용 태그를 지웁니다.

브라우저에서 변환하기

Audiotexta의 무료 SRT→VTT 변환기와 VTT→SRT 변환기가 이 과정을 대신해 줍니다. 자막을 붙여 넣거나 파일을 고르면 변환이 브라우저 안에서 실행되므로 아무것도 업로드되지 않습니다. 타이밍은 밀리초 단위까지 유지되고, 줄 맨 앞의 "이름:" 형태 화자 표시도 보존됩니다. 솔직하게 덧붙이면, 이 변환기는 텍스트에서 HTML과 VTT 스타일 태그를 제거합니다. 기울임이나 사용자 지정 스타일이 꼭 필요하다면 변환 후 다시 넣거나 파일을 직접 고치십시오.

자주 생기는 SRT·VTT 오류와 해결 방법

  • WEBVTT 헤더 누락. 브라우저는 헤더 없는 VTT 파일을 무시합니다. 맨 첫 줄에 넣으십시오.
  • VTT 타임스탬프에 쉼표, SRT에 마침표. 변환하지 않고 이름만 바꿨을 때 가장 흔히 생깁니다. 타이밍 줄만 고치십시오.
  • 잘못된 인코딩. 한글이나 특수 문자가 깨진 기호로 보인다면 대개 파일이 UTF-8이 아니기 때문입니다. 특히 오래된 한국어 자막은 EUC-KR(CP949)로 저장된 경우가 많으니 텍스트 편집기에서 UTF-8로 다시 저장하십시오.
  • .srt.txt로 저장됨. 일부 편집기는 몰래 .txt를 붙입니다. 파일 확장자 표시를 켜고 이름을 바꾸십시오.
  • 빈 줄 누락. 큐 사이에는 반드시 빈 줄이 있어야 합니다. 없으면 큐가 합쳐지거나 파일 해석이 중간에 멈춥니다.
  • 종료 시간이 시작 시간보다 빠르거나 큐가 겹침. 플레이어가 해당 큐를 건너뛸 수 있습니다. 편집한 큐의 타이밍을 확인하십시오.
  • 페이스북 자막이 나타나지 않음. 가이드들은 파일 이름을 원인으로 꼽습니다. .en_US.srt나 .ko_KR.srt처럼 로캘 코드로 끝나야 합니다.
  • 내 컴퓨터에서는 VTT가 되는데 서버에서는 안 됨. text/vtt 콘텐츠 유형으로 제공하십시오. 다른 도메인에 있다면 video 요소에 crossorigin 속성이 필요하고 서버가 CORS 헤더를 보내야 합니다.
  • 자막이 기본으로 꺼져 있음. 자동으로 보여야 한다면 <track> 요소에 default 속성을 추가하십시오.

어떤 형식으로 내보내야 할까요?

자막을 처음부터 만든다면 미리 형식을 고를 필요가 거의 없습니다. Audiotexta의 자막 생성기는 오디오를 텍스트로 변환한 뒤 SRT와 VTT를 모두 내보내며, 이는 계정 없이 쓰는 무료 플랜에서도 가능합니다. 내보내기 전에 스크립트를 편집할 수 있어 타이밍과 문구를 바로잡을 수 있습니다. 전사부터 줄 길이, 읽기 속도까지 전체 과정은 SRT·VTT 자막 생성 가이드에서 다룹니다.

대략적인 기준은 이렇습니다. 목적지가 SNS 플랫폼이나 동영상 편집기라면 SRT로, 웹사이트와 웹 플레이어라면 VTT로 내보내고, 여러 곳에 게시한다면 둘 다 보관하십시오. 텍스트와 타이밍은 똑같고 겉포장만 다를 뿐입니다.

SRT를 VTT로 변환하는 방법

  1. SRT VTT 변환기 열기. 브라우저에서 Audiotexta의 SRT→VTT 변환기를 엽니다. 변환은 내 컴퓨터에서 실행되므로 자막 파일이 업로드되지 않습니다.
  2. 자막을 붙여 넣거나 파일 선택하기. .srt 파일의 내용을 입력란에 붙여 넣거나 컴퓨터에서 파일을 고른 뒤, 인식된 큐(cue)의 개수가 맞는지 확인합니다.
  3. VTT 파일 내려받기. 결과를 내려받습니다. 변환기는 WEBVTT 헤더를 추가하고 밀리초 앞의 쉼표를 마침표로 바꾸며, 모든 타이밍은 그대로 유지합니다.
  4. 플레이어에서 테스트하기. HTML5 track 요소나 플랫폼의 자막 업로드 기능으로 .vtt 파일을 동영상에 붙이고, 몇 개의 큐를 재생해 타이밍과 글자가 제대로 표시되는지 확인합니다.

자주 묻는 질문

SRT와 VTT의 가장 큰 차이는 무엇인가요?

둘 다 시간이 지정된 자막 큐를 일반 텍스트로 저장합니다. VTT 파일은 반드시 WEBVTT 줄로 시작하고 밀리초 앞에 마침표를 쓰는 반면, SRT는 헤더가 없고 쉼표를 씁니다. VTT는 큐 위치 지정, CSS 스타일, 주석도 지원하지만 SRT에는 공식적으로 정의되어 있지 않습니다.

유튜브는 SRT와 VTT 중 무엇을 쓰나요?

둘 다 받습니다. 유튜브 도움말은 SubRip(.srt)을 스타일 마크업이 없는 기본 형식으로, WebVTT(.vtt)를 위치 지정을 지원하는 고급 형식으로 소개하며, 스타일은 굵게, 기울임, 밑줄로 제한됩니다. 파일은 일반 UTF-8이어야 합니다.

.srt 파일의 확장자만 .vtt로 바꿔도 되나요?

안 됩니다. 이름만 바꾸면 필수인 WEBVTT 헤더가 추가되지 않고 타임스탬프의 쉼표도 마침표로 바뀌지 않아, 브라우저처럼 엄격한 플레이어는 파일을 거부하거나 아무것도 표시하지 않습니다. 변환기를 쓰거나 헤더와 타이밍 줄을 직접 고치십시오.

VTT를 SRT로 변환하면 잃는 것이 있나요?

보통 VTT 전용 기능만 사라집니다. 위치와 정렬 같은 큐 설정, STYLE 블록, NOTE 주석, 화자(voice)·클래스 태그입니다. 텍스트와 타이밍은 그대로이며, 대부분의 플랫폼은 어차피 이것만 사용합니다.

내 웹사이트의 HTML5 동영상에는 어떤 형식을 써야 하나요?

VTT를 쓰십시오. HTML track 요소는 WebVTT 파일용으로 설계되었고, 브라우저는 WEBVTT 헤더와 마침표로 구분된 밀리초를 기대합니다. 파일은 text/vtt 콘텐츠 유형으로 제공하십시오.

Audiotexta 무료로 사용해 보기

파일을 업로드하거나 링크를 붙여넣으면 몇 분 만에 스크립트를 받을 수 있습니다.

텍스트 변환 시작

관련 글