100% 무료 · 브라우저 처리 · 업로드 없음

VTT · SRT 자막 변환기

WebVTT(.vtt)와 SRT 자막을 브라우저에서 바로 양방향 변환하는 무료 도구입니다. HTML5 video 태그 호환, 큐 ID · NOTE 주석 처리, 인코딩 변환, 자막 싱크 조정, 텍스트 추출까지 한 화면에서 처리합니다.

HTML5 video 호환 큐 ID · NOTE 처리 밀리초 싱크 조정 정규식 치환 자막 본문 추출
→ 다른 자막 포맷도 변환할 수 있어요
SMI ⇄ SRT smisrt.onebit.co.kr VTT ⇄ SRT vttsrt.onebit.co.kr SBV ⇄ SRT sbvsrt.onebit.co.kr SUB ⇄ SRT subsrt.onebit.co.kr ASS ⇄ SRT asssrt.onebit.co.kr

자막 변환기

입력 자막 SOURCE
출력 자막 RESULT
출력 포맷
출력 인코딩
변환 결과 미리보기
변환 결과가 여기에 표시됩니다.
1 싱크 조정
전체 자막 시간을 일괄 이동합니다. 초 단위로 입력 (소수점 셋째자리=밀리초).
양수=늦춤, 음수=당김.
예) -1.5 · +0.250 · -2.125
2 줄바꿈 정리
줄바꿈을 합치거나 글자 수 기준으로 자동 분할.
0이면 끔. 예: 38=38자 초과 시 가운데 분할
3 텍스트 치환
자막 본문에서 특정 문자열을 일괄 치환. 정규식 사용 가능.
변환할 자막을 불러와 주세요.
다운로드 파일명: subtitle.vtt
초기화
CONVERSION DETAILS

SRT ↔ VTT
변환 시 일어나는 일

WebVTT는 SRT의 직계 후속 표준으로 구조가 매우 비슷하지만, 웹 브라우저 환경에 맞춰 여러 기능이 추가되어 있습니다. 두 포맷의 차이를 이해하면 변환 결과를 더 정확히 제어할 수 있습니다.

SRT → VTT

SubRip을 웹 표준으로

SRT의 시간 표기 콤마(00:00:01,500)가 VTT의 점 표기(00:00:01.500)로 변환됩니다. 파일 첫 줄에는 WEBVTT 헤더가 자동 삽입되어 HTML5 video 태그가 인식할 수 있게 됩니다.

SRT의 자막 번호는 VTT의 큐 식별자(cue identifier) 자리에 그대로 옮겨집니다. 본문 줄바꿈과 텍스트는 그대로 유지되며, 변환된 VTT는 <track> 요소로 즉시 사용 가능합니다.

VTT는 UTF-8을 표준으로 합니다. 출력 인코딩을 UTF-8 또는 UTF-8 BOM으로 받으세요. EUC-KR로 출력하면 브라우저에서 인식되지 않습니다.

VTT → SRT

웹 자막을 호환 포맷으로

VTT의 점(.) 시간 표기가 SRT의 콤마(,) 표기로 환산되며, WEBVTT 헤더와 NOTE 주석 블록은 SRT 표준에 없으므로 제거됩니다. 큐 식별자(ID)는 SRT의 자막 번호로 자동 정리됩니다.

VTT의 인라인 태그(<c>, <v>, <i>, <b>, <ruby>, <lang>)는 SRT 변환 시 제거되어 일반 텍스트로 출력됩니다. 큐 위치 설정(line, position, align, size)도 SRT 표준이 지원하지 않아 제외됩니다.

VLC · MX Player · 곰플레이어 등 데스크톱/모바일 동영상 플레이어로 영상을 시청할 때는 SRT 변환본을 사용하시는 것을 권장합니다.

TIPS

VTT · SRT 변환 팁

웹 영상 자막을 다룰 때 자주 마주치는 상황과 그에 대한 실용적인 해결책입니다.

TIP · 01
VTT는 반드시 UTF-8로 저장
WebVTT 표준은 UTF-8 인코딩을 요구합니다. EUC-KR로 저장한 .vtt 파일은 브라우저가 글자 깨짐을 표시하거나 자막 트랙 자체를 인식하지 못합니다. 본 변환기에서 출력 인코딩을 UTF-8(BOM은 선택)으로 받으세요.
TIP · 02
HTML5 video 임베드는 같은 도메인이어야 동작
브라우저 보안 정책상 <track> 요소가 참조하는 자막 파일은 영상 파일과 동일 도메인에 있어야 합니다. CDN으로 분리하려면 자막 호스트에 CORS 헤더 (Access-Control-Allow-Origin: * 등) 를 설정해야 합니다.
TIP · 03
file:// 로컬에서는 자막이 표시되지 않습니다
로컬 PC에서 HTML 파일을 더블클릭해서 열면 브라우저가 보안상 외부 트랙 로드를 차단합니다. python -m http.server 또는 VS Code Live Server 같은 간이 웹 서버로 띄워 확인하세요.
TIP · 04
위치/스타일이 중요한 자막은 변환하지 마세요
교육·자막 디렉터링용으로 큐 위치(line:50%, position:30%) 와 ::cue 스타일을 정교하게 잡아둔 VTT라면 SRT로 변환하지 말고 그대로 사용하세요. SRT 표준에는 위치 정보가 없어 변환 시 모두 손실됩니다.
TIP · 05
자막 본문 추출은 텍스트 분석 · 번역 초안에 유용
출력 포맷에서 TXT (자막 본문만)을 선택하면 시간코드 · 큐 ID · 모든 인라인 태그가 제거된 순수 자막 텍스트가 .txt로 다운로드됩니다. 영상 스크립트 작성, AI 번역 초안 입력, 검색용 색인 등에 활용하세요.
FILE FORMATS

SRT와 VTT는
어떤 포맷인가요

두 포맷 모두 시간 정보와 자막 텍스트를 담는 평문 기반 포맷이지만, 사용 환경과 표현력에서 차이가 있습니다.

.srt
SRT
SubRip Subtitle · 1990년대 후반
프랑스의 SubRip 프로그램에서 처음 사용된 가장 단순한 자막 포맷입니다. 구조가 평문 기반이라 사람이 직접 편집하기 쉽고, 거의 모든 영상 플레이어 (VLC · MX Player · 곰플레이어 · KMP · 팟플레이어) 와 OTT 플랫폼 (Netflix · Disney+ · YouTube) 이 SRT를 지원합니다.
1 00:00:01,000 --> 00:00:04,000 안녕하세요, 자막입니다. 2 00:00:05,250 --> 00:00:08,750 두 번째 자막입니다.
.vtt
VTT
WebVTT · W3C 표준, 2010년
Web Video Text Tracks. HTML5 <video> 태그의 표준 자막 포맷입니다. SRT와 거의 같지만 첫 줄에 WEBVTT 헤더가 추가되고, 시간 표기에 점(.)을 사용하며, 큐 식별자 · NOTE 주석 · 위치 설정 · CSS 스타일링 등이 가능해 웹 영상 환경에 맞춰져 있습니다.
WEBVTT NOTE 한국어 자막 intro 00:00:01.000 --> 00:00:04.000 line:90% 안녕하세요, 자막입니다. 00:00:05.250 --> 00:00:08.750 두 번째 자막입니다.
FAQ

자주 묻는 질문

VTT와 SRT 변환 시 가장 자주 묻는 10가지 질문을 모았습니다. 이 곳에 없는 질문은 연락처를 통해 별도 문의 주시기 바랍니다.

Q.01

WebVTT(.vtt)는 어떤 자막 포맷인가요?

WebVTT (Web Video Text Tracks) 는 HTML5 video 태그의 표준 자막 포맷입니다. 웹 영상에서 <track> 요소로 자막을 불러올 때 사용하며, 워드프레스 영상 임베드, Vimeo, 자체 개발 동영상 플레이어에서 가장 널리 쓰입니다. 확장자는 .vtt, MIME 타입은 text/vtt 입니다.

Q.02

SRT를 VTT로 변환할 때 무엇이 달라지나요?

SRT의 시간 표기 콤마(,)가 VTT에서는 점(.)으로 변경됩니다. 예: 00:00:01,50000:00:01.500. 또한 파일 첫 줄에 WEBVTT 헤더가 추가됩니다. 본 변환기는 두 변경 모두 자동 처리합니다.

Q.03

VTT의 큐 ID(cue identifier)는 무엇이며 어떻게 처리되나요?

WebVTT는 각 자막 큐에 선택적으로 식별자(ID)를 부여할 수 있습니다. JavaScript에서 cue.id 로 접근하거나 CSS에서 ::cue(id) 셀렉터로 개별 스타일링이 가능합니다. SRT로 변환 시 큐 ID는 SRT 번호로 대체되며 의미는 유지됩니다.

Q.04

VTT의 NOTE 주석은 SRT 변환 시 어떻게 되나요?

VTT의 NOTE 블록은 자막 표시에 영향을 주지 않는 주석입니다. SRT는 주석 문법이 없으므로 변환 시 NOTE 블록은 제거됩니다. 작업용 메모는 별도 파일로 보관하시기 바랍니다.

Q.05

VTT의 큐 위치 설정(line, position 등)은 SRT에서 보존되나요?

보존되지 않습니다. WebVTT는 line, position, align, size 같은 큐 설정을 지원하지만 SRT 표준에는 위치 정보가 없습니다. SRT에서는 모든 자막이 기본 위치(화면 하단 중앙)에 표시됩니다. 위치가 중요하다면 변환하지 말고 VTT를 그대로 사용하세요.

Q.06

VTT에 들어 있는 <c>, <i>, <b> 같은 태그는 어떻게 처리되나요?

WebVTT 인라인 태그(<c>, <v>, <i>, <b>, <u>, <ruby>, <lang>)는 SRT 변환 시 제거되어 일반 텍스트로 출력됩니다. SRT에서 사용 가능한 <i>, <b>, <u> 태그조차 호환성이 떨어지므로 본 변환기는 일관성을 위해 모두 제거합니다.

Q.07

HTML5 video 태그에 변환한 VTT를 어떻게 적용하나요?

<track> 요소를 사용합니다. 예:
<video src="video.mp4" controls><track default kind="subtitles" srclang="ko" label="한국어" src="subtitle.vtt"></video>
단, file:// 로컬 파일에서는 보안 정책상 동작하지 않으므로 반드시 웹 서버 (또는 로컬 개발 서버) 에서 확인해야 합니다.

Q.08

VTT를 업로드했는데 자막이 표시되지 않습니다. 무엇이 문제일까요?

가장 흔한 원인은 첫 줄의 WEBVTT 헤더가 누락되었거나 파일 인코딩이 UTF-8이 아닌 경우입니다. 브라우저는 BOM 없는 UTF-8 또는 UTF-8 BOM만 안정적으로 인식합니다. 출력 인코딩을 UTF-8 또는 UTF-8 BOM으로 설정해 다시 받아보세요.

Q.09

자막에서 영상 대사 텍스트만 뽑을 수 있나요?

출력 포맷에서 TXT (자막 본문만)을 선택하면 시간코드 · 큐 ID · 모든 태그가 제거된 순수 자막 텍스트가 .txt로 다운로드됩니다. 영상 스크립트 작성, 번역 초안 입력, 검색용 텍스트 색인 등에 활용하실 수 있습니다.

Q.10

Vimeo와 YouTube에서 받은 자막 파일은 모두 같은 VTT인가요?

둘 다 표준 WebVTT를 따르지만, Vimeo는 .vtt 를 직접 다운로드받을 수 있고 YouTube는 SBV/SRT를 우선 제공합니다. YouTube에서 SBV로 받은 자막은 별도 SBV 변환기를 사용하시고, .vtt로 직접 받은 자막이라면 본 변환기로 SRT 변환이 가능합니다.