WebVTT(.vtt)는 어떤 자막 포맷인가요?
WebVTT (Web Video Text Tracks) 는 HTML5 video 태그의 표준 자막 포맷입니다.
웹 영상에서 <track> 요소로 자막을 불러올 때 사용하며,
워드프레스 영상 임베드, Vimeo, 자체 개발 동영상 플레이어에서 가장 널리 쓰입니다.
확장자는 .vtt, MIME 타입은 text/vtt 입니다.
WebVTT(.vtt)와 SRT 자막을 브라우저에서 바로 양방향 변환하는 무료 도구입니다. HTML5 video 태그 호환, 큐 ID · NOTE 주석 처리, 인코딩 변환, 자막 싱크 조정, 텍스트 추출까지 한 화면에서 처리합니다.
변환 결과가 여기에 표시됩니다.
WebVTT는 SRT의 직계 후속 표준으로 구조가 매우 비슷하지만, 웹 브라우저 환경에 맞춰 여러 기능이 추가되어 있습니다. 두 포맷의 차이를 이해하면 변환 결과를 더 정확히 제어할 수 있습니다.
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의 콤마(,) 표기로 환산되며, WEBVTT 헤더와 NOTE 주석 블록은 SRT 표준에 없으므로 제거됩니다.
큐 식별자(ID)는 SRT의 자막 번호로 자동 정리됩니다.
VTT의 인라인 태그(<c>, <v>, <i>, <b>, <ruby>, <lang>)는
SRT 변환 시 제거되어 일반 텍스트로 출력됩니다. 큐 위치 설정(line, position, align, size)도 SRT 표준이 지원하지 않아 제외됩니다.
VLC · MX Player · 곰플레이어 등 데스크톱/모바일 동영상 플레이어로 영상을 시청할 때는 SRT 변환본을 사용하시는 것을 권장합니다.
웹 영상 자막을 다룰 때 자주 마주치는 상황과 그에 대한 실용적인 해결책입니다.
UTF-8(BOM은 선택)으로 받으세요.
<track> 요소가 참조하는 자막 파일은
영상 파일과 동일 도메인에 있어야 합니다. CDN으로 분리하려면 자막 호스트에 CORS 헤더
(Access-Control-Allow-Origin: * 등) 를 설정해야 합니다.
python -m http.server 또는 VS Code Live Server 같은 간이 웹 서버로 띄워 확인하세요.
line:50%, position:30%) 와
::cue 스타일을 정교하게 잡아둔 VTT라면 SRT로 변환하지 말고 그대로 사용하세요.
SRT 표준에는 위치 정보가 없어 변환 시 모두 손실됩니다.
TXT (자막 본문만)을 선택하면 시간코드 · 큐 ID · 모든 인라인 태그가 제거된 순수 자막 텍스트가 .txt로 다운로드됩니다.
영상 스크립트 작성, AI 번역 초안 입력, 검색용 색인 등에 활용하세요.
두 포맷 모두 시간 정보와 자막 텍스트를 담는 평문 기반 포맷이지만, 사용 환경과 표현력에서 차이가 있습니다.
<video> 태그의 표준 자막 포맷입니다.
SRT와 거의 같지만 첫 줄에 WEBVTT 헤더가 추가되고, 시간 표기에 점(.)을 사용하며,
큐 식별자 · NOTE 주석 · 위치 설정 · CSS 스타일링 등이 가능해 웹 영상 환경에 맞춰져 있습니다.
VTT와 SRT 변환 시 가장 자주 묻는 10가지 질문을 모았습니다. 이 곳에 없는 질문은 연락처를 통해 별도 문의 주시기 바랍니다.
WebVTT (Web Video Text Tracks) 는 HTML5 video 태그의 표준 자막 포맷입니다.
웹 영상에서 <track> 요소로 자막을 불러올 때 사용하며,
워드프레스 영상 임베드, Vimeo, 자체 개발 동영상 플레이어에서 가장 널리 쓰입니다.
확장자는 .vtt, MIME 타입은 text/vtt 입니다.
SRT의 시간 표기 콤마(,)가 VTT에서는 점(.)으로 변경됩니다.
예: 00:00:01,500 → 00:00:01.500.
또한 파일 첫 줄에 WEBVTT 헤더가 추가됩니다. 본 변환기는 두 변경 모두 자동 처리합니다.
WebVTT는 각 자막 큐에 선택적으로 식별자(ID)를 부여할 수 있습니다.
JavaScript에서 cue.id 로 접근하거나 CSS에서 ::cue(id) 셀렉터로 개별 스타일링이 가능합니다.
SRT로 변환 시 큐 ID는 SRT 번호로 대체되며 의미는 유지됩니다.
VTT의 NOTE 블록은 자막 표시에 영향을 주지 않는 주석입니다.
SRT는 주석 문법이 없으므로 변환 시 NOTE 블록은 제거됩니다.
작업용 메모는 별도 파일로 보관하시기 바랍니다.
보존되지 않습니다. WebVTT는 line, position, align, size 같은 큐 설정을 지원하지만
SRT 표준에는 위치 정보가 없습니다. SRT에서는 모든 자막이 기본 위치(화면 하단 중앙)에 표시됩니다.
위치가 중요하다면 변환하지 말고 VTT를 그대로 사용하세요.
WebVTT 인라인 태그(<c>, <v>, <i>, <b>, <u>, <ruby>, <lang>)는
SRT 변환 시 제거되어 일반 텍스트로 출력됩니다.
SRT에서 사용 가능한 <i>, <b>, <u> 태그조차 호환성이 떨어지므로
본 변환기는 일관성을 위해 모두 제거합니다.
<track> 요소를 사용합니다. 예:
<video src="video.mp4" controls><track default kind="subtitles" srclang="ko" label="한국어" src="subtitle.vtt"></video>
단, file:// 로컬 파일에서는 보안 정책상 동작하지 않으므로 반드시 웹 서버 (또는 로컬 개발 서버) 에서 확인해야 합니다.
가장 흔한 원인은 첫 줄의 WEBVTT 헤더가 누락되었거나 파일 인코딩이 UTF-8이 아닌 경우입니다.
브라우저는 BOM 없는 UTF-8 또는 UTF-8 BOM만 안정적으로 인식합니다.
출력 인코딩을 UTF-8 또는 UTF-8 BOM으로 설정해 다시 받아보세요.
출력 포맷에서 TXT (자막 본문만)을 선택하면 시간코드 · 큐 ID · 모든 태그가 제거된 순수 자막 텍스트가 .txt로 다운로드됩니다.
영상 스크립트 작성, 번역 초안 입력, 검색용 텍스트 색인 등에 활용하실 수 있습니다.
둘 다 표준 WebVTT를 따르지만, Vimeo는 .vtt 를 직접 다운로드받을 수 있고
YouTube는 SBV/SRT를 우선 제공합니다.
YouTube에서 SBV로 받은 자막은 별도 SBV 변환기를 사용하시고,
.vtt로 직접 받은 자막이라면 본 변환기로 SRT 변환이 가능합니다.