Ondertitels op frames uitlijnen
Of plak ondertiteltekst
Opties
Elke blokgrens wordt naar het dichtstbijzijnde frame bij deze snelheid verschoven, dus bij 25 fps wordt 00:00:02,010 00:00:02,000 en wordt 00:00:02,030 00:00:02,040. Een grens precies tussen twee frames wordt naar boven afgerond, dus 00:00:02,020 wordt 00:00:02,040. Er wordt niets geschaald: de tijdlijn behoudt haar lengte en de grenzen landen alleen op frames, dus de lengte van elk blok kan tot een half frame beide kanten op veranderen. Dit is niet de opgegeven beeldsnelheid van het bestand — het bepaalt alleen waar de grenzen in de uitvoer terechtkomen.
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 verplaatst elke blokgrens naar het dichtstbijzijnde frame van een beeldsnelheid die je kiest. Ze verandert de snelheid van niets: de tijdas houdt zijn lengte, de blokvolgorde blijft zoals hij was, en wat verandert is alleen waar elke grens ligt — 00:00:02,010 bij 25 frames per seconde wordt 00:00:02,000, en 00:00:02,030 wordt 00:00:02,040. De lengte van elk blok kan daardoor tot een half frame per rand veranderen, en dat is de ruil die deze pagina met opzet maakt.
Het werk dat ze doet, is een beslissing bij de speler weghalen. Ondertitels worden in milliseconden opgeslagen, maar de meeste spelers en brandgereedschappen werken in frames, dus een grens die tussen twee frames valt, moet worden afgerond door wie hem tekent — en verschillende software rondt anders af. De ene speler toont de regel een frame te vroeg, de andere een frame te laat, en hetzelfde bestand staat op twee machines net naast. Eén keer hier vastzetten maakt die beslissing van jou en maakt hem één keer: daarna is elke grens een framegrens en is elke tool die het bestand leest het ermee eens.
Het is geen omzetting van beeldsnelheid. Ondertitels van 23,976 naar 25 omzetten vermenigvuldigt de hele tijdas met een verhouding zodat de blokken nog bij de video passen, en dat is een andere pagina in een andere groep. Deze pagina laat de video er helemaal buiten: klopt het bestand al en wil je alleen de grenzen op frames, dan zet je ze vast; staat het fout tegen de video, dan moet eerst de verhouding veranderen.
Er verschijnen twee velden voor beeldsnelheid omdat ze verschillende vragen beantwoorden. Het ene is de snelheid waarmee het bestand wordt gelezen, die formaten met framenummers zoals MicroDVD nodig hebben om überhaupt begrepen te worden. Het andere is de snelheid waarop wordt vastgezet. Bij een bestand dat zijn eigen snelheid verklaart, zijn dat meestal hetzelfde getal, en ze verwisselen is stil — de uitvoer is nog steeds framenauw, alleen op het verkeerde raster. Alles draait in dit browsertabblad, zonder upload, op SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON en CSV, allemaal hetzelfde.
Voorbeelden
Elke grens landt op een frame
Invoer
1
00:00:02,020 --> 00:00:04,030
Hello there.
2
00:00:07,010 --> 00:00:09,040
Second line.
Uitvoer
1
00:00:02,040 --> 00:00:04,040
Hello there.
2
00:00:07,000 --> 00:00:09,040
Second line.
Bij 25 frames per seconde horen de grenzen op veelvouden van 40 ms. 02,020 ligt precies tussen twee ervan en rondt naar boven af naar 02,040; 04,030 komt omhoog naar 04,040; 07,010 gaat terug naar 07,000. Er is niets geschaald — het tweede blok is nog steeds ongeveer twee seconden lang en het gat tussen de twee is op het frame na onveranderd — maar de eigen lengte van elk blok verschoof een beetje: 2010 ms en 2030 ms werden 2000 ms en 2040 ms.
Een blok dat korter is dan een frame
Invoer
1
00:00:04,000 --> 00:00:04,010
Squeezed.
2
00:00:06,010 --> 00:00:08,010
A normal one.
Uitvoer
2
00:00:06,000 --> 00:00:08,000
A normal one.
Van het blok van 10 ms ronden beide grenzen naar hetzelfde frame, dus vastzetten zou het aan elk uiteinde dezelfde tijd geven — en een blok dat eindigt waar het begint kan niet worden getoond. Het vervalt en wordt geteld in plaats van tot één frame uitgerekt, want een lengte verzinnen zou een ondertitel op het scherm zetten die het bestand nooit vroeg. Bij 25 frames per seconde moet een blok korter dan een half frame zijn om dit te bereiken; het tweede blok is twee seconden lang en gedraagt zich gewoon.
Een gebroken beeldsnelheid laat lengtes niet met rust
Invoer
1
00:00:01,000 --> 00:00:03,000
Hello there.
Uitvoer
1
00:00:01,001 --> 00:00:03,003
Hello there.
23,976 frames per seconde is geen heel aantal milliseconden per frame, dus geen enkele ronde seconde na nul is een framegrens en beide randen bewegen: een blok van 1000 tot 3000 ms komt er als 1001 tot 3003 ms uit, twee milliseconden langer. Elke grens ligt nog steeds op een frame, en dat is wat de pagina belooft, maar de ronde getallen waarmee de bron was geschreven zijn weg. Dit is de moeite waard te zien voordat je een bestand op 23,976 of 29,97 vastzet en verwacht dat de tijden onveranderd terugkomen.
Veelgestelde vragen
Wat doet vastzetten op frames dat een omzetting van beeldsnelheid niet doet?
Omzetten verandert hoe lang de tijdas is; vastzetten verandert alleen waar de grenzen erop vallen. Ondertitels van 24 naar 25 frames per seconde omzetten vermenigvuldigt elke tijdstempel met 0,96 zodat ze nog bij de video passen, en een blok van twee seconden wordt 1,92. Vastzetten laat die twee seconden twee seconden en verplaatst de randen naar het dichtstbijzijnde frame, met minder dan een half frame verschil per rand.
Laat vastzetten mijn ondertitels aansluiten bij een video met een andere beeldsnelheid?
Nee. Deze pagina kijkt nooit naar de video en verandert nooit de lengte van de tijdas, dus een bestand dat misstaat omdat de video op een andere snelheid loopt, staat daarna precies even ver mis. Reken eerst de verhouding uit — daar zijn de pagina’s voor omzetting van beeldsnelheid voor — en zet daarna vast als de tool waaraan je levert grenzen op frames nodig heeft.
Hoeveel kan de lengte van een blok veranderen wanneer het wordt vastgezet?
Tot een half frame per rand, dus in totaal tot een heel frame, en nooit meer. Bij 25 frames per seconde is dat hoogstens 40 ms per blok, 20 ms per grens. Bij 23,976 of 29,97 is er geen heel aantal milliseconden per frame, dus zelfs een blok dat op ronde waarden begint en eindigt verschuift: een blok van twee seconden wordt 2002 ms.
Ik liet de pagina twee keer lopen en de tweede keer veranderde er niets. Klopt dat?
Ja, en dat is wat de pagina veilig maakt om in een batch te laten zitten. Zodra elke grens op een frame ligt, is het dichtstbijzijnde frame bij die grens die grens zelf, dus een tweede run geeft het bestand byte voor byte terug. Controleer je een levering, dan betekent dat ook dat een bestand dat bij een tweede passe verandert de eerste keer niet volledig is vastgezet — dat zou niet moeten gebeuren, maar het is een goedkope test.
Kan een ondertitel verdwijnen wanneer hij wordt vastgezet?
Alleen als hij korter is dan een half frame; dan ronden beide grenzen naar hetzelfde frame en blijft er geen blok over om te schrijven. Bij 25 frames per seconde betekent dat alles onder 20 ms, wat geen echte ondertitel is; de pagina telt wat ze laat vallen, dus het verslag is de plek om te kijken en niet de download.
Moet ik vastzetten op de beeldsnelheid die het bestand zelf verklaart?
Niet automatisch — de verklaring zegt hoe framenummers in het bestand moeten worden gelezen, en de vastzetsnelheid zegt waar grenzen in de uitvoer terechtkomen. In de meeste leveringen is dat hetzelfde getal. Ze verschillen wanneer je een bestand voorbereidt voor een tool die op een andere snelheid werkt, en daar de verklaarde snelheid kiezen is de stille fout: de uitvoer is nog steeds framenauw, op het raster waar niemand om vroeg.