블로그 목록

SRT와 WebVTT 자막 파일의 차이와 웹 영상에 맞게 고르는 방법

일반 동영상 플레이어·편집기·업로드 서비스와 폭넓게 주고받을 때는 SRT가 편하고, HTML video의 track 요소에 직접 연결할 때는 UTF-8 WebVTT를 선택하세요. 웹용 변환에서는 첫 줄 WEBVTT, 마침표 밀리초, 올바른 MIME 유형과 CORS까지 확인해야 합니다.

두 형식은 모두 시작·종료 시간과 자막 문장을 담지만 문법과 실행 환경이 다릅니다. 확장자만 바꾸면 타임코드 구분자와 필수 헤더가 그대로 남아 브라우저가 파일을 거부할 수 있습니다.

먼저 보는 핵심 요약

  • SRT는 널리 쓰이는 단순 자막 형식이고 WebVTT는 웹 미디어 자막을 위해 정의된 형식입니다.
  • WebVTT는 WEBVTT 헤더와 마침표 밀리초를 사용하며 큐 설정과 제한된 마크업을 지원합니다.
  • 형식 변환 후에는 첫 큐·중간 큐·마지막 큐의 싱크와 웹 서버 응답을 실제 플레이어에서 검사합니다.

SRT와 WebVTT의 기본 문법은 어떻게 다른가요?

SRT 큐는 보통 순번, 쉼표를 쓴 시작·종료 시간, 본문 순서로 적습니다. WebVTT 파일은 첫 줄에 WEBVTT가 필요하고 밀리초 구분자로 마침표를 씁니다. WebVTT 큐 식별자는 선택 사항이며 시간 뒤에 위치·정렬 같은 큐 설정을 붙일 수 있어 단순 확장자 변경만으로는 올바른 변환이 되지 않습니다.

웹 영상에는 왜 WebVTT를 선택해야 하나요?

HTML 표준의 track 요소는 WebVTT 자막 리소스를 사용하는 흐름으로 정의되어 있습니다. kind, srclang, label을 지정하면 브라우저 자막 메뉴에서 언어와 용도를 표시할 수 있습니다. SRT를 지원하는 플레이어나 서비스도 많지만 브라우저 기본 video에 직접 연결할 파일은 WebVTT로 준비하는 것이 호환성 판단을 단순하게 만듭니다.

스타일과 위치 정보는 변환할 때 무엇이 남나요?

기본 대사와 시간은 비교적 직접 옮길 수 있지만 프로그램마다 허용한 SRT 태그가 달라 색상·글꼴 표현이 손실될 수 있습니다. WebVTT의 cue 설정과 허용 마크업도 모든 플레이어가 똑같이 표현한다고 가정하면 안 됩니다. 전달 목적이 접근성 자막이라면 장식보다 정확한 문장, 화자 구분과 타이밍을 우선하세요.

문법이 맞는데 웹에서 자막이 안 나오는 이유

파일은 UTF-8로 저장하고 서버가 자막 리소스를 올바른 content type으로 응답하는지 확인해야 합니다. 영상과 자막의 출처가 다르면 교차 출처 요청 허용도 필요할 수 있습니다. 개발자 도구의 네트워크 탭에서 404, 차단된 CORS, 잘못된 MIME 응답을 먼저 보면 문법 문제와 배포 문제를 구분할 수 있습니다.

단계별로 확인하는 방법

  1. 사용 환경 고르기

    편집·업로드·로컬 재생이면 SRT 지원 여부를, HTML video 연결이면 WebVTT 사용 조건을 확인합니다.

  2. 자막 문법 변환하기

    WEBVTT 헤더와 타임코드 구분자를 바꾸고 빈 줄, 큐 순서와 종료 시간이 올바른지 검사합니다.

  3. UTF-8과 서버 응답 맞추기

    파일을 UTF-8로 저장하고 웹 배포 시 MIME 유형, URL, CORS 응답을 확인합니다.

  4. 영상에서 세 구간 검수하기

    첫 부분·중간·마지막 자막을 재생해 싱크, 줄바꿈, 화자 표시와 누락된 큐가 없는지 봅니다.

판단 기준을 한눈에 비교하기

확인 항목판단 기준
파일 시작SRT는 보통 큐 순번으로 시작하고 WebVTT는 WEBVTT 헤더가 필요합니다.
밀리초 표기SRT는 00:00:01,500처럼 쉼표를, WebVTT는 00:00:01.500처럼 마침표를 씁니다.
주 사용처SRT는 편집기·업로드·로컬 플레이어에 널리 쓰이고 WebVTT는 웹 track 연결에 적합합니다.
추가 표현WebVTT는 큐 위치·정렬 설정과 표준화된 자막 텍스트 문법을 제공합니다.

실행 전 체크리스트

  • WebVTT 파일 첫 줄이 WEBVTT로 시작하나요?
  • 모든 시작 시간이 종료 시간보다 앞서고 큐 순서가 맞나요?
  • 한글 파일을 UTF-8로 저장했나요?
  • 실제 웹 플레이어에서 네트워크 응답과 자막 싱크를 확인했나요?

주의할 점

형식 변환은 자막 문장을 번역하거나 영상에 맞게 자동으로 재동기화하지 않습니다. 전체 자막이 일정 시간 밀렸거나 원본 프레임레이트가 바뀐 경우에는 별도의 타임코드 보정이 필요합니다.

함께 보면 좋은 글

자주 묻는 질문

SRT 파일의 확장자만 vtt로 바꾸면 되나요?

안 됩니다. WebVTT 헤더를 추가하고 타임코드의 밀리초 쉼표를 마침표로 바꿔야 합니다. 지원하지 않는 태그와 잘못된 빈 줄도 함께 점검해야 합니다.

WebVTT를 다시 SRT로 바꾸면 스타일이 모두 유지되나요?

기본 문장과 시간은 옮길 수 있지만 WebVTT의 큐 위치, 정렬과 일부 마크업은 SRT에서 같은 방식으로 표현되지 않습니다. 변환 후 중요한 위치와 화자 표시는 직접 확인하세요.

자막 한글이 깨질 때 타임코드도 바꿔야 하나요?

한글 깨짐은 우선 문자 인코딩 문제이므로 UTF-8로 다시 저장해야 합니다. 타임코드 문법은 별도 문제라서 형식에 맞는 쉼표 또는 마침표인지 따로 검사합니다.

브라우저에서 VTT URL은 열리는데 영상에 자막이 안 보이는 이유는 무엇인가요?

track의 src·kind·srclang 설정, 서버의 MIME 응답, 교차 출처 허용과 VTT 파싱 오류를 확인하세요. 개발자 도구 콘솔과 네트워크 탭에서 로드 실패인지 문법 실패인지 먼저 나누면 빠릅니다.

근거와 출처

도구에서 직접 확인하기

설명한 기준을 실제 값에 적용하려면 SRT ↔ WebVTT 자막 변환기에서 작은 샘플부터 확인하세요. 원본과 결과를 나란히 비교한 뒤 실제 사용 환경에 적용하는 순서가 가장 안전합니다.

이 글은 알파카랩스 Utils텍스트 및 문자열 도구와 함께 보는 정보성 가이드입니다. 규격과 외부 서비스 정책은 바뀔 수 있으므로 중요한 결정 전에는 연결된 공식 출처의 최신 내용을 다시 확인하세요.

무료 도구 둘러보기