JSON in TTML umwandeln
Oder Untertiteltext einfügen
Was diese Konvertierung ändert
1 Sache entfällt oder braucht eine Entscheidung
- Karaoke
Karaoke-Zeitangaben (Hervorhebung pro Silbe)
Diese Liste stammt aus der Fähigkeitsmatrix für diese beiden Formate, nicht aus der konkreten Datei, die Sie geladen haben. Eine bestimmte Datei kann mehr verlieren, wenn sie Merkmale nutzt, die das Format erlaubt, die Matrix aber nicht modelliert.
JSON in TTML umwandeln: Datei ablegen oder Text einfügen, die XML-Fassung herunterladen. Die Konvertierung bleibt im Browser, ohne Upload und ohne Konto.
Die Formate speichern nicht dasselbe: TTML kann Stil und Position, aber kein Karaoke. Die Liste oben folgt aus den Fähigkeiten beider Formate und ist unabhängig von Ihrer Datei.
Einzeln oder im Stapel: Die Warteschlange arbeitet die Dateien seriell ab und bündelt sie im ZIP.
Beispiele
Eine typische JSON-Datei, nach TTML konvertiert
Eingabe
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
Ausgabe
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:00.000" end="00:00:02.000">Hello world.<br/>Second line.</p>
<p begin="00:00:02.500" end="00:00:04.000">Plain line.<br/><span tts:fontStyle="italic">Styled</span> line.</p>
<p begin="00:00:04.500" end="00:00:06.000">Roger: I am here.</p> </body>
</tt>
In dieser Ausgabe verloren: Karaoke. Alles andere stimmt Zeile für Zeile.
Dieselbe Konvertierung mit widerspenstiger Eingabe
Eingabe
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Ausgabe
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:00.000" end="00:00:01.000">First.</p>
<p begin="00:00:01.000" end="00:00:02.000">Second.</p>
<p begin="00:00:02.000" end="00:00:03.000">Third.</p> </body>
</tt>
Solche Schäden haben echte Dateien – gemischte Zeilenenden, verirrte Leerzeichen, leere Felder. Vergleichen Sie mit dem sauberen Beispiel oben, um zu sehen, was der Parser verzeiht.
Häufige Fragen
Was passiert mit Karaoke-Timing von JSON nach TTML?
Das Timing fällt weg, die Wörter bleiben. Karaoke steckt in den tags einer JSON-Zeile und markiert den Moment jeder Silbe; TTML kann einen Zeitpunkt innerhalb einer Zeile nicht festhalten. Die Marken verschwinden, der Text bleibt.
Wie sieht die TTML-Ausgabe aus, wenn JSON zu TTML wird?
Jeder Untertitel ist ein <p>-Element mit begin und end, eingebettet in <body> und meist <div>, mit XML-Deklaration über dem Dokument. Aus jeder JSON-cue wird ein TTML-Absatz, Reihenfolge und Text bleiben.
Sind die JSON-Zeiten in der TTML-Datei exakt?
Ja, auf die Millisekunde. JSON schreibt 4126, TTML schreibt 00:00:04.126; beide lösen in Millisekunden auf, es wird nichts gerundet.
Wie kommt eine zweizeilige JSON-cue in TTML an?
Als zwei Zeilen mit <br/> dazwischen, dem harten Umbruch von TTML. Beide Zeilen bleiben in einem <p>, der Player zeigt sie zusammen.
Was bleibt von Stil und Position bei JSON nach TTML erhalten?
Beides wird übernommen: TTML kann volle Gestaltung und Positionen ausdrücken, deshalb stehen styling und positioning nicht in der Verlustliste. Nur Karaoke hat keinen Platz.
Bleibt die Reihenfolge der JSON-cues in TTML erhalten?
Ja, sortiert nach start, früheste zuerst. Aus einer unsortierten JSON-Datei wird eine geordnete TTML-Datei – Struktur, nicht Inhalt.