Konvertera TTML till LRC
Eller klistra in undertexttext
Vad den här konverteringen ändrar
5 saker tappas eller kräver ett beslut
- Tider
textblockens sluttider (utdataformatet registrerar bara när ett textblock börjar)
- Formatering
all formatering (fet, kursiv, färg, kontur, skugga)
- Positionering
positionering på skärmen (varje textblock återgår till standardpositionen)
- Precision
tidsprecision – utdatans klocka är grövre, så varje tidsstämpel avrundas till närmaste 10 ms
- Formatspecifikt innehåll
innehåll som källformatet behåller utanför sina textblock (block som inte är textblock, rubriktext, inställningar per textblock, utkommenterade händelser) – målformatet har ingen plats för det
Den här listan kommer från kapacitetsmatrisen för de här två formaten, inte från den specifika fil du laddade. En viss fil kan förlora mer om den använder funktioner som formatet tillåter men matrisen inte modellerar.
Den här sidan konverterar en TTML-fil till LRC. TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. LRC skriver en tidpunkt som [00:12.00], i minuter, sekunder och hundradelar. Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument. Ett LRC-textblock är en rad med en tidsstämpel i hakparentes följd av själva texten. LRC räknar i hundradels sekunder, alltså grövre än TTML; varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms.
Det som inte följer med: sluttiderna, formateringen, placeringen, tidsprecisionen och formatdata. Sluttiderna försvinner: LRC sparar bara när en rad börjar, och nästa rads start får bli den föregåendes slut. All formatering – fet, kursiv, färg, kontur och skugga – försvinner. Varje textblock återgår till standardpositionen. Målformatets klocka är grövre: varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms. Innehåll utanför textblocken har ingen plats i målformatet. Rapporten ovanför filrutan listar förlusterna innan du väljer en fil, och räknar dem per fil när filen är inläst.
En fil eller en hel säsong: kön bearbetar filerna i tur och ordning, du kan avbryta mitt i och resultaten laddas ner tillsammans som en ZIP. Hela konverteringen sker i webbläsaren – filen lämnar aldrig datorn.
Exempel
En typisk TTML-fil konverterad till LRC
Indata
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
</layout>
</head>
<body>
<div>
<p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
</div>
</body>
</tt>
Resultat
[00:01.00]Hello there.
[00:03.50]How are you?
[00:03.50]Fine, thanks.
Förlorat i utdatafilen: sluttiderna, formateringen, placeringen, tidsprecisionen och formatdata. Jämför de två sidorna rad för rad.
Samma konvertering på en stökig fil
Indata
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
ttp:frameRate="25" xml:lang="en">
<body>
<div>
<p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
<p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
<p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
<p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom & Jerry.</p>
</div>
</body>
</tt>
Resultat
[00:01.50]Loaded from an offset and a duration.
[00:04.00]A coarser clock spelling.
[00:07.00]Frames, at 25fps.
[00:09.00]Half-open and Tom & Jerry.
Så här ser skadade filer ut i verkligheten – blandade radbrytningar, lösa blanksteg och tomma fält. Jämför med det prydliga exemplet ovan för att se vad tolken förlåter.
Vanliga frågor
Hur skiljer sig tidskoderna i TTML och LRC?
TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. LRC skriver en tidpunkt som [00:12.00], i minuter, sekunder och hundradelar. LRC räknar i hundradels sekunder, alltså grövre än TTML; varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms.
Vad förloras när en TTML-fil blir LRC?
När TTML blir LRC går sluttiderna, formateringen, placeringen, tidsprecisionen och formatdata förlorade. Sluttiderna försvinner: LRC sparar bara när en rad börjar, och nästa rads start får bli den föregåendes slut. All formatering – fet, kursiv, färg, kontur och skugga – försvinner. Varje textblock återgår till standardpositionen. Målformatets klocka är grövre: varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms. Innehåll utanför textblocken har ingen plats i målformatet. Texten, ordningen och starttiderna följer med, avrundade.
Klarar LRC av formatering och placering som TTML har?
TTML har en <styling>-tabell med namngivna stilar och en <layout>-tabell med regioner i <head>. TTML placerar text via regioner som definieras i <head>. TTML sparar när ett textblock börjar och slutar, inte när en stavelse markeras. LRC har ingen stildel; spelaren ritar raden med sin egen typografi. LRC har ingen placering i filen. LRC har ingen karaoke.
Vad händer med radbrytningar och antalet textblock när TTML konverteras till LRC?
TTML till LRC: Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument. Ett TTML-textblock behåller hårda radbrytningar (<br/>). Flera rader med samma tidsstämpel bildar ett textblock med flera rader.
Laddas min TTML-fil upp när jag konverterar den till LRC?
Nej. Både inläsningen av TTML-filen och skrivningen av LRC-filen sker i webbläsaren; ingen del av texten, tiderna eller taggarna skickas i en förfrågan. Du kan lägga in en hel säsong, avbryta mitt i och ladda ner resultaten som en ZIP.