TTML’den JSON’a dönüştürücü
Ya da altyazı metnini yapıştırın
Bu dönüşüm neyi değiştirir
1 şey atılır ya da bir karar gerektirir
- Biçime özgü içerik
kaynak formatın repliklerinin dışında tuttuğu içerik (replik olmayan bloklar, başlık metni, replik başına ayarlar, yorum satırına alınmış olaylar) — hedef formatın bunun için yeri yok
Bu liste, yüklediğiniz belirli dosyadan değil, bu iki formatın yetenek matrisinden gelir. Belirli bir dosya, formatın izin verdiği ama matrisin modellemediği özellikler kullanıyorsa daha fazlasını kaybedebilir.
TTML dosyanızı JSON dosyasına dönüştürmek için dosyayı sürükleyip bırakın. TTML’de 1,25 saniye begin="00:00:01.250" diye yazılır; JSON’da aynı an 1250 tam sayısı olur. Replik numaraları ve sırası korunur.
Bu yönde kaybedilenler şunlardır: replik dışındaki içerik düşer: prolog ve <head> bölümü. JSON çıktısında zamanlar tam sayı milisaniye, metin satır dizisi olarak yazılır.
Dosyalar tarayıcı sekmesinde okunur ve yazılır; ağa yalnızca sayfanın kendisi çıkar. Bir dosya da yüz dosya da aynı yoldan geçer: kuyruk sırayla çalışır, ilerleme görünür ve sonuçlar tek arşivde iner.
Örnekler
TTML’den JSON’a geçen tipik bir dosya
Girdi
<?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>
Çıktı
{
"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."
]
}
]
}
Bu dönüşümde kaybedilenler: replik dışı içerik düşer. Replik sayısı ve sırası değişmez; kayıp yalnızca yukarıdaki listede adı geçen özelliklerdedir.
Aynı dönüştürme, dağınık bir girdi üzerinde
Girdi
<?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>
Çıktı
{
"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"
}
]
}
]
}
]
}
Bu, gerçek dosyalarda karşılaşılan hasardır: BOM, Windows satır sonları, boş bırakılmış alanlar. Hiçbiri işlemi durdurmaz; okunamayan bölümler sessizce kaybolmaz, raporda görünür.
Sık sorulan sorular
TTML’den JSON’a dönüşümde ne korunur, ne değişir?
Replik metni, sırası ve zaman çizelgesi TTML’den JSON’a olduğu gibi geçer. Değişen şey sarmalayıcıdır: TTML’de 1,25 saniye begin="00:00:01.250" diye yazılır; JSON’da aynı an 1250 tam sayısı olur. Bununla birlikte replik dışındaki içerik düşer: prolog ve <head> bölümü.
TTML’de zaman kodu JSON’da nasıl yazılır?
TTML’de bir an begin="00:00:01.250" diye yazılır; JSON’da aynı an 1250 olur. JSON’da zamanlar tam sayı milisaniyedir, birim dönüşümü yapılmaz.
TTML dosyasındaki replik dışı bölümler JSON’a geçer mi?
Geçmez. TTML’den JSON’a geçişte TTML dosyasında repliklerin dışında duran şeyler — prolog ve <head> bölümü — JSON biçiminde bir karşılık bulamaz. Metin ve zamanlar etkilenmez; düşen şey dosyanın çevresindeki yapıdır.
TTML dosyasını JSON’a dönüştürdükten sonra onu hangi oynatıcılar açar?
TTML dosyasından üretilen JSON dosyasını şu araçlar açar: JSON biçimi bu siteye ve kendi araçlarınıza yöneliktir; oynatıcılar doğrudan açmaz, ama bütün alanları kayıpsız taşır.
BOM ve CRLF içeren bir TTML dosyası JSON’a dönüşürken sorun çıkarır mı?
Çıkarmaz. TTML dosyası okunurken BOM ve karışık satır sonları temizlenir, JSON çıktısı tek tip satır sonuyla yazılır. Tanınmayan bölümler atlanır ve sayılır; dönüşüm hiçbir zaman hata verip durmaz, anlaşılmayan her şey raporda görünür.
TTML dosyalarımı toplu olarak JSON’a dönüştürebilir miyim?
Evet. Birden çok TTML dosyasını bir seferde sürükleyip bırakabilirsiniz; kuyruk hepsini sırayla işler, istediğiniz an durdurabilirsiniz ve JSON çıktıları tek bir ZIP olarak iner. Dosyalar tarayıcıdan çıkmaz, sunucuya hiçbir şey yüklenmez.
JSON dosyasını yeniden TTML’ye dönüştürürsem aynı dosyayı elde eder miyim?
TTML → JSON → TTML gidiş-dönüşünde şunlar geri gelmez: replik dışındaki içerik. Metin, replik sırası ve başlangıç anları geri gelir, ama bu özellikler ikinci dönüşümde yeniden üretilemez. Gidiş-dönüşü bir yedek olarak değil, biçim değişikliği olarak düşünün.