Lompat ke konten utama
SubtitleMatrix

Konversi TTML ke SBV

Konversi formatTTML / DFXP
Atau tempel teks subtitle

Apa yang berubah dalam konversi ini

3 hal dihapus atau memerlukan keputusan

  • Pemformatan

    seluruh pemformatan (tebal, miring, warna, garis tepi, bayangan)

  • Posisi

    posisi di layar (setiap cue kembali ke posisi bawaan)

  • Konten khusus format

    konten yang disimpan format sumber di luar cue-nya (blok non-cue, teks header, pengaturan per cue, event yang dikomentari) — format tujuan tidak punya tempat untuknya

Daftar ini berasal dari matriks kemampuan untuk kedua format ini, bukan dari file tertentu yang Anda muat. File tertentu bisa kehilangan lebih banyak jika memakai fitur yang diizinkan format tetapi tidak dimodelkan matriks.

Halaman ini mengubah TTML menjadi SBV. File bisa diseret ke jendela ini atau teksnya ditempel; hasilnya adalah versi SBV. Semua proses berjalan di peramban, tanpa unggahan dan tanpa akun.

Perbedaan kedua format ini bukan soal tampilan: gaya, posisi, dan konten khusus format tidak punya tempat di SBV. TTML adalah dokumen XML dengan namespace `tts:` untuk gaya dan `ttp:` untuk parameter profil: `<head>` mendeklarasikan gaya bernama di `<styling>` dan region di `<layout>`, sedangkan elemen `<p>` adalah subtitlenya dan waktu ditulis hingga milidetik. Karena daftar di atas berasal dari model kemampuan format, daftar itu sudah final bahkan sebelum Anda menyeret file.

Anda bisa memasukkan satu file atau satu musim penuh; antrean bekerja berurutan, dan semua hasil turun bersama dalam satu ZIP.

Contoh

File TTML umum, dikonversi ke SBV

Masukan

<?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>

Keluaran

0:00:01.000,0:00:03.500
Hello <i>there</i>.

0:00:03.500,0:00:06.000
How are you?
Fine, thanks.

Yang hilang pada keluaran ini: gaya, posisi, dan konten khusus format. Sisanya cocok baris demi baris.

Konversi yang sama pada input berantakan

Masukan

<?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>

Keluaran

0:00:01.500,0:00:03.500
Loaded from an offset and a duration.

0:00:04.000,0:00:06.500
A coarser clock spelling.

0:00:07.000,0:00:08.480
Frames, at 25fps.

0:00:09.000,0:00:11.000
<font color="#FF0000">Half-open</font> and Tom &amp; Jerry.

Inilah jenis kerusakan yang ada pada file nyata — byte-order mark, akhir baris Windows, namespace yang tidak dikenal, atau atribut waktu yang tidak terbaca. Bandingkan dengan contoh rapi di atas untuk melihat apa yang dimaafkan parser.

Pertanyaan yang sering diajukan

Apakah tebal dan miring bertahan dari TTML ke SBV?

Penekanan bertahan; tabel gaya tidak. Pemformatan yang melekat pada sepotong teks — tebal, miring, garis bawah, warna — ditulis ke teks SBV sebagai tag (`<i>`, `<b>`, `<u>`, `<font color="…">`), karena itulah satu-satunya jenis gaya yang masih bisa dibawa format tingkat cue. Yang hilang adalah semua yang dikatakan file TTML secara global: font, ukurannya, garis tepi, bayangan, dan margin.

Apa yang terjadi pada posisi di layar dari TTML ke SBV?

SBV tidak dapat menyatakan di mana subtitle digambar, jadi rujukan posisi yang dibawa setiap cue dibuang saat keluar dari TTML, dan setiap cue kembali ke posisi bawaan yang dipilih pemutar — umumnya bagian bawah bingkai dan di tengah.

Apa yang terjadi pada prolog TTML serta tabel `<styling>` dan `<layout>` di SBV?

Dibuang. File TTML menyimpan tampilan dan tata letaknya di head, bukan di kata-kata: deklarasi XML dan pengikatan namespace-nya, tabel `<styling>` berisi gaya bernama (`tts:color`, `tts:fontWeight`), tabel `<layout>` berisi region bernama (`tts:origin`, `tts:extent`), `<metadata>` apa pun, dan atribut `style` / `region` yang dipakai `<p>` untuk merujuknya. SBV menyimpan cue, bukan dokumen, jadi tidak ada bagian dari head itu yang punya tempat mendarat. Pemformatan yang ditulis di dalam paragraf adalah hal lain — `<span tts:fontStyle="italic">` adalah penekanan pada kata-kata, dan ditulis dengan markup SBV sendiri sejauh SBV memilikinya.

Seperti apa keluarannya ketika TTML menjadi SBV?

Keluaran SBV disusun seperti SBV — tanpa nomor cue dan tanpa header — satu baris berisi dua waktu, lalu teksnya. Cue yang di TTML ditulis `00:00:04.126` menjadi cue yang di SBV ditulis `0:00:04.126`, dalam urutan yang sama, dan tidak ada teks yang berubah.

Apakah timing TTML akurat di file SBV?

Ya, hingga milidetik — serinci yang bisa dicapai kedua format. TTML menulis satu momen sebagai `00:00:04.126` dan SBV menulis momen yang sama sebagai `0:00:04.126`; tidak ada yang dibulatkan atau digeser di antara keduanya, dan cue yang tampil selama 2,9 detik tetap begitu.

Bagaimana cue TTML dua baris keluar di SBV?

Dua baris TTML menjadi dua baris di SBV, satu di bawah yang lain. Pasangannya bertahan — keduanya tetap menjadi satu subtitle di keluaran SBV, dan pemutar menampilkannya bersama.

Apakah cue TTML mempertahankan urutannya di keluaran SBV?

Ya. Cue keluar dalam urutan waktu mulai, paling awal dulu, karena semua format di sini mengharapkan urutan itu dan pemutar membacanya begitu. File TTML yang cue-nya tidak berurutan akan dirapikan di keluaran SBV; itu perubahan struktur yang disengaja, bukan perubahan isi.

Bisakah SBV dikonversi balik ke TTML?

Ya, dan arah itu tidak kehilangan apa pun: file SBV menyimpan lebih sedikit daripada yang bisa disimpan TTML, jadi tidak ada yang hilang saat kembali. Namun apa yang hilang pada arah ini tetap hilang — gaya, posisi, dan konten khusus format tidak dapat dibangun kembali dari file SBV, karena tidak ada yang mencatatnya.

Apakah keluaran SBV mempertahankan encoding file TTML?

Tidak — keluarannya UTF-8, dengan akhir baris Unix dan tanpa byte-order mark, apa pun yang dipakai file TTML. File yang datang dalam UTF-16 atau encoding satu-byte Windows didekode saat masuk (panel hasil memberi tahu bila itu terjadi); yang keluar selalu SBV UTF-8 yang sama.

Alat terkait