Ana içeriğe geç
SubtitleMatrix

JSON’dan 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)

  • Karaoke

    karaoke zamanlaması (hece başına vurgulama)

  • Hassasiyet

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

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 LRC’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; 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. Repliklerin sırası ve metni korunur.

Bu yönde kaybedilenler şunlardır: 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; karaoke zamanlaması düşer (hece hece vurgulama); zaman hassasiyeti düşer; hedefin saati daha kaba olduğu için her zaman damgası en yakın 10 ms’ye yuvarlanır. 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 JSON dosyası ve LRC çıktısı

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ı

[ti:Fixture: typical]
[00:00.00]Hello world.
[00:00.00]Second line.
[00:02.50]Plain line.
[00:02.50]Styled line.
[00:04.50]Roger: I am here.

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

Aynı dönüştürme, dağınık bir girdi üzerinde

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ı

[00:00.00]First.
[00:01.00]Second.
[00:02.00]Third.

Dağınık girdi dönüşümü bozmaz. Karışık satır sonları ve fazladan boşluklar okuma sırasında temizlenir; tanınmayan bloklar atlanır ve sayılır, böylece çıktının ne kadar güvenilir olduğunu bilirsiniz.

Sık sorulan sorular

JSON → LRC dönüşümünde hangi özellikler aynen geçer?

Replik metni, sırası ve zaman çizelgesi JSON’dan LRC’ye olduğu gibi geçer. Değişen şey sarmalayıcıdır: JSON’da 1,25 saniye 1250 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; karaoke zamanlaması düşer (hece hece vurgulama); zaman hassasiyeti düşer; hedefin saati daha kaba olduğu için her zaman damgası en yakın 10 ms’ye yuvarlanır.

JSON’da zaman kodu LRC’de nasıl yazılır?

JSON’da bir an 1250 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.

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

JSON’dan 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.

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

JSON 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 JSON dosyası LRC’ye dönüşürken sorun çıkarır mı?

Çıkarmaz. JSON 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.

JSON dosyalarımı toplu olarak LRC’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 LRC çıktıları tek bir ZIP olarak iner. Dosyalar tarayıcıdan çıkmaz, sunucuya hiçbir şey yüklenmez.

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

JSON → LRC → JSON gidiş-dönüşünde şunlar geri gelmez: bitiş zamanları, biçimlendirme, ekran konumu, karaoke zamanlaması, 10 ms hassasiyet. 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