Lompat ke konten utama
SubtitleMatrix

Konversi CSV ke ASS

Atau tempel teks subtitle

Apa yang berubah dalam konversi ini

1 hal dihapus atau memerlukan keputusan

  • Presisi

    presisi waktu — jam keluaran lebih kasar, sehingga setiap stempel waktu dibulatkan ke 10 ms terdekat

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

Kedua format ini tidak menyimpan hal yang sama, dan perbedaannya bukan sekadar kosmetik: nilai yang lebih halus dari 10 ms dibulatkan, karena ASS menyimpan waktu dalam langkah 10 ms. File CSV menyimpan satu baris per cue dengan kolom awal, akhir, dan teks; sel yang memuat koma atau baris baru ditulis dalam tanda kutip. Daftar di atas berasal dari apa yang dapat diekspresikan masing-masing format, bukan dari file Anda, jadi jawabannya sama sebelum Anda memuat apa pun.

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 ASS

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

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:03.50,Default,,0,0,0,,The quick brown fox.
Dialogue: 0,0:00:04.00,0:00:06.25,Default,,0,0,0,,Jumps over, the lazy dog.
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Two lines here.\NAnd a second one.

Yang hilang pada keluaran ini: presisi. Sisanya cocok 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

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there, friend.
Dialogue: 0,0:00:05.00,0:00:07.00,Default,,0,0,0,,Second line.
Dialogue: 0,0:00:10.00,0:00:10.01,Default,,0,0,0,,End before start.
Dialogue: 0,0:00:12.00,0:00:14.00,Default,,0,0,0,,Unquoted comma in text, right here.

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

Mengapa stempel waktu bergeser dari CSV ke ASS?

ASS menyimpan waktu sebagai `0:00:04.13` sedangkan CSV menyimpannya sebagai `00:00:04.126` — seperseratus detik versus seperseribu — jadi setiap timecode dibulatkan ke 10 ms terdekat: 00:00:04,126 menjadi 4,13 detik. Tidak ada yang diregangkan atau diurutkan ulang dan tidak ada cue yang bergeser lebih dari 5 ms, tetapi jika Anda menyelaraskan subtitle ini dengan file lain, di situlah konversi ini berhenti eksak.

Seperti apa keluarannya ketika CSV menjadi ASS?

Keluaran ASS disusun seperti ASS — tanpa nomor cue: setiap subtitle adalah baris `Dialogue:` di bagian `[Events]`, dengan kolom layer di tempat SRT menyimpan nomor. Cue yang di CSV ditulis `00:00:04.126` menjadi cue yang di ASS ditulis `0:00:04.13`, dalam urutan yang sama, dan tidak ada teks yang berubah.

Bagaimana cue CSV dua baris keluar di ASS?

Dua baris CSV menjadi dua baris dengan `\N` di antaranya, cara ASS menulis pemisah baris keras. Pasangannya bertahan — keduanya tetap menjadi satu subtitle di keluaran ASS, dan pemutar menampilkannya bersama.

Apakah cue CSV mempertahankan urutannya di keluaran ASS?

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 ASS; itu perubahan struktur yang disengaja, bukan perubahan isi.

Bisakah ASS dikonversi balik ke CSV?

Ya, dan arah itu punya daftarnya sendiri: mengonversi ASS ke CSV menghilangkan gaya, posisi, karaoke, dan konten khusus format. Daftar itu berbeda dari daftar di atas karena kedua format menyimpan hal yang berbeda.

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

Alat terkait