Lompat ke konten utama
SubtitleMatrix

Konversi ASS ke LRC

Konversi formatAdvanced SubStation Alpha (ASS)
Atau tempel teks subtitle

Apa yang berubah dalam konversi ini

5 hal dihapus atau memerlukan keputusan

  • Waktu

    waktu akhir cue (format keluaran hanya mencatat kapan cue mulai)

  • 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 diubah menjadi LRC, format lirik yang hanya menyimpan kapan sebuah baris mulai. Setiap event Dialogue menjadi satu baris berstempel [mm:ss.xx], dan semua yang membuat ASS menjadi ASS — tabel gaya, posisi, karaoke — tidak punya tempat di sana.

Lima hal hilang: timing, styling, positioning, karaoke, dan isi khas format. Waktu selesai karena LRC tidak menyimpannya; gaya karena LRC tidak punya model gaya; posisi karena tidak ada penempatan di layar; karaoke karena pembagian per suku kata tidak bisa dinyatakan dalam satu stempel per baris; isi khas format karena [Script Info], Comment:, [Fonts], dan [Graphics] berada di luar cue.

Waktu mulai dibulatkan ke perseratus detik terdekat, jadi 0:00:04.12 menjadi [00:04.12] tanpa pergeseran tambahan. Baris cue yang memakai pemisah baris ASS menjadi dua baris LRC berstempel sama. Satu file atau satu musim, di peramban, hasil dalam satu ZIP.

Contoh

File ASS biasa, dikonversi ke LRC

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

[ti:Example]
[00:01.00]Hello there.
[00:05.00]Italic and bold text.
[00:09.00]Positioned
[00:13.00]karaoke
[00:17.00]Line one
[00:17.00]Line two
[00:21.00]Top left

Yang hilang pada hasil ini: timing, 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

[ti:Dirty sample]
[00:01.00]Hello, world
[00:05.00]{\fad(300,300)}Unmodelled override
[00:09.00]Both, wrong order
[00:13.00]One decimal centisecond
[00:17.00]Soft
[00:17.00]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

Apa yang terjadi pada waktu selesai setiap cue ASS saat menjadi LRC?

Waktu selesai dibuang. LRC hanya mencatat kapan sebuah baris mulai, dan pemutar lirik membiarkan baris tampil sampai baris berikutnya muncul. Waktu mulai ASS tetap di tempatnya.

Apa yang terjadi pada tebal, miring, dan warna dari ASS ke LRC?

Semuanya hilang. LRC tidak menyimpan gaya apa pun — tidak ada jenis huruf, warna, atau rentang tebal dan miring — jadi kode override ASS tidak diterjemahkan menjadi apa pun, dan teksnya keluar polos.

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

Posisi dibuang. Kode seperti \pos(320,240) atau \an7 mengatur tempat cue muncul di layar, dan LRC tidak memiliki konsep penempatan: satu baris lirik selalu tampil di tempat pemutar menaruhnya.

Apa yang terjadi pada timing karaoke dari ASS ke LRC?

Hilang. Karaoke ASS membagi satu baris menjadi suku kata dengan waktu masing-masing, sedangkan LRC hanya punya satu stempel waktu per baris. Suku kata tetap ada sebagai teks, tetapi sorotan yang mengikutinya tidak bisa dinyatakan.

Apa yang terjadi pada blok [Script Info] ASS saat file menjadi LRC?

Blok itu dan seluruh bagian lain di luar cue dibuang. [Script Info] adalah konfigurasi skrip, bukan subtitle; LRC tidak punya header untuk menampungnya, dan konverter tidak menyalin nilainya sebagai baris lirik.

Seperti apa keluaran saat ASS menjadi LRC?

Seperti LRC: tanpa header, tanpa nomor cue, setiap baris membawa stempel waktunya sendiri dalam tanda kurung siku. Setiap event Dialogue menjadi satu baris LRC dengan teks yang sama, dalam urutan waktu.

Bagaimana cue ASS dua baris keluar di LRC?

Sebagai dua baris berstempel sama, cara LRC menandai bahwa keduanya tampil bersamaan. Kode pemisah baris ASS diterjemahkan menjadi pemisah baris biasa, dan pasangannya bertahan.

Apakah cue ASS tetap berurutan di keluaran LRC?

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

Bisakah LRC hasil konversi ASS ini diubah kembali menjadi ASS?

Bisa lewat halaman LRC ke ASS, dan arah balik punya daftar sendiri: timing, styling, positioning, dan karaoke tidak bisa dipulihkan karena LRC tidak menyimpannya. Yang kembali adalah satu event per baris lirik.

Apakah keluaran LRC mempertahankan encoding file ASS saya?

Tidak — hasil selalu UTF-8, akhir baris Unix, tanpa byte-order mark. File ASS lama yang memakai encoding satu byte Windows didekode saat dibaca, dan panel hasil menandainya.

Alat terkait