JSON’dan TTML’e 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
- Karaoke
karaoke zamanlaması (hece başına vurgulama)
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.
JSON’dan TTML’ye geçişte yalnızca sarmalayıcı değişir; altyazının kendisi değişmez. JSON’da 1,25 saniye 1250 diye yazılır; TTML’de aynı an <p> öğesinde begin="00:00:01.250" olur. Repliklerin sırası ve metni korunur.
Kayıp listesi kısa ama gerçek: karaoke zamanlaması düşer (hece hece vurgulama). TTML çıktısında her replik <p begin=… end=…> öğesi olur; stil bilgisi <span> üzerinde tts öznitelikleriyle yazılır. Metin ve zaman çizelgesi etkilenmez, düşen şey bunların çevresindeki bilgidir.
Dönüştürme tamamen tarayıcınızda çalışır: dosya hiçbir sunucuya gitmez, hesap açmanız gerekmez. Tek dosya da olur, bir sezonluk dizi de: sıra dosyaları tek tek işler, istediğiniz an durdurabilirsiniz ve sonuçlar tek bir ZIP olarak iner.
Örnekler
Tipik bir JSON dosyası, TTML’ye dönüştürüldü
Girdi
{
"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"
}
]
}
Çıktı
<?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>
Sağdaki dosyada eksilenler: karaoke düşer. Geri kalan her şey — metin, başlangıç ve bitiş anları — soldakiyle aynıdır.
Gerçek hayattan bir JSON dosyası, TTML çıktısı
Girdi
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Çıktı
<?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>
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
JSON dosyası TTML olurken metin ve zamanlama yerinde kalır mı?
Replik metni, sırası ve zaman çizelgesi JSON’dan TTML’ye olduğu gibi geçer. Değişen şey sarmalayıcıdır: JSON’da 1,25 saniye 1250 diye yazılır; TTML’de aynı an <p> öğesinde begin="00:00:01.250" olur. Bununla birlikte karaoke zamanlaması düşer (hece hece vurgulama).
JSON’da zaman kodu TTML’de nasıl yazılır?
JSON’da bir an 1250 diye yazılır; TTML’de aynı an begin="00:00:01.250" olur. TTML’de her replik bir <p> öğesidir ve iki zamanı begin ile end özniteliklerinde taşır.
JSON’da karaoke zamanlaması TTML’ye geçer mi?
JSON’dan TTML’ye geçişte karaoke zamanlaması korunmaz. Karaoke, hece hece vurgulama demektir ve TTML bunun için ayrı bir alan saklamaz. Metnin tamamı tek parça olarak görünür; hece zamanları kaybolur, sözler ve replik sınırları kalır.
JSON dosyasını TTML’ye dönüştürdükten sonra onu hangi oynatıcılar açar?
JSON dosyasından üretilen TTML dosyasını şu araçlar açar: TTML’yi yayın ve akış platformları (IMSC), video oynatıcıları ve bazı tarayıcı eklentileri okur.
BOM ve CRLF içeren bir JSON dosyası TTML’ye dönüşürken sorun çıkarır mı?
Çıkarmaz. JSON dosyası okunurken BOM ve karışık satır sonları temizlenir, TTML çı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.
JSON dosyalarımı toplu olarak TTML’ye dönüştürebilir miyim?
Evet. Birden çok JSON dosyasını bir seferde sürükleyip bırakabilirsiniz; kuyruk hepsini sırayla işler, istediğiniz an durdurabilirsiniz ve TTML çıktıları tek bir ZIP olarak iner. Dosyalar tarayıcıdan çıkmaz, sunucuya hiçbir şey yüklenmez.
TTML dosyasını yeniden JSON’a dönüştürürsem aynı dosyayı elde eder miyim?
JSON → TTML → JSON gidiş-dönüşünde şunlar geri gelmez: karaoke zamanlaması. 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.