Ana içeriğe geç
SubtitleMatrix

TTML’den LRC’ye dönüştürücü

Ya da altyazı metnini yapıştırın

Bu dönüşüm neyi değiştirir

5 şey atılır ya da bir karar gerektirir

  • Zamanlama

    replik bitiş zamanları (çıktı formatı yalnızca repliğin ne zaman başladığını kaydeder)

  • Stil

    tüm biçimlendirme (kalın, italik, renk, kontur, gölge)

  • Konumlandırma

    ekrandaki konumlandırma (her replik varsayılan konuma döner)

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

TTML dosyanızı LRC 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; LRC’de aynı an [00:01.25] olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır. Replik numaraları ve sırası korunur.

İki biçim aynı şeyleri saklamaz. Bu dönüşümde bitiş zamanları düşer; hedef biçim yalnızca repliğin başladığı anı yazar; biçimlendirmenin tamamı düşer (kalın, italik, renk, kontur, gölge); ekran konumu düşer; her replik varsayılan konuma döner; 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ü. LRC’ye yalnızca başlangıç anları ve sözler yazılır; başlık [ti:] etiketiyle taşınır.

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 TTML dosyası, LRC’ye dönüştürüldü

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ı

[00:01.00]Hello there.
[00:03.50]How are you?
[00:03.50]Fine, thanks.

Bu çıktıda düşenler: bitiş zamanları düşer; biçimlendirme düşer; konum düşer; 10 ms’ye yuvarlanır; 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.

Gerçek hayattan bir TTML dosyası, LRC çı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ı

[00:01.50]Loaded from an offset and a duration.
[00:04.00]A coarser clock spelling.
[00:07.00]Frames, at 25fps.
[00:09.00]Half-open and Tom &amp; Jerry.

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 dosyası LRC olurken metin ve zamanlama yerinde kalır mı?

Replik metni, sırası ve zaman çizelgesi TTML’den LRC’ye 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; LRC’de aynı an [00:01.25] olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır. Bununla birlikte bitiş zamanları düşer; hedef biçim yalnızca repliğin başladığı anı yazar; biçimlendirmenin tamamı düşer (kalın, italik, renk, kontur, gölge); ekran konumu düşer; her replik varsayılan konuma döner; 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 LRC’de nasıl yazılır?

TTML’de bir an begin="00:00:01.250" diye yazılır; LRC’de aynı an [00:01.25] olur. Hedefin saati salise hassasiyetinde olduğu için değer en yakın 10 ms’ye yuvarlanır. LRC yalnızca başlangıç anını saklar; bitiş bir sonraki satırdan okunur.

TTML’den LRC’ye dönüşen dosyada bitiş zamanları nereden geliyor?

TTML’den LRC’ye geçişte bitiş zamanları kaynaktan gelmez: bir satırın bitişi, bir sonraki satırın başlangıcıdır ve LRC oynatıcıları vurgulamayı böyle ilerletir. Son satırın ardında satır olmadığı için bitişi paneldeki süre kadar uzatılır ve bu üretilen değer raporda ayrıca bildirilir.

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

TTML dosyasından üretilen LRC dosyasını şu araçlar açar: LRC’yi müzik çalarlar, foobar2000, AIMP ve şarkı sözü gösteren mobil uygulamalar okur.

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

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

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

TTML → LRC → TTML gidiş-dönüşünde şunlar geri gelmez: bitiş zamanları, biçimlendirme, ekran konumu, 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