본문으로 건너뛰기
AZ Tools

SRT ↔ VTT 자막 변환기

SRT(SubRip)·WebVTT 자막 파일 변환 — 입력 형식 자동 감지, 타임스탬프 구두점 수정, 옵션으로 VTT 스타일 태그 제거.

사용법

  1. 자막 텍스트 붙여넣기 또는 .srt/.vtt 파일 드롭. 형식 자동 감지.
  2. 변환 방향 선택. SRT → VTT는 헤더와 . 구분 밀리초 추가; VTT → SRT는 헤더 제거 및 밀리초 쉼표 사용.
  3. 변환된 텍스트 복사 또는 파일 다운로드.

자세한 설명

펼치기

SRT와 WebVTT는 같은 것을 기술합니다. 시작 시각, 종료 시각, 그리고 텍스트로 이뤄진 자막 목록입니다. 차이는 손으로 고치다 보면 쉽게 틀리는 세부에 있습니다. SRT는 밀리초를 쉼표로 구분하고 자막마다 번호를 붙입니다. VTT는 마침표를 쓰고 WEBVTT 줄로 시작하며, 시(時) 항목을 생략할 수 있고 타임스탬프 앞에 이름표를 붙일 수 있습니다. 이 변환기는 붙여 넣은 쪽을 자동으로 판별해 반대쪽을 만들고, 언제나 HH:MM:SS 형태의 완전한 타임스탬프를 출력하므로 가장 엄격한 파서에서도 받아들여집니다.

소수점 이하 초는 읽어 들일 때 정규화됩니다. 00:01:02.5로 적힌 타임스탬프는 5밀리초가 아니라 500밀리초로 해석됩니다. 소수 부분을 정수로 읽지 않고 세 자리로 채우기 때문입니다. 이걸 반대로 처리하면 파일의 모든 자막이 최대 1초까지 조용히 밀리는데, 대사가 엉뚱한 컷에 얹히고 나서야 알아차리게 되는 종류의 오류입니다.

살아남지 못하는 것은 SRT에 자리가 없는 VTT 고유의 요소들입니다. STYLE·NOTE·REGION 블록은 옮겨지지 않고 건너뜁니다. 종료 타임스탬프 뒤에 오는 자막 설정 — line:, align:, position: — 도 버려지므로, 화면에 박힌 글자를 피하려고 일부러 위쪽에 배치한 자막이 아래 가운데로 돌아옵니다. 자막 식별자는 읽기는 하지만 다시 쓰지는 않습니다. 인라인 VTT 마크업은 토글로 유지하거나 제거할 수 있는데, <c.classname>이나 <v Speaker>는 대부분의 SRT 재생기에 아무 의미가 없어서 그대로 두면 화면에 꺾쇠괄호가 글자 그대로 찍히기 때문에 중요합니다.

이 도구 바깥에서 확인해야 할 것이 하나 있습니다. 파일의 인코딩입니다. WebVTT는 반드시 UTF-8이어야 하지만, 돌아다니는 SRT 파일은 Windows-1252나 Shift-JIS, Big5인 경우가 흔합니다. 헤더 어디에도 기록되지 않는 수십 년 묵은 관행입니다. 악센트 문자나 비라틴 문자가 깨져서 들어온다면 그 손상은 변환 이전, 파일을 디코딩하는 시점에 이미 일어난 것이고, VTT로 다시 저장해도 잘못된 문자가 그대로 충실히 보존될 뿐입니다. 모든 처리는 브라우저에서 이뤄지고 결과는 .srt 또는 .vtt 파일로 내려받습니다.

자주 묻는 질문

VTT 스타일링이 SRT 왕복 후 살아남음?

SRT는 공식 스타일링 스펙 없어, 인라인 <c.…> 태그는 옵션 끄면 제거. 일부 플레이어는 <i>/<b> SRT 태그 읽음, 두 형식 공유 → '스타일 보존' 켜면 유지.

왜 VTT는 ., SRT는 ,이 초·밀리초 사이?

타임스탬프 형식에서 유일한 의미 있는 차이 — 00:00:01.000은 VTT, 00:00:01,000은 SRT. 이 도구가 구분자 자동 뒤집기.

재생할수록 자막이 점점 어긋난다. 변환으로 고칠 수 있나?

없다. 점점 벌어지는 어긋남은 서식 문제가 아니라 프레임률 불일치다. 25fps 기준으로 만든 자막을 23.976fps로 변환된 영상에 얹으면 약 4퍼센트씩 밀리는데, 25초마다 1초씩 벌어지는 셈이다. 이건 타임스탬프의 구두점을 바꾸는 게 아니라 시간축을 늘려야 하는 문제다. 반대로 일정하게 어긋나는 것은 단순한 이동이라, 모든 큐에 같은 값을 더하면 된다.

변환했더니 플레이어에 자막이 아예 안 나오는 이유는?

WebVTT가 SRT와 달리 요구하는 두 가지를 확인하라. 첫 줄의 WEBVTT 머리글, 그리고 text/vtt로 제공되는 것이다. 나머지가 완벽해도 둘 중 하나가 없으면 조용히 실패한다. 브라우저는 트랙이 같은 출처이거나 CORS가 허용돼야 한다는 조건도 요구하는데, 영상과 자막이 서로 다른 호스트에 있을 때 자주 걸린다.

관련 도구