Konvertera TTML till JSON
Eller klistra in undertexttext
Vad den här konverteringen ändrar
1 sak tappas eller kräver ett beslut
- 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 JSON. TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument. Ett JSON-textblock är ett objekt med start, end och text, samlade i en cues-lista. Båda räknar i millisekunder, så ingen tid avrundas i konverteringen.
Det som inte följer med: formatdata. 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 JSON
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
{
"version": 1,
"cues": [
{
"start": 1000,
"end": 3500,
"lines": [
{
"text": "Hello there.",
"tags": [
{
"kind": "italic",
"start": 6,
"end": 11
}
]
}
]
},
{
"start": 3500,
"end": 6000,
"lines": [
"How are you?",
"Fine, thanks."
]
}
]
}
Förlorat i utdatafilen: 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
{
"version": 1,
"cues": [
{
"start": 1500,
"end": 3500,
"lines": [
"Loaded from an offset and a duration."
]
},
{
"start": 4000,
"end": 6500,
"lines": [
"A coarser clock spelling."
]
},
{
"start": 7000,
"end": 8480,
"lines": [
"Frames, at 25fps."
]
},
{
"start": 9000,
"end": 11000,
"lines": [
{
"text": "Half-open and Tom & Jerry.",
"tags": [
{
"kind": "color",
"start": 0,
"end": 9,
"value": "#FF0000"
}
]
}
]
}
]
}
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 JSON?
TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. Båda räknar i millisekunder, så ingen tid avrundas i konverteringen.
Vad förloras när en TTML-fil blir JSON?
När TTML blir JSON går formatdata förlorade. Innehåll utanför textblocken har ingen plats i målformatet. Texten, ordningen och tiderna följer med.
Klarar JSON 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. JSON bevarar hela modellen: stilar, placering, karaoke och strukturerade taggar. JSON sparar positionen som x, y och en justering. JSON sparar karaoketider som strukturerade taggar.
Vad händer med radbrytningar och antalet textblock när TTML konverteras till JSON?
TTML till JSON: Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument. Ett TTML-textblock behåller hårda radbrytningar (<br/>). JSON behåller hårda radbrytningar som en lista av rader.
Laddas min TTML-fil upp när jag konverterar den till JSON?
Nej. Både inläsningen av TTML-filen och skrivningen av JSON-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.