Structurele controle van ondertitels
Of plak ondertiteltekst
Opties
Milliseconden leeg scherm die tussen het einde van een blok en het begin van het volgende zijn toegestaan. Het lege stuk wordt gemeten vanaf het verst bereikte einde tot nu toe, niet vanaf het direct voorafgaande blok, zodat een lang blok onder meerdere korte geen gat verzint dat nooit op het scherm was. Wat het getal doet, hangt af van de pagina: gaten dichten sluit alles wat breder is (0 is de gebruikelijke waarde en betekent dat de twee elkaar precies raken), terwijl een controlepagina elke bredere strook opsomt en het bestand met rust laat. Alles op of onder het getal blijft hoe dan ook ongemoeid.
Een duur — 1000, 1s, 1.5s en 00:00:01,000 werken allemaal. Dit is de grens tussen een ondertitel die lang genoeg blijft om gelezen te worden en een die voorbij flitst. Wat er aan de verkeerde kant gebeurt, hangt af van de pagina: gaten dichten houdt het korte blok langer in beeld en haalt de extra tijd uit het volgende gat, zodat geen enkel blok ooit de woorden van het volgende bedekt (het laatste blok in het bestand heeft niets erna en wordt gewoon verlengd), terwijl een controlepagina elk blok onder de grens opsomt en het bestand onaangeroerd laat.
Eén vak, twee keuzes, en elk heeft zijn eigen pagina. Een blok zonder enige tekst is een ondertitel die de tijdlijn bezet terwijl hij niets toont — er is geen lezing van een bestand waarin dat juist is, dus markeert het rapport het als fout. Een blok zonder letters is een regel die iets bevat maar geen woorden: muzieknoten voor een lied, een kaal getal, drie streepjes. Ondertiteling voor doven en slechthorenden gebruikt die met opzet, dus markeert het rapport ze om naar te kijken in plaats van als fout, en de gemeten kolom toont de tekens die er echt staan.
In welke beeldsnelheid de tijden worden geteld. Op de formaatpagina’s is dit wat MicroDVD nodig heeft, want het slaat tijden op als framenummers. Op de beeldsnelheidspagina’s is het de snelheid waartegen het bestand getimed is — de versie waarvoor de ondertitels gemaakt zijn — en het tweede vak op de pagina neemt de snelheid van de video die je gaat gebruiken. 23,976, 24, 25, 29,97, 30, 50, 59,94 en 60 zijn de gebruikelijke. Een verkeerde waarde verschuift de hele tijdlijn, en op de beeldsnelheidspagina’s verschuift ze die met een verhouding in plaats van met een vast bedrag.
Deze pagina gebruik je als je nog niet weet wat er mis is met een bestand. Ze laat een ondertitelbestand in één ronde door de zes structurele controles lopen — overlappende blokken, gaten, lege blokken, blokken zonder woorden, starttijden die teruglopen en een duur onder de grens die jij instelt — en levert één rapport op met per controle een sectie. Elke sectie wordt afgedrukt, ook als er niets is gevonden. Dat is het punt: een rapport dat alleen problemen noemt, laat je niet zien of een controle schoon terugkwam of nooit heeft gedraaid.
Elke controle houdt haar eigen woordenschat. Overlap wordt in gedeelde milliseconden gemeten, een gat in lege milliseconden, de duur tegen de grens die je zelf zet, en de twee volgordecontroles verschijnen als bevindingen op documentniveau. Een blok dat gesorteerd of gerepareerd moest worden, laat namelijk geen spoor achter in het bestand waar een positie naar kan wijzen. De aantallen tellen niet op tot het aantal dingen dat mis is, en dat is de bedoeling: één blok kan tegelijk te kort, leeg en overlappend zijn, en elk van die drie wordt gemeld door de controle die het kan beschrijven. Het rapport geeft de vorm van de problemen, niet een totaal.
De kop hoort bij het antwoord. Hij noemt het bestand, het formaat waarin het is gelezen, hoeveel blokken het bevat, hoeveel controles er liepen en alles wat de lezer onderweg moest repareren. Die reparaties zijn de reden dat een volgordeprobleem of een duur van nul zonder bloknummer in een sectie verschijnt: het bewijs is het aantal reparaties, niet een blok in het bestand. Let op één verschil met de pagina over te lange blokken: de duurcontrole meet hier alleen de onderkant, dus blokken korter dan de ingestelde minimumduur. Een maximumduur heeft een eigen pagina. Gebruik daarna de afzonderlijke pagina’s voor wat deze scan oplevert; elk daarvan legt één gebrek in detail uit en biedt de reparatie die erbij past.
Voorbeelden
Een bestand met verschillende soorten problemen
Ondertitels
1
00:00:01,000 --> 00:00:03,000
Where were you?
2
00:00:03,500 --> 00:00:04,000
3
00:00:04,500 --> 00:00:09,000
I was working late.
4
00:00:09,300 --> 00:00:12,000
Until when?
Wat het rapport vindt
Checks run 6
Cues 4
Overlapping cues — 1 found
Gaps between cues — 2 found
Cue duration outside the limit — 1 found
Cues with no words — 1 found
Cues out of sequence — Nothing found
Cues ending before they start — Nothing found
Vier blokken, vier gebreken en twee van de zes secties leeg. De lege sectie over de volgorde is een resultaat en geen hiaat in het rapport — zo weet je dat het bestand daarop is gecontroleerd en schoon terugkwam. Het lege blok en het korte blok zijn hetzelfde blok, twee keer geteld door twee regels die het anders beschrijven.
Een schoon bestand
Ondertitels
1
00:00:01,000 --> 00:00:03,000
Where were you?
2
00:00:03,000 --> 00:00:05,000
I was working late.
Wat het rapport vindt
Checks run 6
Cues 2
Overlapping cues — Nothing found
Gaps between cues — Nothing found
Cue duration outside the limit — Nothing found
Cues with no words — Nothing found
Cues out of sequence — Nothing found
Cues ending before they start — Nothing found
Zes controles, zes lege secties. Dit is het antwoord dat de pagina meestal hoort te geven, en het is de enige manier om te zien dat „niets gevonden” per controle wordt afgedrukt en niet één keer voor het hele bestand — één samenvattende regel zou de lezer laten raden welke vijf controles zijn overgeslagen.
Een bestand dat de lezer moest repareren
Ondertitels
1
00:00:09,000 --> 00:00:11,000
I was working late.
2
00:00:01,000 --> 00:00:02,000
Where were you?
3
00:00:05,000 --> 00:00:05,000
Until when?
Wat het rapport vindt
Lost while reading Timing × 1, Cue order × 2
Cues out of sequence — 1 found
Cues ending before they start — 1 found
Gaps between cues — 1 found
Cue duration outside the limit — 1 found
Drie blokken en drie problemen, waarvan de lezer er een moest oplossen voordat er iets gecontroleerd kon worden. De kop legt beide reparaties vast, en de milliseconde die voor het laatste blok is verzonnen, komt in de duursectie terug als een getal dat tegen de minimumduur van één seconde wordt gelegd — hetzelfde gebrek, vanuit twee richtingen in hetzelfde rapport beschreven.
Veelgestelde vragen
Welke controles voert deze pagina uit op een ondertitelbestand?
Zes: overlappende blokken, gaten tussen blokken langer dan jouw gatgrens, lege blokken, blokken zonder woorden, blokken waarvan de starttijden teruglopen en blokken waarvan de duur onder de minimumduur valt. Elke controle heeft een eigen sectie in het rapport, altijd in dezelfde volgorde, en elke sectie verschijnt ook als ze niets vond.
Waarom krijgt een controle zonder bevinding toch een eigen sectie?
Omdat „niets gevonden” en „niet gecontroleerd” twee verschillende antwoorden zijn, en een rapport dat alleen problemen opsomt laat je die niet uit elkaar houden. Zes secties betekenen dat er zes controles liepen; een lege sectie zegt dat die controle keek en niets vond, en dat is een resultaat waarop je kunt bouwen in plaats van een gebrek aan informatie.
Tellen de aantallen per sectie op tot het aantal problemen in mijn bestand?
Nee, en dat is ook niet de bedoeling. Eén blok kan tegelijk te kort, leeg en overlappend zijn, en elk daarvan wordt gemeld door de regel die het kan beschrijven — hetzelfde blok kan dus in drie secties staan. Tel niets op; lees de secties langs en neem elke sectie als een eigen antwoord.
Welke grenzen moet ik instellen voordat ik de scan start?
Twee: de gatgrens, de langste pauze die je accepteert, en de minimumduur, de kortste tijd dat een blok op het scherm mag staan. De maximumduur wordt op deze pagina niet gemeten; die heeft een eigen pagina. Beide grenzen worden bij elke bevinding afgedrukt, zodat het rapport zegt waartegen het heeft gemeten in plaats van dat je het zelf moet onthouden.
Waarom hebben sommige bevindingen geen bloknummer of tijdcode?
Omdat het bevindingen op documentniveau zijn. Een volgordeprobleem en een gerepareerde tijdcode van nul ontstaan allebei terwijl het bestand wordt gelezen — de blokken zijn al gesorteerd of gerepareerd voordat er iets gecontroleerd kan worden — dus het aantal reparaties is het bewijs, en er is geen positie in het bestand meer die eerlijk als de schuldige kan worden aangewezen.
Moet ik deze pagina gebruiken in plaats van de afzonderlijke controles?
Gebruik haar om te ontdekken wat er mis is, en daarna de afzonderlijke pagina’s om iets te doen. Elk daarvan legt één gebrek volledig uit, stelt een eigen grens in en verwijst naar de bewerking die dat probleem oplost. De scan is het startpunt en geen vervanging van de zes pagina’s erachter.
Welke ondertitelformaten kunnen worden gescand?
De tien formaten die zowel een begin- als een eindtijd opslaan: SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON en CSV. LRC en platte tekst worden niet geaccepteerd, omdat vier van de zes controles een eindtijd nodig hebben en de andere twee een blokmodel. Een scan van die formaten zou alleen lege secties kunnen opleveren, en dat leest als een schone verklaring.
Kan ik een hele serie in één run scannen?
Ja. Je kunt zoveel bestanden in de wachtrij zetten als je wilt; ze worden na elkaar gescand, elk met een eigen rapport, en de rapporten komen samen als zip binnen. De voortgang is per bestand zichtbaar, de run kan halverwege stoppen en geen enkel bestand verlaat op enig moment de browser.