WebVTT
Format napisów sieci: to, co przeglądarka pokazuje przez <track> w HTML. Bloki znane z SubRip, z nagłówkiem, kropką przed milisekundami i miejscem na style, pozycje i mówców.
W skrócie
| Rozszerzenie | .vtt |
|---|---|
| Typ mediów | text/vtt |
| Specyfikacja | W3C, WebVTT: The Web Video Text Tracks Format, Candidate Recommendation |
| Dokładność czasu | Milisekundy |
| Kodowanie tekstu | Zawsze UTF-8, bo tak wymaga specyfikacja. Subtitld czyta mimo to inne kodowania. |
| Stylowanie | Znaczniki kursywy, pogrubienia i podkreślenia; kolory przez klasy i CSS (::cue). Brak przekreślenia. |
| Pozycjonowanie | Ustawienia napisu (linia, pozycja, wyrównanie, rozmiar, pionowość) oraz regiony |
| Mówcy | Znaczniki głosu: <v Thom> |
| W kontenerach | Matroska jako S_TEXT/WEBVTT; MP4 jako wvtt (ISO/IEC 14496-30); strumienie HLS i DASH |
Budowa napisu
Plik to nagłówek, a potem napisy. Każdy napis to blok podobny do bloku SubRip, z dwiema opcjonalnymi częściami.
WEBVTT intro 00:00:23.000 --> 00:00:24.500 line:0 <v Celia>You're a jerk, <i>Thom</i>.
- 1 · Nagłówek
WEBVTT, samo lub po spacji i tytule, a potem pusty wiersz. Bez niego przeglądarka odrzuci cały plik. - 2 · Identyfikator
Opcjonalny. Nazwa napisu w osobnym wierszu: numer, jak w SubRip, lub słowo.
- 3 · Czas
Początek, strzałka
-->, koniec. Kropka przed milisekundami. - 4 · Ustawienia
Opcjonalne. Gdzie pokazać napis, po czasie końca.
- 5 · Tekst
Wiersze tekstu ze znacznikami stylu i głosów. Pusty wiersz kończy napis, więc w środku napisu nie może go być.
Znacznik czasu
Godziny można pominąć. 00:27.000 to ten sam czas, a wiele plików poniżej godziny zapisuje właśnie tak. Przecinek przed milisekundami to nawyk SubRip, a nie WebVTT; Subtitld czyta go mimo to.
Bloki inne niż napisy
| Blok | Co zawiera |
|---|---|
NOTE |
Komentarz dla ludzi. Odtwarzacze go pomijają. |
STYLE |
CSS dla napisów, przez ::cue. Przed pierwszym napisem. |
REGION |
Nazwany obszar ekranu, w którym napisy mogą się przewijać. |
Tekst napisu
| Znacznik | Efekt |
|---|---|
<i>…</i>, <b>…</b>, <u>…</u> |
Kursywa, pogrubienie, podkreślenie |
<c.yellow>…</c> |
Klasa, którą CSS (lub wbudowane klasy kolorów WebVTT) może pokolorować |
<v Thom>… |
Głos: kto mówi. Zamknięcie jest opcjonalne. |
<lang pt>…</lang> |
Język fragmentu tekstu |
<ruby>漢<rt>kan</rt></ruby> |
Odczytanie nad tekstem, dla japońskiego i chińskiego |
<00:00:28.500> |
Znacznik czasu wewnątrz napisu, do karaoke |
& < > |
Ampersand, <, > i spacja niełamliwa, które inaczej zostałyby odczytane jako znaczniki |
Kolory
Osiem klas jest kolorowanych bez żadnego CSS: white, lime, cyan, red, yellow, magenta, blue i black, oraz te same osiem z bg_ dla tła. Każdy inny kolor wymaga własnej klasy i bloku STYLE:
STYLE
::cue(.gold) { color: #ffd700; }
00:00:30.800 --> 00:00:34.000
<c.gold>Why don't you just admit that</c>
Nie każdy odtwarzacz czyta bloki STYLE; wbudowane klasy kolorów WebVTT są bezpieczniejszym wyborem. Subtitld używa ich zawsze, gdy kolor jest jednym z ośmiu.
Ustawienia napisu
| Ustawienie | Co robi |
|---|---|
line:0 |
Linia na ekranie: liczba liczy wiersze od góry (ujemna od dołu), procent od górnej krawędzi |
position:10% |
Położenie pola napisu w poprzek ekranu |
align:start |
Wyrównanie tekstu w polu: start, center, end, left, right |
size:50% |
Szerokość pola |
vertical:rl |
Tekst pionowy, od prawej do lewej lub od lewej do prawej |
region:fred |
Pokaż napis w REGION |
Subtitld odczytuje line, position i align jako miejsce napisu na ekranie, w tych samych dziewięciu miejscach co {\an1} do {\an9} w SubRip, i zapisuje je z powrotem: line:0 dla góry, line:50%,center dla środka, position:10% align:start i position:90% align:end dla boków.
WebVTT w Subtitld
- Tekst każdego napisu i podziały wierszy
- Kursywa, pogrubienie, podkreślenie i kolor
- Miejsce na ekranie
- Mówcy jako znaczniki głosu
- Początek i koniec z dokładnością do milisekundy, w kolejności
- Przekreślenie: WebVTT nie ma dla niego znacznika
- Twarze i kolory mówców
- Tłumaczenia obok oryginału (jedno może go zastąpić albo pojawić się pod nim)
- Dubbing i metadane
Zapisz projekt .usfx, aby je zachować.
Otwieranie pliku WebVTT
Subtitld znajduje każdy napis po linii czasu i odczytuje:
- nagłówek oraz bloki
NOTE,STYLEiREGIONjako to, czym są, a nie jako napisy, a identyfikatory napisów jako nazwy; - czasy z godzinami lub bez, z kropką lub przecinkiem;
- głosy jako mówców napisów, gotowych do dubbingu;
- wbudowane klasy kolorów WebVTT oraz kolory, które blok
STYLEprzypisuje innym klasom; line,positionialignjako miejsce na ekranie;- dowolne kodowanie, choć WebVTT wymaga UTF-8.
Pomija to, czego nie ma gdzie umieścić: regiony, rozmiar napisu, tekst pionowy, odczytania ruby i znaczniki czasu karaoke. Sam tekst zostaje.
Eksport WebVTT
Eksportuj, a następnie Napisy i VTT, oferuje:
- TekstOryginał, tłumaczenie lub oba, z tłumaczeniem pod spodem.
- Nazwy mówcówPominięte, przed tekstem (Thom: …) albo jako znaczniki głosu (
<v Thom>), we własnym sposobie WebVTT. - FormatowanieZachowane albo usunięte.
- Przesunięcie czasuKażdy napis wcześniej lub później o tyle samo.
Plik jest zawsze w UTF-8, tak jak wymaga WebVTT: WEBVTT, a potem napisy w kolejności początku, każdy czas z godzinami. Znaki, które wyglądałyby jak znaczniki, są zapisywane jako encje, a puste napisy są pomijane.
Na stronie internetowej
<video controls src="tears-of-steel.mp4">
<track kind="subtitles" src="tears-of-steel.en.vtt"
srclang="en" label="English" default>
</video>
Podawaj plik jako text/vtt. Gdy wideo jest z innej domeny, potrzebuje ono crossorigin, a serwer nagłówka Access-Control-Allow-Origin, inaczej przeglądarka nie załaduje ścieżki.
WebVTT czy SubRip?
SubRip dla odtwarzaczy, edytorów i przesyłania; WebVTT dla wideo w sieci. Strona SubRip zestawia je obok siebie.
Ciekawostki
Zaczynał jako WebSRT, szkic w WHATWG dla nowego elementu <track> w HTML5, zbudowany na SubRip, zanim przyjął nazwę WebVTT.
Sześć liter na samym początku każdego pliku. Przeglądarka, która ich nie znajdzie, odrzuca cały tor.
Kolorów, które odtwarzacz zna bez CSS: white, lime, cyan, red, yellow, magenta, blue i black, zarówno dla tekstu, jak i tła.
Powiązane formaty
Otwórz go w Subtitld razem z wideo i dopasuj czasy na przebiegu fali dźwiękowej.