WebVTT
웹의 자막 형식입니다. 브라우저가 HTML <track>을 통해 보여주는 형식이기도 합니다. SubRip의 블록에 헤더를 더하고, 밀리초 앞에 마침표를 쓰며, 스타일, 위치, 화자를 담을 자리가 있습니다.
한눈에 보기
| 확장자 | .vtt |
|---|---|
| 미디어 타입 | text/vtt |
| 사양 | W3C, WebVTT: The Web Video Text Tracks Format, 후보 권고안 |
| 시간 정밀도 | 밀리초 |
| 텍스트 인코딩 | 항상 UTF-8입니다. 사양이 이를 요구합니다. Subtitld는 다른 인코딩도 읽습니다. |
| 스타일 | 기울임꼴, 굵게, 밑줄 태그. 색상은 클래스와 CSS(::cue)로 지정합니다. 취소선은 없습니다. |
| 위치 | 큐 설정(line, position, align, size, vertical)과 영역 |
| 화자 | 음성 태그: <v Thom> |
| 컨테이너 | Matroska에서는 S_TEXT/WEBVTT; MP4에서는 wvtt(ISO/IEC 14496-30); HLS와 DASH 스트림 |
큐의 구조
파일은 헤더와 그 뒤의 큐로 이루어집니다. 각 큐는 SubRip과 비슷한 블록이며, 선택 사항인 두 부분이 있습니다.
WEBVTT intro 00:00:23.000 --> 00:00:24.500 line:0 <v Celia>You're a jerk, <i>Thom</i>.
- 1 · 헤더
WEBVTT를 단독으로 쓰거나, 공백과 제목을 붙이고, 그다음 빈 줄을 둡니다. 없으면 브라우저가 파일 전체를 거부합니다. - 2 · 식별자
선택 사항입니다. 큐의 이름을 한 줄에 씁니다. SubRip처럼 숫자이거나 단어일 수 있습니다.
- 3 · 시간
시작 시간, 화살표
-->, 끝 시간. 밀리초 앞에는 마침표를 씁니다. - 4 · 설정
선택 사항입니다. 끝 시간 뒤에 써서, 큐를 화면의 어디에 보여줄지 정합니다.
- 5 · 텍스트
스타일과 음성을 위한 태그가 들어간 텍스트 줄입니다. 빈 줄이 큐를 끝내므로, 큐 안에는 빈 줄이 없습니다.
타임코드
시(hour)는 생략할 수 있습니다. 00:27.000도 같은 시간이며, 1시간 미만인 많은 파일이 이렇게 쓰입니다. 밀리초 앞의 쉼표는 WebVTT가 아니라 SubRip의 습관입니다. Subtitld는 그래도 읽습니다.
큐 외의 블록
| 블록 | 담는 내용 |
|---|---|
NOTE |
사람을 위한 주석. 플레이어는 건너뜁니다. |
STYLE |
::cue를 통한 큐의 CSS. 첫 번째 큐 앞에 옵니다. |
REGION |
큐가 스크롤되어 들어올 수 있는, 이름이 붙은 화면 영역. |
큐 텍스트
| 태그 | 효과 |
|---|---|
<i>…</i>, <b>…</b>, <u>…</u> |
기울임꼴, 굵게, 밑줄 |
<c.yellow>…</c> |
클래스. CSS(또는 WebVTT의 색상 클래스)로 색을 입힐 수 있습니다 |
<v Thom>… |
음성: 누가 말하는지. 닫는 태그는 선택 사항입니다. |
<lang pt>…</lang> |
텍스트 일부의 언어 |
<ruby>漢<rt>kan</rt></ruby> |
텍스트 위의 읽기 표기, 일본어와 중국어용 |
<00:00:28.500> |
큐 안의 타임스탬프, 가라오케용 |
& < > |
앰퍼샌드, <, >, 줄바꿈 없는 공백. 그렇지 않으면 마크업으로 읽힙니다 |
색상
CSS 없이도 색이 정해지는 클래스는 여덟 가지입니다: white, lime, cyan, red, yellow, magenta, blue, black이며, 같은 여덟 가지에 bg_를 붙이면 배경색이 됩니다. 그 밖의 색상에는 직접 만든 클래스와 STYLE 블록이 필요합니다:
STYLE
::cue(.gold) { color: #ffd700; }
00:00:30.800 --> 00:00:34.000
<c.gold>Why don't you just admit that</c>
모든 플레이어가 STYLE 블록을 읽는 것은 아닙니다. WebVTT의 색상 클래스가 더 안전한 선택입니다. Subtitld는 색상이 여덟 가지 중 하나일 때 항상 이 클래스를 씁니다.
큐 설정
| 설정 | 역할 |
|---|---|
line:0 |
화면의 줄: 숫자는 위에서부터 세고(음수는 아래에서부터), 퍼센트는 위쪽 가장자리에서 잽니다 |
position:10% |
큐 상자가 화면 가로에서 놓이는 위치 |
align:start |
상자 안의 텍스트 정렬: start, center, end, left, right |
size:50% |
상자의 너비 |
vertical:rl |
세로쓰기, 오른쪽에서 왼쪽 또는 왼쪽에서 오른쪽 |
region:fred |
큐를 REGION 안에 표시 |
Subtitld는 line, position, align을 화면에서 자막이 놓이는 위치로 읽습니다. 이는 SubRip의 {\an1}부터 {\an9}까지와 같은 아홉 위치이며, 저장할 때도 같은 방식으로 씁니다. 위쪽은 line:0, 가운데는 line:50%,center, 양쪽 옆은 position:10% align:start와 position:90% align:end입니다.
Subtitld의 WebVTT
- 모든 자막의 텍스트와 줄바꿈
- 기울임꼴, 굵게, 밑줄, 색상
- 화면에서의 위치
- 음성 태그로 된 화자
- 시작과 끝 시간, 밀리초 단위, 순서대로
- 취소선: WebVTT에는 이를 위한 태그가 없습니다
- 화자의 얼굴과 색상
- 원문 옆의 번역(번역이 원문을 대신하거나 아래에 놓일 수 있습니다)
- 더빙과 메타데이터
.usfx 프로젝트로 저장하면 이것들을 보관할 수 있습니다.
WebVTT 파일 열기
Subtitld는 시간 줄을 기준으로 각 큐를 찾고, 다음을 읽습니다:
- 헤더,
NOTE,STYLE,REGION블록은 자막이 아니라 본래의 역할로, 큐 식별자는 이름으로 읽습니다; - 시가 있거나 없는 시간, 마침표나 쉼표를 쓴 시간;
- 음성은 자막의 화자로, 더빙에 바로 쓸 수 있도록 읽습니다;
- WebVTT의 색상 클래스와,
STYLE블록이 다른 클래스에 준 색상; - 화면에서의 위치로서의
line,position,align; - 어떤 인코딩이든, 다만 WebVTT는 UTF-8을 요구합니다.
Subtitld는 둘 곳이 없는 것은 빼 둡니다: 영역, 큐의 크기, 세로쓰기, 루비의 읽기 표기, 가라오케 타임스탬프. 텍스트 자체는 남습니다.
WebVTT 내보내기
Export 다음 Subtitles와 VTT를 선택하면 다음 옵션을 제공합니다:
- Text원문, 번역, 또는 둘 다(번역은 아래에 놓입니다).
- Speaker names제외하거나, 텍스트 앞에(Thom: …) 쓰거나, WebVTT 방식인 음성 태그(
<v Thom>)로 씁니다. - Formatting유지하거나 제거합니다.
- Shift times모든 자막을 같은 값만큼 앞이나 뒤로 옮깁니다.
파일은 WebVTT가 요구하는 대로 항상 UTF-8입니다. WEBVTT로 시작하고, 큐는 시작 시간 순으로 이어지며, 모든 시간에는 시가 붙습니다. 마크업으로 읽힐 문자는 엔티티로 쓰이고, 빈 자막은 제외됩니다.
웹 페이지에서
<video controls src="tears-of-steel.mp4">
<track kind="subtitles" src="tears-of-steel.en.vtt"
srclang="en" label="English" default>
</video>
파일은 text/vtt로 제공하세요. 다른 도메인에서 가져온다면, 비디오에는 crossorigin이 필요하고 서버에는 Access-Control-Allow-Origin 헤더가 필요합니다. 그렇지 않으면 브라우저가 트랙을 불러오지 않습니다.
WebVTT인가 SubRip인가?
플레이어, 편집기, 업로드에는 SubRip을, 웹의 비디오에는 WebVTT를 쓰세요. SubRip 페이지에서 두 형식을 나란히 비교합니다.
상식
WHATWG에서 HTML5의 새 <track> 요소를 위해 WebSRT라는 이름으로 초안이 만들어졌습니다. SubRip을 바탕으로 했으며, 나중에 WebVTT라는 이름을 얻었습니다.
모든 파일의 맨 앞에 있는 여섯 글자입니다. 브라우저가 이것을 찾지 못하면 트랙 전체를 거부합니다.
별도의 CSS 없이 플레이어가 아는 색상: 흰색, 라임, 시안, 빨강, 노랑, 마젠타, 파랑, 검정. 텍스트와 배경 모두에 쓸 수 있습니다.
관련 형식
Subtitld에서 동영상과 함께 열고, 파형에서 시간을 다시 맞춰 보세요.