Skip to content

SRT를 VTT로 자막 변환

SubRip 파일을 웹사이트, YouTube, HTML5 비디오 플레이어용 WebVTT로 변환하세요.

SRT 파일을 여기로 드래그 앤 드롭

또는 클릭하여 찾아보기

최대 50MB .srt 파일 지원

핵심 엔진 아키텍처

가장 흔한 자막 간극을 잇다

SRT는 가장 널리 쓰이는 자막 형식이지만 브라우저는 이를 받아들이지 않습니다. HTML5 사양은 <track> 요소에 WebVTT를 요구하며 모든 주요 브라우저가 이를 강제합니다. 이 변환기는 세 가지 핵심 변환을 수행합니다: 필수 WEBVTT 헤더를 추가하고, SRT의 쉼표 밀리초 타임스탬프(00:01:30,500)를 VTT 점 형식(00:01:30.500)으로 변환하며, VTT가 사용하지 않는 SRT 항목 번호를 제거합니다. 결과물은 Chrome, Firefox, Safari, Edge, 모바일 브라우저에서 즉시 로드됩니다.

페이로드 & 구문 검사기

SRT → VTT 코드 구문 및 구조 검사

헤더 정의, 타임스탬프 구문, 큐 페이로드 형식을 나란히 비교하여 코드 수준의 대응 관계를 보여줍니다

밀리초 동기화
input.srt
SRT 입력
1
00:00:01,000 --> 00:00:04,000
Hello, world!
 
2
00:00:04,500 --> 00:00:08,000
This is a subtitle file.
 
3
00:00:08,500 --> 00:00:12,000
Converted locally!
output.vtt
VTT 출력
WEBVTT
 
00:00:01.000 --> 00:00:04.000
Hello, world!
 
00:00:04.500 --> 00:00:08.000
This is a subtitle file.
 
00:00:08.500 --> 00:00:12.000
Converted locally!
사양 시트

SRT vs VTT 기술 사양

표준 규격 준수
입력 형식

SRT

SRT

SRT(SubRip)는 가장 널리 쓰이는 일반 텍스트 자막 형식입니다. 각 항목은 순차 번호, 쉼표로 구분된 밀리초 타임스탬프 라인(00:01:30,500 --> 00:01:35,000), 한 줄 이상의 자막 텍스트로 구성됩니다. SRT 파일에는 헤더, 메타데이터, 스타일이 없습니다. 웹 브라우저를 제외한 거의 모든 미디어 플레이어와 호환됩니다.

출력 형식

VTT

VTT

VTT(WebVTT)는 HTML5 비디오용 W3C 표준 자막 형식입니다. 파일은 WEBVTT 헤더로 시작합니다. 각 큐는 항목 번호 없이 점으로 구분된 타임스탬프(00:01:30.500 --> 00:01:35.000)를 사용합니다. VTT는 위치 지정(line, position, align)을 위한 선택적 큐 설정과 메타데이터 주석용 NOTE 블록을 지원합니다.

형식 차이점

SRT 타임스탬프는 쉼표 구분자(00:01:30,500), VTT는 점 구분자(00:01:30.500)를 사용합니다.
SRT 항목은 순차 번호(1, 2, 3...)로 시작, VTT 큐는 선택적 문자열 식별자를 갖습니다.
SRT에는 파일 헤더가 없고, VTT는 첫 줄에 WEBVTT 문자열이 필요합니다.
SRT는 위치 지정이나 스타일을 지원하지 않고, VTT는 큐 설정(line, position, align, size)을 지원합니다.
SRT는 보통 text/plain으로 제공되고, VTT는 웹 서버에서 text/vtt로 제공되어야 합니다.
SRT는 데스크톱 미디어 플레이어가 인식하고, VTT는 웹 브라우저와 JavaScript 비디오 플레이어가 인식합니다.

변환 문제 해결 및 주의 사항

플레이어 호환성, 문자 인코딩, 타이밍 동기화에 대한 실용적인 해결책

4 가지 주의 사항
GOTCHA #1

브라우저 콘솔에 'Failed to load resource' 오류가 뜨거나 .vtt 트랙을 거부하는 이유는 무엇인가요?

웹 브라우저는 WebVTT 파일이 반드시 정확한 MIME 타입('text/vtt; charset=utf-8')으로 제공되어야 자막으로 인식합니다. 또한 비디오와 자막 파일의 도메인이 다른 경우, 서버가 적절한 CORS 헤더(`Access-Control-Allow-Origin: *`)를 반환하지 않으면 브라우저 보안 정책상 자막 로드가 차단됩니다.

GOTCHA #2

HTML5 비디오 플레이어(Video.js, Plyr 등)에서 자막 싱크가 점차 밀리거나 맞지 않는 현상

WebVTT 규격은 시간 순서대로 정렬된 타임스탬프를 엄격하게 요구합니다. 원본 SRT에 타임스탬프 순서 뒤바뀜, 음수 지속 시간 등이 포함되어 있으면 브라우저 파서가 이후의 큐 표시를 중단할 수 있습니다. AllSubConverter는 내보내기 시 큐를 시간순으로 자동 정렬하고 유효하지 않은 구간을 정리합니다.

GOTCHA #3

SRT의 기본 HTML 태그(<b>, <i>, <font>)가 WebVTT에서 비정상적으로 동작하는 이유

WebVTT는 화자 태그(`<v 이름>`), 클래스(`<c.클래스명>`), 굵게(`<b>`), 기울임꼴(`<i>`)을 기본 지원하지만, 구형 `<font color=...>` 태그는 표준에서 지원하지 않습니다. 자막 색상과 서식은 CSS 가상 요소(`video::cue { color: yellow; }`)를 통해 현대적인 웹 방식으로 스타일링하는 것이 권장됩니다.

GOTCHA #4

악센트 문자나 이모지가 웹 페이지에서 깨진 기호로 표시되는 이유는 무엇인가요?

WebVTT 파일은 항상 UTF-8로 인코딩해야 합니다. 원본 SRT가 Windows에서 ANSI/Windows-1252 또는 GBK로 만들어졌다면 비 ASCII 문자가 손상됩니다. 이 엔진은 바이트 순서 표시(BOM) 없는 UTF-8 출력을 생성합니다.

기능

브라우저가 첫 줄에서 요구하는 필수 WEBVTT 헤더를 추가합니다
SRT 쉼표 타임스탬프(00:01:30,500)를 VTT 점 타임스탬프(00:01:30.500)로 변환합니다
VTT 형식에서 사용하지 않는 SRT 순차 항목 번호를 제거합니다
cue 식별자와 cue 설정 없는 기본 WebVTT 큐 구조를 출력합니다
BOM, CRLF, LF 줄 끝을 가진 SRT 파일을 유연하게 처리합니다
모든 줄바꿈과 특수문자를 포함한 자막 텍스트를 정확히 보존합니다
모든 최신 브라우저와 웹 플레이어가 인식하는 UTF-8 인코딩 VTT를 출력합니다
네트워크 요청 없이 브라우저에서 로컬로 파일을 처리합니다

변환하는 이유

HTML5 <video> 요소는 <track> 태그를 통해 WebVTT만 허용합니다. 브라우저는 SRT 파일을 조용히 무시합니다.
YouTube 자막 업로드는 VTT를 허용하며 큐 타이밍을 시간 정보와 함께 유지합니다.
Video.js, Plyr, JW Player, Shaka Player는 표준 track API를 통해 VTT를 네이티브로 로드합니다.
WebVTT는 HTML5 동영상 및 브라우저 플레이어 자막에 널리 사용되는 표준 포맷입니다.
학습 관리 시스템(Moodle, Canvas, Coursera)은 접근 가능한 비디오 자막에 VTT를 활용합니다.
VTT 큐 설정은 SRT가 표현할 수 없는 기본 위치 지정(상, 하, 좌, 우)을 가능하게 합니다.
CDN 호스팅 VTT 파일은 웹 서버에서 올바른 text/vtt MIME 유형으로 제공되어 브라우저 호환성을 보장합니다.
Scenarios

일반적인 활용 사례

웹사이트 비디오 임베드

웹사이트의 HTML5 비디오에 자막을 추가하세요. 브라우저는 <track> 요소를 통해 VTT를 요구하며 SRT 자막을 표시하지 않습니다.

YouTube 자막 업로드

YouTube Studio를 통해 VTT 자막을 업로드하고, 처리 후 타이밍이 의도대로 유지되었는지 검토하세요.

이러닝 접근성

LMS 플랫폼의 교육용 비디오 콘텐츠에 VTT 자막 트랙을 제공하고, 접근성 요구사항에 맞는지 자막 내용과 타이밍을 검토하세요.

맞춤형 비디오 플레이어 개발

표준 <track> API를 사용해 JavaScript 비디오 플레이어(Video.js, Plyr, Shaka Player)에서 VTT 자막 트랙을 로드하세요.

소셜 미디어 비디오 자막

일부 소셜 플랫폼과 웹 기반 비디오 편집기는 프로모션, 소셜 비디오 콘텐츠에 자막을 추가할 때 VTT를 허용합니다.

Format Ecosystem

관련 포맷

사용 방법

  1. 1

    .srt 파일을 변환기에 드래그하거나 클릭하여 찾아보세요.

  2. 2

    파서가 각 SRT 항목(번호, 타임스탬프 라인, 텍스트 블록)을 읽습니다.

  3. 3

    타임스탬프의 쉼표 구분자가 점으로 교체됩니다(00:01:30,500이 00:01:30.500이 됩니다).

  4. 4

    VTT는 선택적 큐 식별자를 사용하므로 순차 항목 번호가 제거됩니다.

  5. 5

    WEBVTT 헤더가 출력의 첫 줄로 추가됩니다.

  6. 6

    정리된 각 항목이 타임스탬프와 텍스트를 가진 VTT 큐 블록이 됩니다.

  7. 7

    최종 VTT 콘텐츠가 UTF-8로 인코딩되어 다운로드할 준비가 됩니다.

자주 묻는 질문

HTML5 사양은 <track> 요소의 유일한 자막 형식으로 WebVTT를 정의합니다. 브라우저에는 SRT 파서가 없습니다. <track> 태그에 SRT 파일을 참조하면 브라우저가 이를 무시합니다. SRT를 VTT로 변환하면 자막 파일이 브라우저 호환됩니다.

유일한 차이는 소수점 구분자입니다. SRT는 쉼표(00:01:30,500)를, VTT는 점(00:01:30.500)을 사용합니다. 변환기는 타임스탬프 라인에서 쉼표를 점으로 교체합니다. 시, 분, 초, 밀리초 등 나머지 타이밍은 동일하게 유지됩니다.

네. YouTube는 자막 업로드용으로 VTT 파일을 허용합니다. YouTube Studio에서 비디오를 선택하고 자막을 연 뒤 VTT 파일을 업로드하세요. 처리 후 가져온 타이밍을 검토하세요.

모든 VTT 파일은 첫 줄에 WEBVTT 문자열로 시작하고 빈 줄이 뒤따라야 합니다. 이 헤더가 없으면 브라우저가 파일을 거부하고 자막이 표시되지 않습니다. 변환기가 이 헤더를 자동으로 추가합니다.

네. VTT는 SRT처럼 순차 번호를 사용하지 않습니다. VTT 큐는 선택적 문자열 식별자를 가질 수 있지만, 이 변환기는 식별자를 자동으로 만들지 않고 번호만 제거합니다. 식별자가 필요하면 변환 후 텍스트 편집기에서 수동으로 추가하세요.

아니요. 자막 텍스트 내용은 정확히 보존됩니다. 파일 형식만 바뀝니다: 헤더가 추가되고, 타임스탬프 구분자가 쉼표에서 점으로 바뀌며, 항목 번호가 제거됩니다. 줄바꿈, 특수문자, 모든 텍스트는 동일하게 유지됩니다.

자막을 변환할 준비가 되셨나요?

SRT 파일을 여기에 놓고 VTT로 즉시 변환하세요.