WebVTT

MởLưuVăn bản thuầnWeb

Định dạng phụ đề của web: thứ mà trình duyệt hiển thị qua <track> của HTML. Đó là các khối của SubRip, với một phần đầu, dấu chấm trước mili giây, và chỗ dành cho kiểu dáng, vị trí và người nói.

Tổng quan

Phần mở rộng.vtt
Loại phương tiệntext/vtt
Đặc tảW3C, WebVTT: The Web Video Text Tracks Format, ở trạng thái Candidate Recommendation
Độ chính xác thời gianMili giây
Mã hóa văn bảnUTF-8, luôn luôn: đặc tả yêu cầu như vậy. Subtitld vẫn đọc được các bảng mã khác.
Kiểu chữCác thẻ nghiêng, đậm và gạch chân; màu qua lớp (class) và CSS (::cue). Không có gạch ngang.
Vị tríThiết lập cue (line, position, align, size, vertical) và các vùng (region)
Người nóiThẻ giọng nói: <v Thom>
Trong containerMatroska dạng S_TEXT/WEBVTT; MP4 dạng wvtt (ISO/IEC 14496-30); luồng HLS và DASH

Cấu trúc của một cue

Một tệp gồm một phần đầu, rồi đến các cue. Mỗi cue là một khối giống của SubRip, với hai phần tùy chọn.

WEBVTT
 
intro
00:00:23.000 --> 00:00:24.500 line:0
<v Celia>You're a jerk,
<i>Thom</i>.
 
  1. 1 · Phần đầu

    WEBVTT, đứng một mình hoặc theo sau là một khoảng trắng và tiêu đề, rồi một dòng trống. Thiếu nó, trình duyệt sẽ từ chối toàn bộ tệp.

  2. 2 · Định danh

    Tùy chọn. Tên của cue, nằm trên một dòng riêng: một số như trong SubRip, hoặc một từ.

  3. 3 · Thời gian

    Thời điểm bắt đầu, mũi tên -->, thời điểm kết thúc. Có dấu chấm trước mili giây.

  4. 4 · Thiết lập

    Tùy chọn. Nơi hiển thị cue, đặt sau thời điểm kết thúc.

  5. 5 · Văn bản

    Các dòng văn bản, với thẻ cho kiểu chữ và giọng nói. Một dòng trống kết thúc cue, nên không có dòng trống nào bên trong cue.

Mã thời gian

Có thể bỏ giờ. 00:27.000 là cùng một thời điểm, và nhiều tệp dưới một giờ được viết như vậy. Dấu phẩy trước mili giây là thói quen của SubRip, không phải của WebVTT; Subtitld vẫn đọc được.

Các khối ngoài cue

Khối Nội dung
NOTE Chú thích, dành cho con người. Trình phát bỏ qua.
STYLE CSS cho các cue, qua ::cue. Đặt trước cue đầu tiên.
REGION Một vùng có tên trên màn hình mà các cue có thể cuộn vào.

Văn bản của cue

Thẻ Tác dụng
<i>…</i>, <b>…</b>, <u>…</u> Nghiêng, đậm, gạch chân
<c.yellow>…</c> Một lớp, mà CSS (hoặc các lớp màu có sẵn của WebVTT) có thể tô màu
<v Thom>… Giọng nói: ai đang nói. Đóng thẻ là tùy chọn.
<lang pt>…</lang> Ngôn ngữ của một đoạn văn bản
<ruby>漢<rt>kan</rt></ruby> Cách đọc đặt phía trên chữ, dùng cho tiếng Nhật và tiếng Trung
<00:00:28.500> Mốc thời gian bên trong cue, dùng cho karaoke
&amp; &lt; &gt; &nbsp; Dấu và, <, > và khoảng trắng không ngắt, vốn sẽ bị đọc như thẻ

Màu sắc

Tám lớp được tô màu mà không cần CSS nào: white, lime, cyan, red, yellow, magenta, blue và black, cùng tám lớp đó với bg_ cho nền. Màu khác cần một lớp riêng và một khối STYLE:

STYLE
::cue(.gold) { color: #ffd700; }

00:00:30.800 --> 00:00:34.000
<c.gold>Why don't you just admit that</c>

Không phải trình phát nào cũng đọc khối STYLE; các lớp màu có sẵn của WebVTT là lựa chọn an toàn hơn. Subtitld dùng chúng bất cứ khi nào màu thuộc tám màu đó.

Thiết lập cue

Thiết lập Tác dụng
line:0 Dòng trên màn hình: số đếm từ trên xuống (số âm từ dưới lên), phần trăm tính từ mép trên
position:10% Vị trí hộp của cue theo chiều ngang màn hình
align:start Căn lề văn bản trong hộp: start, center, end, left, right
size:50% Chiều rộng của hộp
vertical:rl Chữ dọc, từ phải sang trái hoặc từ trái sang phải
region:fred Hiển thị cue trong một REGION

Subtitld đọc line, position và align như vị trí của phụ đề trên màn hình, tức là chín vị trí giống {\an1} đến {\an9} của SubRip, và ghi chúng lại: line:0 cho phía trên, line:50%,center cho giữa, position:10% align:start và position:90% align:end cho hai bên.

WebVTT trong Subtitld

Được giữ trong .vtt
  • Văn bản và các ngắt dòng của mọi phụ đề
  • Nghiêng, đậm, gạch chân và màu
  • Vị trí trên màn hình
  • Người nói, dưới dạng thẻ giọng nói
  • Thời điểm bắt đầu và kết thúc, đến mili giây, theo thứ tự
Không có chỗ để lưu
  • Gạch ngang: WebVTT không có thẻ cho nó
  • Khuôn mặt và màu của người nói
  • Bản dịch đặt cạnh bản gốc (một bản dịch có thể thay thế, hoặc nằm bên dưới)
  • Lồng tiếng và siêu dữ liệu

Hãy lưu một dự án .usfx để giữ lại chúng.

Mở một tệp WebVTT

Subtitld tìm từng cue qua dòng thời gian của nó và đọc:

  • phần đầu, và các khối NOTE, STYLE và REGION đúng với bản chất của chúng, không coi là phụ đề, còn định danh cue thì coi là tên;
  • thời gian có hoặc không có giờ, có dấu chấm hoặc dấu phẩy;
  • giọng nói như người nói của phụ đề, sẵn sàng cho lồng tiếng;
  • các lớp màu của WebVTT, và màu mà một khối STYLE gán cho các lớp khác;
  • line, position và align như vị trí trên màn hình;
  • bảng mã bất kỳ, dù WebVTT yêu cầu UTF-8.

Nó bỏ đi những gì không có chỗ để lưu: vùng, kích thước cue, chữ dọc, cách đọc của ruby và mốc thời gian karaoke. Văn bản thì vẫn được giữ.

Xuất WebVTT

Hộp thoại xuất của Subtitld với VTT được chọn và người nói được ghi dưới dạng thẻ giọng nói

Xuất, rồi Phụ đề và chọn VTT, sẽ có các tùy chọn:

  • Văn bảnBản gốc, một bản dịch, hoặc cả hai, với bản dịch nằm bên dưới.
  • Tên người nóiBỏ đi, đặt trước văn bản (Thom: …), hoặc dưới dạng thẻ giọng nói (<v Thom>), cách riêng của WebVTT.
  • Định dạngGiữ lại, hoặc bỏ đi.
  • Dịch thời gianMọi phụ đề sớm hơn hoặc muộn hơn cùng một khoảng.

Tệp luôn là UTF-8, như WebVTT yêu cầu: WEBVTT, rồi các cue theo thứ tự thời điểm bắt đầu, mỗi thời điểm có đủ giờ. Các ký tự có thể bị đọc như mã đánh dấu được ghi dưới dạng thực thể, và phụ đề rỗng bị bỏ đi.

Trên trang web

<video controls src="tears-of-steel.mp4">
  <track kind="subtitles" src="tears-of-steel.en.vtt"
         srclang="en" label="English" default>
</video>

Phục vụ tệp với kiểu text/vtt. Từ một tên miền khác, video cần crossorigin và máy chủ cần tiêu đề Access-Control-Allow-Origin, nếu không trình duyệt sẽ không tải track.

WebVTT hay SubRip?

SubRip cho trình phát, trình soạn và tải lên; WebVTT cho video trên web. Trang SubRip đặt hai định dạng cạnh nhau.

Điều thú vị

2010

Nó bắt đầu với tên WebSRT, được soạn thảo tại WHATWG cho phần tử <track> mới của HTML5 và xây dựng trên SubRip, trước khi nhận tên WebVTT.

WEBVTT

Sáu chữ cái ở đầu mỗi tệp. Trình duyệt không tìm thấy chúng sẽ từ chối toàn bộ track.

8

Số màu mà trình phát biết mà không cần CSS: white, lime, cyan, red, yellow, magenta, blue và black, dùng cho chữ và cho nền của chữ.

Định dạng liên quan

Bạn có tệp .vtt cần sửa?

Mở tệp trong Subtitld cùng video và canh lại thời gian trên dạng sóng.

Tải Subtitld