Lompat ke konten utama
SubtitleMatrix

Konversi TTML ke MicroDVD

Konversi formatTTML / DFXP
Atau tempel teks subtitle

Opsi

Frame rate yang dipakai untuk menghitung waktu. Di halaman format, inilah yang dibutuhkan MicroDVD, karena format itu menyimpan waktu sebagai nomor frame. Di halaman frame rate, ini adalah laju yang dipakai saat file diberi waktu — versi tempat subtitle dibuat — dan kotak kedua di halaman tersebut menerima laju video yang akan Anda gunakan bersama subtitle ini. 23,976, 24, 25, 29,97, 30, 50, 59,94, dan 60 adalah nilai yang umum. Nilai yang salah akan menggeser seluruh timeline, dan di halaman frame rate pergeserannya berupa rasio, bukan jumlah tetap.

Apa yang berubah dalam konversi ini

4 hal dihapus atau memerlukan keputusan

  • Pemformatan

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

  • Posisi

    posisi di layar (setiap cue kembali ke posisi bawaan)

  • Frame rate

    format ini menyimpan waktu sebagai nomor frame — waktunya bergantung pada frame rate yang Anda berikan

  • 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 mengonversi TTML ke MicroDVD. Seret file ke sini — atau tempel teksnya — dan Anda mendapat versi MicroDVD kembali. Konversi berjalan sepenuhnya di peramban Anda, jadi tidak ada yang diunggah dan tidak perlu akun.

TTML dan MicroDVD menyimpan hal yang berbeda, dan selisihnya nyata: gaya, posisi, dan konten khusus format tidak punya tempat di MicroDVD; timing MicroDVD bergantung pada frame rate, jadi frame rate harus diatur agar cocok dengan video. 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. Daftar di atas dihitung dari kemampuan kedua format, bukan dari isi file Anda, sehingga hasilnya tidak berubah sebelum file dimuat.

Satu file tidak masalah, begitu juga satu musim penuh: antrean memprosesnya secara berurutan dan hasilnya diunduh bersama sebagai satu ZIP.

Contoh

File TTML umum, dikonversi ke MicroDVD

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

{1}{1}25
{25}{88}Hello there.
{88}{150}How are you?|Fine, thanks.

Yang hilang pada keluaran ini: gaya, posisi, frame rate, 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

{1}{1}25
{38}{88}Loaded from an offset and a duration.
{100}{163}A coarser clock spelling.
{175}{212}Frames, at 25fps.
{225}{275}Half-open 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

Apa yang terjadi pada tebal, miring, dan warna dari TTML ke MicroDVD?

MicroDVD tidak menyimpan gaya apa pun, jadi ketika TTML menjadi MicroDVD semuanya hilang: `<span tts:color="…">` di dalam paragraf, atau gaya bernama dari tabel `<styling>` yang dirujuknya — tidak ada yang punya tempat, dan setiap baris ditulis sebagai teks biasa. Kata-katanya sendiri tidak disentuh.

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

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

Frame rate mana yang harus saya atur untuk konversi TTML ke MicroDVD?

MicroDVD menyimpan subtitle sebagai sepasang nomor frame, bukan waktu jam — `{103}{175}` — jadi frame rate adalah yang mengubah timing TTML menjadi yang dibutuhkan file: pada 25 frame per detik, empat detik berarti frame 100. Atur ke frame rate video tujuan subtitle ini; nilai yang salah hampir tidak terlihat di awal dan makin melenceng semakin lama video berjalan.

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

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. MicroDVD 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 MicroDVD sendiri sejauh MicroDVD memilikinya.

Seperti apa keluarannya ketika TTML menjadi MicroDVD?

Keluaran MicroDVD disusun seperti MicroDVD — tanpa nomor cue: sepasang nomor frame dalam kurung kurawal membuka setiap baris. Cue yang di TTML ditulis `00:00:04.126` menjadi cue yang di MicroDVD ditulis `103`, dalam urutan yang sama, dan tidak ada teks yang berubah.

Bagaimana cue TTML dua baris keluar di MicroDVD?

Dua baris TTML menjadi satu baris dengan tanda pipa vertikal di antara kedua bagian, cara MicroDVD menulis pemisah baris. Pasangannya bertahan — keduanya tetap menjadi satu subtitle di keluaran MicroDVD, dan pemutar menampilkannya bersama.

Apakah cue TTML mempertahankan urutannya di keluaran MicroDVD?

Urutannya dipertahankan, tetapi dirapikan: cue diurutkan menurut waktu mulai, paling awal lebih dulu. Susunan itu yang diharapkan setiap format di sini dan yang dibaca pemutar. Kalau file TTML semula tidak berurutan, keluaran MicroDVD mengembalikannya ke urutan yang benar — perubahan struktur, bukan isi.

Bisakah MicroDVD dikonversi balik ke TTML?

Ya, dan arah itu punya daftarnya sendiri: mengonversi MicroDVD ke TTML menghilangkan frame rate. Daftar itu berbeda dari daftar di atas karena kedua format menyimpan hal yang berbeda.

Apakah keluaran MicroDVD 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 MicroDVD UTF-8 yang sama.

Alat terkait