Lompat ke konten utama
SubtitleMatrix

Konversi ASS ke SBV

Konversi formatAdvanced SubStation Alpha (ASS)
Atau tempel teks subtitle

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)

  • Karaoke

    timing karaoke (penyorotan per suku kata)

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

Di halaman ini skrip ASS ditulis ulang sebagai SBV, format dua stempel waktu yang dipisahkan koma lalu teks, dengan baris kosong di antara cue. Tidak ada header, tabel gaya, atau nomor cue di SBV — hanya waktu dan kata-kata — sehingga skrip yang kaya harus dipermudah menjadi itu.

Empat hal hilang: styling, positioning, karaoke, dan isi khas format. Styling karena SBV tidak menyimpan model gaya, positioning karena tidak ada penempatan di layar, karaoke karena pembagian per suku kata tidak bisa dinyatakan dalam satu pasangan waktu, dan isi khas format karena [Script Info], Comment:, [Fonts], serta [Graphics] berada di luar cue.

Waktu ditulis dalam notasi SBV — 0:00:01.23 — dan menyebut momen yang sama dengan 0:00:01.23 di skrip. Cue dua baris tetap dua baris karena SBV memisahkan cue dengan baris kosong. Satu file atau satu musim, hasil dalam satu ZIP, di peramban Anda.

Contoh

File ASS biasa, dikonversi ke SBV

Masukan

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[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
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,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.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

Keluaran

0:00:01.000,0:00:04.000
Hello there.

0:00:05.000,0:00:08.500
<i>Italic</i> and <b>bold</b> text.

0:00:09.000,0:00:12.000
Positioned

0:00:13.000,0:00:16.000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>

0:00:17.000,0:00:20.000
Line one
Line two

0:00:21.000,0:00:24.000
Top left

Yang hilang pada hasil ini: styling, positioning, karaoke, dan isi khas format. Sisanya sama baris demi baris.

Konversi yang sama pada input yang berantakan

Masukan

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
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,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

Keluaran

0:00:01.000,0:00:04.000
Hello, world

0:00:05.000,0:00:08.000
{\fad(300,300)}Unmodelled override

0:00:09.000,0:00:12.000
Both, wrong order

0:00:13.000,0:00:16.500
One decimal centisecond

0:00:17.000,0:00:20.000
Soft
break

Ini jenis kerusakan yang nyata pada file asli — akhir baris campuran, spasi berlebih, kolom kosong. Bandingkan dengan contoh rapi di atas untuk melihat apa yang dimaafkan parser.

Pertanyaan yang sering diajukan

Apakah tebal dan miring bertahan saat ASS dikonversi ke SBV?

Tidak sebagai styling. Kode override ASS tidak punya padanan di SBV, yang hanya menyimpan waktu dan teks, sehingga rentang bergaya tidak bisa dipertahankan sebagai gaya di file hasil. Yang keluar adalah teks cue.

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

Posisi dibuang. Kode penempatan ASS seperti \pos atau \an mengatur tempat cue muncul, dan SBV tidak memiliki konsep itu — tidak ada kolom posisi dan tidak ada kode penempatan yang dikenali pemutar SBV.

Apa yang terjadi pada timing karaoke dari ASS ke SBV?

Hilang. SBV menyimpan satu waktu mulai dan satu waktu selesai per cue, sedangkan karaoke ASS menyimpan waktu per suku kata. Suku kata tetap ada sebagai teks, tetapi sorotan bertiming tidak bisa dinyatakan.

Apa yang terjadi pada blok [Script Info] dan bagian lain skrip ASS di SBV?

Semuanya dibuang. [Script Info] adalah konfigurasi skrip, baris Comment: adalah catatan, dan [Fonts] serta [Graphics] adalah lampiran renderer. SBV hanya punya waktu dan teks, jadi tidak ada tempat untuk itu.

Seperti apa keluaran saat ASS menjadi SBV?

Seperti SBV: tanpa header dan tanpa nomor cue, setiap subtitle dibuka baris waktu berbentuk 0:00:01.230,0:00:03.500, diikuti teks, lalu baris kosong. Setiap event Dialogue menjadi satu cue SBV.

Apakah waktu ASS tetap persis di file SBV?

Ya, sampai milidetik. ASS menulis 0:00:01.23 dan SBV menulis 0:00:01.230 — nilai yang sama dengan digit terakhir nol. Tidak ada pembulatan atau pergeseran yang ditambahkan.

Bagaimana cue ASS dua baris keluar di SBV?

Kedua baris ASS tetap di dalam satu cue SBV. Karena SBV memisahkan cue dengan baris kosong, baris baru di tengah teks tidak dianggap batas.

Apakah cue ASS tetap berurutan di keluaran SBV?

Ya, dan cue diurutkan menurut waktu mulai. Urutan event di skrip bisa tidak kronologis; SBV mengembalikannya ke urutan waktu, dan itu perubahan struktur, bukan isi.

Bisakah SBV hasil konversi ASS ini diubah kembali menjadi ASS?

Bisa lewat halaman SBV ke ASS, tetapi yang hilang tidak kembali: styling, positioning, karaoke, dan isi khas format tidak ada di SBV. Yang kembali adalah event dengan waktu dan teks.

Apakah keluaran SBV mempertahankan encoding file ASS saya?

Tidak. Keluaran SBV selalu UTF-8, memakai akhir baris Unix dan tanpa byte-order mark; file ASS berencoding lama didekode saat dibaca.

Alat terkait