SSA’dan TTML’e dönüştürücü
Ya da altyazı metnini yapıştırın
Bu dönüşüm neyi değiştirir
2 şey atılır ya da bir karar gerektirir
- Karaoke
karaoke zamanlaması (hece başına vurgulama)
- 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.
SSA’dan TTML’ye geçişte yalnızca sarmalayıcı değişir; altyazının kendisi değişmez. SSA’da 1,25 saniye 0:00:01.25 diye yazılır; TTML’de aynı an <p> öğesinde begin="00:00:01.250" olur. Repliklerin sırası ve metni korunur.
Bu yönde kaybedilenler şunlardır: karaoke zamanlaması düşer (hece hece vurgulama); replik dışındaki içerik düşer: [Script Info], [V4 Styles], [Fonts] ve Comment: satırları. TTML çıktısında her replik <p begin=… end=…> öğesi olur; stil bilgisi <span> üzerinde tts öznitelikleriyle 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
Tipik bir SSA dosyası ve TTML çıktısı
Girdi
[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines
Çı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:01.000" end="00:00:04.000">Hello there.</p>
<p begin="00:00:05.000" end="00:00:08.000"><span tts:fontStyle="italic">Italic</span> line.</p>
<p begin="00:00:09.000" end="00:00:12.000">Two<br/>lines</p> </body>
</tt>
Bu çıktıda düşenler: karaoke düşer; replik dışı içerik düşer. Metin ve replik sırası satır satır aynı kalır; iki sütunu yan yana karşılaştırabilirsiniz.
Aynı dönüştürme, dağınık bir girdi üzerinde
Girdi
[Script Info]
Title: Dirty SSA
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.Çı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:01.000" end="00:00:04.000"><span tts:fontWeight="bold">Bold</span> and <span tts:textDecoration="underline">underlined</span>.</p>
<p begin="00:00:05.000" end="00:00:08.000">A soft<br/>break and a {\p1}mystery{\p0} code.</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
SSA → TTML dönüşümünde hangi özellikler aynen geçer?
Replik metni, sırası ve zaman çizelgesi SSA’dan TTML’ye olduğu gibi geçer. Değişen şey sarmalayıcıdır: SSA’da 1,25 saniye 0:00:01.25 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); replik dışındaki içerik düşer: [Script Info], [V4 Styles], [Fonts] ve Comment: satırları.
SSA’da zaman kodu TTML’de nasıl yazılır?
SSA’da bir an 0:00:01.25 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.
SSA’da karaoke zamanlaması TTML’ye geçer mi?
SSA’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.
SSA dosyasını TTML’ye dönüştürdükten sonra onu hangi oynatıcılar açar?
SSA 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 SSA dosyası TTML’ye dönüşürken sorun çıkarır mı?
Çıkarmaz. SSA 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.
SSA dosyalarımı toplu olarak TTML’ye dönüştürebilir miyim?
Evet. Birden çok SSA 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 SSA’ya dönüştürürsem aynı dosyayı elde eder miyim?
SSA → TTML → SSA gidiş-dönüşünde şunlar geri gelmez: karaoke zamanlaması, 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.