Gå til hovedindholdet
SubtitleMatrix

Generér et HTML track-element

Eksport og integrationHTML track-element
Eller indsæt underteksttekst

Indstillinger

Undertekster er for seere, der kan høre lyden og har brug for ordene – en oversættelse eller det samme sprog skrevet ud. Closed captions er for seere, der ikke kan høre den, så de bærer også det, lyden fortæller alle andre: musik, en dør, en telefon, der ringer. Den samme fil kan tjene begge formål, hvilket er grunden til, at siden spørger i stedet for at gætte, og værdien kan ikke ændres senere inde fra elementet. Beskrivelser, kapitler og metadata tilbydes ikke: ingen af dem kan fyldes med indholdet af en undertekstfil.

Et kort sprogmærke som en, en-GB eller pt-BR, der navngiver sproget for ordene i underteksterne, ikke sproget i videoen. Et spor, der kalder sig undertekster, skal angive et sprog, så rydning af denne boks falder tilbage til en i stedet for at fjerne attributten – og fordi hver attribut trykkes i resultatet, kan du se tilbagefaldet, før du indsætter noget.

Fri tekst: Engelsk, Engelsk (SDH), Français. Det er den linje, en seer vælger fra, når en side tilbyder mere end ét spor, så skriv den, som dit publikum vil genkende den. Rydning af boksen fjerner attributten helt i stedet for at skrive en tom, hvilket giver navngivningen tilbage til afspilleren; en tom etiket ville sætte en navnløs række i den menu.

Slået til kommer underteksterne frem, så snart videoen afspilles. Et medieelement må kun have ét standardspor, så lad det være slået fra, når siden allerede har et: et andet spor, der hævder at være standarden, får afspillere til at vælge det forkerte, mens det ikke at være standard kun betyder, at seeren selv slår det til.

Hvilken billedhastighed tiderne tælles i. På formatsiderne er det, hvad MicroDVD har brug for, fordi formatet gemmer tider som billednummer. På siderne om billedhastighed er det den hastighed, filen blev timet efter – den version, underteksterne blev lavet til – og sidens anden boks tager hastigheden for den video, du skal bruge dem med. 23,976, 24, 25, 29,97, 30, 50, 59,94 og 60 er de almindelige. Tager man fejl, forskydes hele tidslinjen, og på siderne om billedhastighed forskydes den med et forhold i stedet for et fast beløb.

Denne side sætter dine undertekster ind i et enkelt HTML-element, du kan indsætte på en side. Det, der kommer ud, er én `<track>`-linje med WebVTT indlejret i `src`-attributten, så undertekstteksten følger med markeringen selv – der er ingen anden fil at uploade, ingen sti at få rigtig og ingen måde, hvorpå en afspiller kan ende med at lede efter noget, der ikke findes.

Indlejringen er hele pointen med siden, og grunden er den måde, browsere behandler lokale filer på. Et track hentes frem for at blive tegnet, og en browser nægter at hente det, når siden selv blev åbnet fra en disk, så et `<track src="film.vtt">` på en side, du har gemt på skrivebordet, ikke viser noget som helst: ingen fejl på skærmen, en tom undertekstmenu og én linje i konsollen, som de fleste aldrig åbner. En `data:`-URI hentes aldrig – teksten ligger i attributten – så den virker der. Prisen er størrelse, da hvert mellemrum og hvert linjeskift i WebVTT bliver til tre tegn, og den pris er værd at betale her: elementet findes, for at det kan stå alene.

Attributterne kommer fra felterne på panelet, fordi ingen af dem kan læses ud af din fil. `kind` betyder mest: subtitles er en oversættelse til seere, der ikke kan følge lyden, og captions er den fyldigere version, der også bærer musik og lydeffekter til seere, der ikke kan høre den. En fil fuld af `[dør smækker]` og node­tegn kan være begge dele, og kun du ved, hvilket publikum den blev lavet til – så siden spørger i stedet for at gætte. De tre andre er sproget, teksten står i, navnet i afspillerens undertekstmenu, og om sporet skal åbne af sig selv.

To af felterne opfører sig forskelligt, når du tømmer dem, og forskellen er værd at kende. Tømmer du menunavnet, forsvinder attributten helt, fordi et navn er valgfrit, og ved at udelade det overlader du valget til afspilleren. Det gør sprogfeltet ikke: et spor, der erklærer sig som undertekster, skal angive et sprog, så et tomt felt falder tilbage til `en` frem for at producere et element, der mangler noget, det er forpligtet til at have. Ingen af dem er en lydløs erstatning – outputtet trykker hver attribut, så du kan se, hvad dine felter frembragte.

Undertekstteksten inde i elementet skrives af den samme WebVTT-skriver, som konverteringssiderne bruger, hvilket betyder, at en fil, der kom ind som WebVTT, beholder alt, hvad den bar uden for sine blokke: teksten på `WEBVTT`-linjen, kommentar- og stilblokke og de indstillinger pr. blok, der afgør, hvor en linje står på skærmen. Intet ved din fil ændres, og intet uploades; ordene, tiderne og stilen forlader siden i den stand, de kom ind i.

Eksempler

En SRT-fil med standardfelterne

Input

1
00:00:01,000 --> 00:00:03,000
The room is dark.

2
00:00:04,000 --> 00:00:06,000
Nobody came.

Resultat

<track kind="subtitles" src="data:text/vtt;charset=utf-8,WEBVTT%0A%0A1%0A00%3A00%3A01.000%20--%3E%2000%3A00%3A03.000%0AThe%20room%20is%20dark.%0A%0A2%0A00%3A00%3A04.000%20--%3E%2000%3A00%3A06.000%0ANobody%20came.%0A" srclang="en" label="English" default>

Én linje ud, og hele filen er inde i den: %0A er et linjeskift, og %20 er et mellemrum, så WebVTT'en følger med i src-attributten i stedet for at ligge i en fil ved siden af siden. De fire attributter er de fire felter – sproget teksten står i, den række en seer vælger i afspillerens undertekstmenu, og default, som er det, der får dette spor til at åbne af sig selv. Bloknumrene fra SRT'en bevares som blokidentifikatorer.

En WebVTT-fil går ind som den samme WebVTT

Input

WEBVTT - exported from the editing room

NOTE The first pass was done by hand.

STYLE
::cue { color: #f2f2f2; }

intro
00:00:01.000 --> 00:00:03.000 align:start position:10%
The room is dark.

2
00:00:04.000 --> 00:00:06.000
Nobody came.

Resultat

<track kind="subtitles" src="data:text/vtt;charset=utf-8,WEBVTT%20-%20exported%20from%20the%20editing%20room%0A%0ANOTE%20The%20first%20pass%20was%20done%20by%20hand.%0A%0ASTYLE%0A%3A%3Acue%20%7B%20color%3A%20%23f2f2f2%3B%20%7D%0A%0Aintro%0A00%3A00%3A01.000%20--%3E%2000%3A00%3A03.000%20align%3Astart%20position%3A10%25%0AThe%20room%20is%20dark.%0A%0A2%0A00%3A00%3A04.000%20--%3E%2000%3A00%3A06.000%0ANobody%20came.%0A" srclang="en-GB" label="English (UK)" default>

Alt, hvad en WebVTT-fil bærer uden for sine blokke, overlever: bemærkningen på WEBVTT-linjen, NOTE-blokken, STYLE-blokken, der afgør, hvordan underteksterne ser ud i afspilleren, blokkens navnelinje og indstillingen pr. blok align:start position:10% (%25 deri er et procenttegn, kodet fordi et bart procenttegn ikke er tilladt i en URI). En fil, der kom ind som WebVTT, går ud som den samme WebVTT. De to felter siger en-GB og English (UK), fordi denne kopi blev lavet til et britisk publikum – intet i filen sagde det.

Undertekster til seere, der ikke kan høre

Input

1
00:00:01,000 --> 00:00:03,000
[door slams]
The room is dark.

2
00:00:04,000 --> 00:00:06,000
♪ Nobody came ♪

Resultat

<track kind="captions" src="data:text/vtt;charset=utf-8,WEBVTT%0A%0A1%0A00%3A00%3A01.000%20--%3E%2000%3A00%3A03.000%0A%5Bdoor%20slams%5D%0AThe%20room%20is%20dark.%0A%0A2%0A00%3A00%3A04.000%20--%3E%2000%3A00%3A06.000%0A%E2%99%AA%20Nobody%20came%20%E2%99%AA%0A" srclang="en" label="Tom &amp; &quot;the boss&quot;" default>

Filen er fuld af lydeffekter og musik, hvilket netop er, hvad kind="captions" – undertekster til seere, der ikke kan høre – er til, og feltet er det eneste sted, det kan siges. Separat blev menunavnet skrevet som Tom & "the boss" og kommer ud som Tom &amp; &quot;the boss&quot;: et uescaped citationstegn ville have lukket attributten lige der og gjort resten af navnet til volapykattributter på elementet.

Tre felter tømt eller slået fra

Input

1
00:00:01,000 --> 00:00:03,000
A cold night,
and no heating.

2
00:00:04,000 --> 00:00:06,000
Every night this week?

Resultat

<track kind="subtitles" src="data:text/vtt;charset=utf-8,WEBVTT%0A%0A1%0A00%3A00%3A01.000%20--%3E%2000%3A00%3A03.000%0AA%20cold%20night%2C%0Aand%20no%20heating.%0A%0A2%0A00%3A00%3A04.000%20--%3E%2000%3A00%3A06.000%0AEvery%20night%20this%20week%3F%0A" srclang="en">

Tre felter ændret, tre forskellige resultater, fordi HTML beder om forskellige ting. Menunavnet er helt væk fra elementet – det er valgfrit, og ved at udelade det overlader du beslutningen til afspilleren. Sprogfeltet er tomt og giver stadig srclang="en": et spor, der erklærer sig som undertekster, skal angive et sprog, så der findes ikke et tomt et, og tilbagefaldet er synligt i outputtet. Standardkontakten er slået fra, og den attribut er også væk, så dette spor åbner ikke af sig selv, hvilket er den sikre retning, når en side bærer mere end ét.

Ofte stillede spørgsmål

Har jeg stadig brug for en .vtt-fil ved siden af min side?

Nej, og det er pointen med siden. WebVTT'en skrives ind i src-attributten som en data:-URI, så elementet bærer sine egne undertekster. Du kan indsætte det på en side, sende filen med mail eller flytte den til en anden mappe, og underteksterne vises stadig. Det eneste, du skal passe på, er, at det hele er én attribut: kopierer du kun en del af den lange linje, har du brudt URI'en, og sporet bliver tomt.

Virker det, hvis jeg bare åbner HTML-filen fra min egen computer?

Ja, og netop det tilfælde er grunden til, at siden indlejrer underteksterne. Når en side åbnes fra en disk, nægter browseren at hente en separat track-fil, så et spor, der peger på film.vtt, ville intet vise – ingen synlig fejl, bare en tom undertekstmenu. En data:-URI hentes slet ikke, teksten ligger allerede i attributten, så den virker på samme måde på dit skrivebord som på en server.

Hvorfor er outputtet så meget længere end min undertekstfil?

Fordi hvert tegn, der ikke er et bogstav eller et ciffer, bliver til tre i en URI – et mellemrum er %20, og et linjeskift er %0A. En fil på hundrede kilobyte bliver til et par hundrede. Base64 ville være kortere, omkring en tredjedel over originalen frem for det dobbelte, men resultatet ville være en mur af ulæselige tegn; som det er, kan du kigge på src-attributten og genkende din egen dialog inde i den, hvilket er den ekstra størrelse værd for en fil, du er ved at indsætte på en side og vedligeholde i hånden.

Hvorfor er der ingen label-attribut, efter at jeg tømte feltet?

Fordi et menunavn er valgfrit i HTML, og at udelade det betyder ikke »intet navn« – det betyder, at afspilleren bestemmer, hvad der vises i dens undertekstmenu, hvilket som regel er sproget. At tømme feltet fjerner derfor attributten frem for at skrive en tom en, da label="" ville vise sig som en blank række i den menu. Sæt et navn tilbage når som helst; det er en almindelig streng, og intet andet på siden afhænger af den.

Hvad er forskellen på subtitles og captions her?

Hvem de er til. Subtitles antager, at seeren kan høre lyden og har brug for ordene oversat eller skrevet ud; captions antager, at seeren ikke kan høre den, så de bærer også den information, der når et hørende publikum gennem lyd – musik, døre, en telefon, der ringer. En fil kan tjene begge formål, og den samme tekst står i begge, så siden kan ikke afgøre, hvilken du mener. Det kan heller ikke ændres senere inde i elementet, så vælg den, dit publikum har brug for.

Hvilke af de andre track-typer har I udeladt?

Tre: descriptions, som fortæller billedet for seere, der ikke kan se det; chapters, som er navigation frem for undertekster og har sin egen side her på stedet; og metadata, som ikke vises for nogen. Ingen af de tre kan fyldes med indholdet af en undertekstfil, så at tilbyde dem ville kun lade dig bygge et element, der intet viser. De to, der tilbydes, er de to, en undertekstfil faktisk kan tjene.

Ændres noget i mine undertekster undervejs?

Teksten, tiderne og stilen er uændrede, og en WebVTT-fil beholder sine egne kommentar-, stil- og regionsblokke plus sine indstillinger pr. blok. Det, der ændrer sig, er formen: linjerne skrives om i WebVTT-syntaks, som er det, afspillere læser, så et SRT-komma i 00:00:01,000 bliver et punktum. Ét byte droppes med vilje – en indledende markering, der siger, at filen er UTF-8, fordi data-URI'en selv angiver kodningen, og markeringen ellers ville dukke op som tre fremmede tegn forrest.

Relaterede værktøjer