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 코드 구문 및 구조 검사
헤더 정의, 타임스탬프 구문, 큐 페이로드 형식을 나란히 비교하여 코드 수준의 대응 관계를 보여줍니다
SRT vs VTT 기술 사양
SRT
SRT(SubRip)는 가장 널리 쓰이는 일반 텍스트 자막 형식입니다. 각 항목은 순차 번호, 쉼표로 구분된 밀리초 타임스탬프 라인(00:01:30,500 --> 00:01:35,000), 한 줄 이상의 자막 텍스트로 구성됩니다. SRT 파일에는 헤더, 메타데이터, 스타일이 없습니다. 웹 브라우저를 제외한 거의 모든 미디어 플레이어와 호환됩니다.
VTT
VTT(WebVTT)는 HTML5 비디오용 W3C 표준 자막 형식입니다. 파일은 WEBVTT 헤더로 시작합니다. 각 큐는 항목 번호 없이 점으로 구분된 타임스탬프(00:01:30.500 --> 00:01:35.000)를 사용합니다. VTT는 위치 지정(line, position, align)을 위한 선택적 큐 설정과 메타데이터 주석용 NOTE 블록을 지원합니다.
형식 차이점
변환 문제 해결 및 주의 사항
플레이어 호환성, 문자 인코딩, 타이밍 동기화에 대한 실용적인 해결책
브라우저 콘솔에 'Failed to load resource' 오류가 뜨거나 .vtt 트랙을 거부하는 이유는 무엇인가요?
웹 브라우저는 WebVTT 파일이 반드시 정확한 MIME 타입('text/vtt; charset=utf-8')으로 제공되어야 자막으로 인식합니다. 또한 비디오와 자막 파일의 도메인이 다른 경우, 서버가 적절한 CORS 헤더(`Access-Control-Allow-Origin: *`)를 반환하지 않으면 브라우저 보안 정책상 자막 로드가 차단됩니다.
HTML5 비디오 플레이어(Video.js, Plyr 등)에서 자막 싱크가 점차 밀리거나 맞지 않는 현상
WebVTT 규격은 시간 순서대로 정렬된 타임스탬프를 엄격하게 요구합니다. 원본 SRT에 타임스탬프 순서 뒤바뀜, 음수 지속 시간 등이 포함되어 있으면 브라우저 파서가 이후의 큐 표시를 중단할 수 있습니다. AllSubConverter는 내보내기 시 큐를 시간순으로 자동 정렬하고 유효하지 않은 구간을 정리합니다.
SRT의 기본 HTML 태그(<b>, <i>, <font>)가 WebVTT에서 비정상적으로 동작하는 이유
WebVTT는 화자 태그(`<v 이름>`), 클래스(`<c.클래스명>`), 굵게(`<b>`), 기울임꼴(`<i>`)을 기본 지원하지만, 구형 `<font color=...>` 태그는 표준에서 지원하지 않습니다. 자막 색상과 서식은 CSS 가상 요소(`video::cue { color: yellow; }`)를 통해 현대적인 웹 방식으로 스타일링하는 것이 권장됩니다.
악센트 문자나 이모지가 웹 페이지에서 깨진 기호로 표시되는 이유는 무엇인가요?
WebVTT 파일은 항상 UTF-8로 인코딩해야 합니다. 원본 SRT가 Windows에서 ANSI/Windows-1252 또는 GBK로 만들어졌다면 비 ASCII 문자가 손상됩니다. 이 엔진은 바이트 순서 표시(BOM) 없는 UTF-8 출력을 생성합니다.
기능
변환하는 이유
일반적인 활용 사례
웹사이트 비디오 임베드
웹사이트의 HTML5 비디오에 자막을 추가하세요. 브라우저는 <track> 요소를 통해 VTT를 요구하며 SRT 자막을 표시하지 않습니다.
YouTube 자막 업로드
YouTube Studio를 통해 VTT 자막을 업로드하고, 처리 후 타이밍이 의도대로 유지되었는지 검토하세요.
이러닝 접근성
LMS 플랫폼의 교육용 비디오 콘텐츠에 VTT 자막 트랙을 제공하고, 접근성 요구사항에 맞는지 자막 내용과 타이밍을 검토하세요.
맞춤형 비디오 플레이어 개발
표준 <track> API를 사용해 JavaScript 비디오 플레이어(Video.js, Plyr, Shaka Player)에서 VTT 자막 트랙을 로드하세요.
소셜 미디어 비디오 자막
일부 소셜 플랫폼과 웹 기반 비디오 편집기는 프로모션, 소셜 비디오 콘텐츠에 자막을 추가할 때 VTT를 허용합니다.
관련 포맷
사용 방법
- 1
.srt 파일을 변환기에 드래그하거나 클릭하여 찾아보세요.
- 2
파서가 각 SRT 항목(번호, 타임스탬프 라인, 텍스트 블록)을 읽습니다.
- 3
타임스탬프의 쉼표 구분자가 점으로 교체됩니다(00:01:30,500이 00:01:30.500이 됩니다).
- 4
VTT는 선택적 큐 식별자를 사용하므로 순차 항목 번호가 제거됩니다.
- 5
WEBVTT 헤더가 출력의 첫 줄로 추가됩니다.
- 6
정리된 각 항목이 타임스탬프와 텍스트를 가진 VTT 큐 블록이 됩니다.
- 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 큐는 선택적 문자열 식별자를 가질 수 있지만, 이 변환기는 식별자를 자동으로 만들지 않고 번호만 제거합니다. 식별자가 필요하면 변환 후 텍스트 편집기에서 수동으로 추가하세요.
아니요. 자막 텍스트 내용은 정확히 보존됩니다. 파일 형식만 바뀝니다: 헤더가 추가되고, 타임스탬프 구분자가 쉼표에서 점으로 바뀌며, 항목 번호가 제거됩니다. 줄바꿈, 특수문자, 모든 텍스트는 동일하게 유지됩니다.