Konvertera drop-frame till non-drop
Eller klistra in undertexttext
Inställningar
30 fps non-drop och 29,97 drop-frame skriver samma klocka olika, och det här fältet avgör åt vilket håll filen läses och åt vilket håll den skrivs tillbaka. Ett textblock en timme in läses 01:00:00,000 under den ena och 01:00:03,600 under den andra – de två skiljer sig 3,6 sekunder per timme, inte ett avrundningsfel. Sidans titel namnger en riktning, och det här fältet erbjuder bara den, så filen du får är den sidan handlar om. Inget i texten ändras: inget textblock tidsätts om mot videon, ingen bildfrekvens konverteras, och ett textblock inom första minuten av en timme kommer tillbaka exakt som det gick in, eftersom ingen bildrutebeteckning släpps där.
Vilken bildfrekvens tiderna räknas i. På formatsidorna är det här vad MicroDVD behöver, eftersom formatet lagrar tider som bildnummer. På bildfrekvenssidorna är det den frekvens som filens tider byggdes för – den version som undertexterna gjordes för – och sidans andra fält tar frekvensen för den video du ska använda dem med. 23,976, 24, 25, 29,97, 30, 50, 59,94 och 60 är de vanligaste. Blir det fel förskjuts hela tidslinjen, och på bildfrekvenssidorna förskjuts den med ett förhållande i stället för med ett fast belopp.
Den här sidan skriver om tidscoderna i en undertextfil från drop-frame till non-drop-frame. Ange en fil vars tider är märkta enligt drop-frame-konventionen, och konverteringen re-labellerar klockan så att samma bildruta får det värde non-drop-frame ger den. Vid en timme skiljer konventionerna exakt 3 600 ms, och det är den skillnaden som är hela operationen.
Drop-frame finns därför att 29,97 bilder i sekunden inte går jämnt upp i sextio sekunder. Varje timme blir klockan annars ungefär 3,6 sekunder efter bilderna, så drop-frame hoppar över vissa etiketter i stället: 108 stycken per timme, vilket motsvarar just 3 600 ms. Att konvertera till non-drop behåller bildrutorna men lägger tillbaka de överhoppade etiketterna i klockan, så en tid som löd 01:00:03,600 i drop-frame blir 01:00:00,000 i non-drop.
Skillnaden är inte ett fel och inte en förskjutning av filen. Det är en omskrivning av vilket värde varje bildruta bär, och därför är den olika stor vid olika tidpunkter: 333 ms vid fem minuter, 600 ms vid tio minuter och 3 600 ms vid en timme. Båda kanterna i varje block flyttas lika mycket, så blockets längd bevaras till millisekunden.
Under den första minuten av varje timme hoppas ingen etikett över, så där skriver de två konventionerna samma sak och blocket lämnas orört. Ett block som ligger tidigt och ett som ligger senare kan därför bete sig olika i samma körning, vilket är rätt resultat och inte en halvfärdig körning. SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON och CSV tas emot, och inget laddas upp.
Exempel
En fil fem minuter in
Indata
1
00:05:00,000 --> 00:05:02,000
The room is dark.
2
00:10:00,000 --> 00:10:03,000
A cold night.
Resultat
1
00:04:59,667 --> 00:05:01,667
The room is dark.
2
00:09:59,400 --> 00:10:02,400
A cold night.
Korrigeringen är inte ett enda tal för hela filen: fem minuter in flyttas klockan tillbaka 333 ms och tio minuter in 600 ms, eftersom drop-frame har kastat tio etiketter vid den första repliken och arton vid den andra. Varje block behåller sin längd, eftersom båda kanterna flyttas lika mycket.
Samma korrigering vid en timme
Indata
1
01:00:03,600 --> 01:00:06,600
An hour into the programme.
Resultat
1
01:00:00,000 --> 01:00:03,000
An hour into the programme.
En timme in är drop-frames 01:00:03,600 det som non-drop kallar 01:00:00,000 – 108 överhoppade etiketter, 3 600 ms. Det är talet att kontrollera sidan mot: första raden i resultatet ska ligga exakt 3 600 ms före första raden i indata.
Ett block inne i den första minuten
Indata
1
00:00:04,000 --> 00:00:06,000
Still early in the file.
2
00:05:00,000 --> 00:05:02,000
This one does move.
Resultat
1
00:00:04,000 --> 00:00:06,000
Still early in the file.
2
00:04:59,667 --> 00:05:01,667
This one does move.
Det första blocket 00:00:04,000–00:00:06,000 kommer tillbaka byte för byte och det andra 00:05:00,000–00:05:02,000 flyttas till 00:04:59,667–00:05:01,667, i samma körning. Under den första minuten av en timme hoppas ingen etikett över, så de två konventionerna stavar de sextio sekunderna identiskt.
Vanliga frågor
Vad betyder det att tidscoderna skrivs om från drop-frame till non-drop-frame?
Att klockan re-labelleras så att samma bildruta får det värde non-drop-frame ger den. Bildrutorna är oförändrade; det är vilket klockvärde de bär som ändras. Vid en timme skiljer konventionerna 3 600 ms, eftersom drop-frame har hoppat över 108 etiketter för att hålla klockan i takt med bilderna.
Varför är korrigeringen 333 ms vid fem minuter och 3 600 ms vid en timme?
Därför att drop-frame hoppar över etiketter i en takt som ger 108 stycken per timme, och antalet överhoppade etiketter växer med tiden. Vid fem minuter har tio etiketter kastats, vilket motsvarar 333 ms; vid tio minuter arton, alltså 600 ms; vid en timme 108, alltså 3 600 ms. Ett fast tal skulle inte kunna beskriva korrigeringen.
Är skillnaden mellan drop-frame och non-drop ett fel i filen?
Nej. De två konventionerna är två sätt att skriva samma bildrutor, och skillnaden är själva poängen med konverteringen. Drop-frame är dessutom en approximation: klockan går ungefär 0,108 bilder per timme snabbare än väggklockan, vilket är försumbart men gör att drop-frame inte är exakt lika med verklig tid. Sidan behandlar därför skillnaden som en omskrivning och inte som en korrigering av ett fel.
Varför flyttas inte ett textblock i den första minuten?
Därför att drop-frame inte hoppar över någon etikett under den första minuten av varje timme. Där stavar de två konventionerna samma sextio sekunder, så en tid som 00:00:04,000 är identisk i båda och blocket lämnas orört. Först från den första minutgränsen och framåt börjar skillnaden växa.
Behåller undertextblocken sin längd när drop-frame konverteras till non-drop-frame?
Ja. Båda kanterna i varje block flyttas med samma belopp, så längden i millisekunder bevaras. Det är en re-labellering av tiderna och inte en skalning eller en förskjutning, så varken läshastigheten eller avståndet mellan blocken ändras. Bara själva klockvärdet skiljer sig.
Finns det något undertextformat som själv anger drop-frame-konventionen?
Nej, inget av de tolv formaten lagrar vilken konvention en tidscode följer. Konverteringen bygger därför på att du vet att indata är märkt drop-frame; sidan kan inte upptäcka det åt dig. Det är också skälet till att konverteringen inte är samma sak som en bildfrekvenskonvertering.