Konversi JSON ke VTT
Atau tempel teks subtitle
Apa yang berubah dalam konversi ini
3 hal dihapus atau memerlukan keputusan
- Pemformatan
seluruh pemformatan kecuali tebal dan miring (warna, garis tepi, bayangan, margin)
- Posisi
posisi di layar (setiap cue kembali ke posisi bawaan)
- Karaoke
timing karaoke (penyorotan per suku kata)
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 sini Anda dapat mengonversi JSON ke VTT: seret satu file atau tempel teks, lalu unduh hasil VTT. Pemrosesan sepenuhnya lokal di peramban — tidak ada file yang diunggah dan tidak perlu akun.
JSON dan VTT menyimpan hal yang berbeda, dan selisihnya nyata: gaya, posisi, dan karaoke tidak punya tempat di VTT. Dokumen JSON di sini adalah model field: setiap cue punya `id`, `start`, dan `end` dalam milidetik, `lines` membawa `tags`, dan objek `styles` menyimpan tabel gaya. Daftar di atas dihitung dari kemampuan kedua format, bukan dari isi file Anda, sehingga hasilnya tidak berubah sebelum file dimuat.
Batch juga didukung: antrean memproses setiap file secara berurutan, lalu seluruh hasil dikemas sebagai satu ZIP.
Contoh
File JSON umum, dikonversi ke VTT
Masukan
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
Keluaran
WEBVTT
1
00:00:00.000 --> 00:00:02.000
Hello world.
Second line.
2
00:00:02.500 --> 00:00:04.000
Plain line.
<i>Styled</i> line.
3
00:00:04.500 --> 00:00:06.000
Roger: I am here.
Yang hilang pada keluaran ini: gaya, posisi, dan karaoke. Sisanya cocok baris demi baris.
Konversi yang sama pada input berantakan
Masukan
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Keluaran
WEBVTT
00:00:00.000 --> 00:00:01.000
First.
00:00:01.000 --> 00:00:02.000
Second.
00:00:02.000 --> 00:00:03.000
Third.
Inilah jenis kerusakan yang ada pada file nyata — byte-order mark, koma yang hilang, nilai null, atau waktu yang tidak terbaca. Bandingkan dengan contoh rapi di atas untuk melihat apa yang dimaafkan parser.
Pertanyaan yang sering diajukan
Gaya apa yang bertahan dari JSON ke VTT?
Penekanan, ditulis ke dalam teks sebagai tag: tebal, miring, garis bawah, dan warna keluar sebagai `<b>`, `<i>`, `<u>`, dan `<font color="…">`, yang dijalankan peramban. Yang tidak dibawa file VTT adalah tabel gaya JSON yang diandalkan JSON — font, ukurannya, garis tepi, bayangan, dan margin semuanya hilang, dan halaman yang menyematkan subtitle menatanya lewat CSS-nya sendiri.
Apa yang terjadi pada posisi di layar dari JSON ke VTT?
VTT tidak dapat menyatakan di mana subtitle digambar, jadi rujukan posisi yang dibawa setiap cue dibuang saat keluar dari JSON, dan setiap cue kembali ke posisi bawaan yang dipilih pemutar — umumnya bagian bawah bingkai dan di tengah.
Apa yang terjadi pada timing karaoke dari JSON ke VTT?
Timingnya hilang; kata-katanya tetap. Karaoke hidup di span karaoke yang dibawa cue JSON, yang menandai kapan setiap suku kata menyala, dan VTT tidak punya cara mencatat momen di dalam satu baris — jadi tandanya dilepas dan suku katanya tiba sebagai teks VTT biasa.
Seperti apa keluarannya ketika JSON menjadi VTT?
Keluaran VTT disusun seperti VTT — baris pengenal opsional di atas setiap cue, yang tidak pernah ditampilkan pemutar. Cue yang di JSON ditulis `4126` menjadi cue yang di VTT ditulis `00:00:04.126`, dalam urutan yang sama, dan tidak ada teks yang berubah.
Apakah timing JSON akurat di file VTT?
Ya, hingga milidetik — serinci yang bisa dicapai kedua format. JSON menulis satu momen sebagai `4126` dan VTT 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 JSON dua baris keluar di VTT?
Dua baris JSON menjadi dua baris di VTT, satu di bawah yang lain. Pasangannya bertahan — keduanya tetap menjadi satu subtitle di keluaran VTT, dan pemutar menampilkannya bersama.
Apakah cue JSON mempertahankan urutannya di keluaran VTT?
Ya, dan cue diurutkan berdasarkan waktu mulai saat proses — paling awal dulu, seperti yang diharapkan setiap format di sini dan cara pemutar membacanya. Jika file JSON Anda mencantumkan cue di luar urutan, keluaran VTT mengembalikannya ke urutan; itu perubahan pada struktur file, bukan isinya, dan disengaja.
Bisakah VTT dikonversi balik ke JSON?
Ya, dan arah itu punya daftarnya sendiri: mengonversi VTT ke JSON menghilangkan konten khusus format. Daftar itu berbeda dari daftar di atas karena kedua format menyimpan hal yang berbeda.
Apakah keluaran VTT mempertahankan encoding file JSON?
Tidak — keluarannya UTF-8, dengan akhir baris Unix dan tanpa byte-order mark, apa pun yang dipakai file JSON. File yang datang dalam UTF-16 atau encoding satu-byte Windows didekode saat masuk (panel hasil memberi tahu bila itu terjadi); yang keluar selalu VTT UTF-8 yang sama.