Konversi CSV ke TTML
Atau tempel teks subtitle
Apa yang berubah dalam konversi ini
Tidak ada yang hilang ke arah ini — setiap fitur format sumber punya tempat di format tujuan.
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 CSV ke TTML. Seret file ke sini — atau tempel teksnya — dan Anda mendapat versi TTML kembali. Konversi berjalan sepenuhnya di peramban Anda, jadi tidak ada yang diunggah dan tidak perlu akun.
Tidak ada yang hilang pada arah ini. Setiap fitur yang dapat diekspresikan CSV memiliki padanan di TTML, jadi keluarannya adalah subtitle yang sama dalam pembungkus berbeda — timeline, pemisah baris, dan teksnya semuanya bertahan. Itu berlaku untuk file CSV apa pun, termasuk yang memakai semua fitur yang diizinkan formatnya. File CSV menyimpan satu baris per cue dengan kolom awal, akhir, dan teks; sel yang memuat koma atau baris baru ditulis dalam tanda kutip. TTML menyimpan waktu hingga milidetik dan menaruh gaya serta region bernama di `<head>`.
Satu file tidak masalah, begitu juga satu musim penuh: antrean memprosesnya secara berurutan dan hasilnya diunduh bersama sebagai satu ZIP.
Contoh
File CSV umum, dikonversi ke TTML
Masukan
start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."
Keluaran
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:03.500">The quick brown fox.</p>
<p begin="00:00:04.000" end="00:00:06.250">Jumps over, the lazy dog.</p>
<p begin="00:00:07.000" end="00:00:09.000">Two lines here.<br/>And a second one.</p> </body>
</tt>
Tidak ada yang hilang di sini: bandingkan kedua sisi baris demi baris.
Konversi yang sama pada input berantakan
Masukan
id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.
Keluaran
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:04.000">Hello there, friend.</p>
<p begin="00:00:05.000" end="00:00:07.000">Second line.</p>
<p begin="00:00:10.000" end="00:00:10.001">End before start.</p>
<p begin="00:00:12.000" end="00:00:14.000">Unquoted comma in text, right here.</p> </body>
</tt>
Inilah jenis kerusakan yang ada pada file nyata — byte-order mark, akhir baris Windows, kolom kosong, atau timestamp tanpa tanda kutip. Bandingkan dengan contoh rapi di atas untuk melihat apa yang dimaafkan parser.
Pertanyaan yang sering diajukan
Seperti apa keluarannya ketika CSV menjadi TTML?
Keluaran TTML disusun seperti TTML — tanpa nomor cue: setiap subtitle adalah elemen `<p>` dengan atribut `begin` dan `end`, bersarang di `<body>` (biasanya juga `<div>`), dengan deklarasi XML di atas seluruh dokumen. Cue yang di CSV ditulis `00:00:04.126` menjadi cue yang di TTML ditulis `00:00:04.126`, dalam urutan yang sama, dan tidak ada teks yang berubah.
Apakah timing CSV akurat di file TTML?
Ya, hingga milidetik — serinci yang bisa dicapai kedua format. CSV menulis satu momen sebagai `00:00:04.126` dan TTML menulis momen yang sama sebagai `00:00:04.126`; tidak ada yang dibulatkan atau digeser di antara keduanya, dan cue yang tampil selama 2,9 detik tetap begitu.
Bagaimana cue CSV dua baris keluar di TTML?
Dua baris CSV menjadi dua baris dengan `<br/>` di antaranya, cara TTML menulis pemisah baris keras. Pasangannya bertahan — keduanya tetap menjadi satu subtitle di keluaran TTML, dan pemutar menampilkannya bersama.
Apakah cue CSV mempertahankan urutannya di keluaran TTML?
Ya. Cue keluar dalam urutan waktu mulai, paling awal dulu, karena semua format di sini mengharapkan urutan itu dan pemutar membacanya begitu. File CSV yang cue-nya tidak berurutan akan dirapikan di keluaran TTML; itu perubahan struktur yang disengaja, bukan perubahan isi.
Bisakah TTML dikonversi balik ke CSV?
Ya, dan justru arah TTML ke CSV itulah yang lossy: gaya, posisi, dan konten khusus format tidak punya tempat di CSV. Arah yang sekarang tidak kehilangan apa pun, jadi biaya itu hanya muncul jika Anda kembali.
Apakah keluaran TTML mempertahankan encoding file CSV?
Tidak — keluarannya UTF-8, dengan akhir baris Unix dan tanpa byte-order mark, apa pun yang dipakai file CSV. File yang datang dalam UTF-16 atau encoding satu-byte Windows didekode saat masuk (panel hasil memberi tahu bila itu terjadi); yang keluar selalu TTML UTF-8 yang sama.