Ana içeriğe geç
SubtitleMatrix

TTML’den SSA’ya 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

  • Hassasiyet

    zamanlama hassasiyeti — çıktının saati daha kaba, bu yüzden her zaman damgası en yakın 10 ms’e yuvarlanır

  • 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.

Bu sayfa TTML dosyasını SSA dosyasına dönüştürür. TTML’de 1,25 saniye begin="00:00:01.250" diye yazılır; SSA’da aynı an 0:00:01.25 olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır. Metin, replik sayısı ve replik sırası olduğu gibi kalır.

İki biçim aynı şeyleri saklamaz. Bu dönüşümde zaman hassasiyeti düşer; hedefin saati daha kaba olduğu için her zaman damgası en yakın 10 ms’ye yuvarlanır; replik dışındaki içerik düşer: prolog ve <head> bölümü. SSA çıktısında tek bir Default stil yazılır (Arial, 20 punto, beyaz metin, koyu kontur); kaynakta stil yoksa görünüm budur.

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

TTML’den SSA’ya 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ı

[Script Info]
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
Dialogue: 0,0:00:01.00,0:00:03.50,Default,,0,0,0,,Hello {\i1}there{\i0}.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,How are you?\NFine, thanks.

Sağdaki dosyada eksilenler: 10 ms’ye yuvarlanır; replik dışı içerik düşer. Geri kalan her şey — metin, başlangıç ve bitiş anları — soldakiyle aynıdır.

Gerçek hayattan bir TTML dosyası, SSA çıktısı

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 &amp; Jerry.</p>
    </div>
  </body>
</tt>

Çıktı

[Script Info]
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
Dialogue: 0,0:00:01.50,0:00:03.50,Default,,0,0,0,,Loaded from an offset and a duration.
Dialogue: 0,0:00:04.00,0:00:06.50,Default,,0,0,0,,A coarser clock spelling.
Dialogue: 0,0:00:07.00,0:00:08.48,Default,,0,0,0,,Frames, at 25fps.
Dialogue: 0,0:00:09.00,0:00:11.00,Default,,0,0,0,,{\c&H000000FF&}Half-open{\c} and Tom &amp; Jerry.

Gerçek dosyalar böyle gelir: karışık satır sonları, baştaki BOM, boş alanlar. Soldaki dağınık dosyanın sağda düzenli bir SSA dosyasına dönüştüğünü, anlaşılmayan her şeyin ise raporda sayıldığını görün.

Sık sorulan sorular

TTML dosyası SSA olurken metin ve zamanlama yerinde kalır mı?

Replik metni, sırası ve zaman çizelgesi TTML’den SSA’ya 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; SSA’da aynı an 0:00:01.25 olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır. Bununla birlikte zaman hassasiyeti düşer; hedefin saati daha kaba olduğu için her zaman damgası en yakın 10 ms’ye yuvarlanır; replik dışındaki içerik düşer: prolog ve <head> bölümü.

TTML’de zaman kodu SSA’da nasıl yazılır?

TTML’de bir an begin="00:00:01.250" diye yazılır; SSA’da aynı an 0:00:01.25 olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır.

TTML’den SSA’ya geçerken zamanlar neden 10 ms’ye yuvarlanıyor?

TTML’den SSA’ya geçerken saat salise adımlarıyla ilerler: 00:00:01,234 gibi bir değer 0:00:01.23 olarak yazılır. Bu, her zaman damgasında en fazla 5 ms’lik bir kayma demektir; replik sınırları ve metin değişmez.

TTML dosyasını SSA’ya dönüştürdükten sonra onu hangi oynatıcılar açar?

TTML dosyasından üretilen SSA dosyasını şu araçlar açar: VLC, mpv ve Aegisub SSA dosyasını okur; yeni oynatıcıların çoğu ASS’yi tercih eder ama SSA’yı da açar.

BOM ve CRLF içeren bir TTML dosyası SSA’ya dönüşürken sorun çıkarır mı?

Çıkarmaz. TTML dosyası okunurken BOM ve karışık satır sonları temizlenir, SSA çı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 SSA’ya 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 SSA çıktıları tek bir ZIP olarak iner. Dosyalar tarayıcıdan çıkmaz, sunucuya hiçbir şey yüklenmez.

SSA dosyasını yeniden TTML’ye dönüştürürsem aynı dosyayı elde eder miyim?

TTML → SSA → TTML gidiş-dönüşünde şunlar geri gelmez: 10 ms hassasiyet, 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.

İlgili araçlar