Format subtitle JSON
Apa yang dapat diwakili format ini
- Pemformatan teks
- Font, warna, garis tepi, bayangan
- Posisi di layar
- Ya
- Timing karaoke
- Ya
- Pemisahan baris di dalam cue
- Ya
- Timeline
- Waktu awal dan akhir untuk setiap cue
- Resolusi waktu
- 1 ms
- Waktu disimpan sebagai nomor frame
- Tidak
- Teks kanan-ke-kiri
- Ya
Contoh
File JSON umum, dan apa yang dibaca darinya
File
{
"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"
}
]
}
Isi yang dikandungnya
3 cues, 5 lines of text
0 ms → 2000 ms
Hello world.
Second line.
[Default; position 100,200 (center)]
2500 ms → 4000 ms
Plain line.
Styled line. [italic ×1]
4500 ms → 6000 ms
Roger: I am here.
[speaker Roger]
Outside the cues:
styles Default
other keys version, title, fps, generator — carried through untouchedSisi kanan bukan file hasil konversi — itu yang dibaca situs ini dari sisi kiri, dan titik awal setiap konversi file tersebut.
File JSON yang berantakan, dan apa yang masih terbaca darinya
File
{
"cues": [
{ "start": "0:00:01,5", "end": "0:00:03,0", "text": "Unpadded timecode." },
{ "start": 4000.5, "end": 5000, "lines": ["Fractional start.", { "text": "Second.", "tags": [] }] },
{ "start": 9000, "end": 8000, "lines": ["End before start."] },
{ "start": "nope", "end": 12000, "lines": ["No readable start."] },
{ "start": 13000, "lines": ["No end at all."] }
],
"generator": "subtitlematrix boundary",
"styles": {},
"title": "Fixture: boundary"
}
Isi yang dikandungnya
3 cues, 4 lines of text
1500 ms → 3000 ms
Unpadded timecode.
4001 ms → 5000 ms
Fractional start.
Second.
9000 ms → 9001 ms
End before start.
Outside the cues:
other keys generator, title — carried through untouched
Reported while reading — repaired or skipped, never silently:
2 × entries with no readable start and end time (they are not cues, so they were skipped)
1 × cue times that were not whole milliseconds (they were rounded to the nearest millisecond)
1 × cues whose end time was not after their start time (they were given a 1ms duration)File nyata datang dengan byte-order mark, akhir baris Windows, baris nyasar sebelum timecode, atau timecode yang tidak terbaca sama sekali. Tidak ada yang melempar galat: apa pun yang tidak bisa dipahami dilaporkan, bukan dibuang diam-diam.
Konversi SubtitleMatrix JSON ke format lain
Semuanya berjalan sepenuhnya di peramban Anda. Labelnya menyebutkan apa yang dikorbankan arah konversi itu sebelum Anda membukanya.
- Pemformatan
- Posisi
- Karaoke
- Waktu
- Pemformatan
- Posisi
- Karaoke
- Presisi
- Pemformatan
- Posisi
- Karaoke
- Frame rate
- Pemformatan
- Posisi
- Karaoke
- Pemformatan
- Posisi
- Karaoke
- Waktu
- Pemformatan
- Posisi
- Karaoke
- Pemisahan baris
- Pemformatan
- Posisi
- Karaoke
Mengonversi ke format ini
- SubRip (SRT) → SubtitleMatrix JSON
- WebVTT (VTT) → SubtitleMatrix JSON
- Advanced SubStation Alpha (ASS) → SubtitleMatrix JSON
- SubStation Alpha (SSA) → SubtitleMatrix JSON
- YouTube SBV → SubtitleMatrix JSON
- SAMI (SMI) → SubtitleMatrix JSON
- LRC Lyrics → SubtitleMatrix JSON
- MicroDVD → SubtitleMatrix JSON
- TTML (Timed Text) → SubtitleMatrix JSON
- Plain Text (TXT) → SubtitleMatrix JSON
- CSV Spreadsheet → SubtitleMatrix JSON
JSON SubtitleMatrix adalah salah satu format subtitle yang ditangani situs ini, dan halaman ini adalah rujukannya: apa yang bisa disimpannya, apa yang tidak, dan satu halaman untuk setiap format tujuan.
Dokumen JSON di sini menyimpan model field, bukan markup: nomor versi, array `cues`, dan objek `styles` opsional. Setiap cue punya `id`, `start`, dan `end` dalam milidetik, array `lines` berisi teks beserta `tags` untuk tebal, miring, garis bawah, warna, dan karaoke, ditambah posisi opsional per cue. Karena waktu berupa angka biasa, tidak ada timecode yang perlu diurai, dan karena penekanan berupa tag terstruktur, tidak ada markup yang perlu di-escape. Yang tidak bisa disimpannya adalah konstruksi dokumen di luar model itu: tabel gaya bernama milik TTML, region, dan metadata dokumen tidak punya field padanan.
Tabel di atas adalah keseluruhannya — tidak ada daftar fitur tersembunyi. Ketika sebuah baris menyebut tidak, itulah tepatnya yang hilang saat mengonversi dari JSON, dan setiap halaman konversi yang tertaut di bawah menyatakannya sebelum Anda membuka file. Semua konversi berjalan di peramban Anda: tidak ada yang diunggah dan tidak perlu akun, yang penting untuk materi di bawah NDA, rekam medis pasien, atau embargo penyiaran.
Pertanyaan yang sering diajukan
Apa itu file JSON?
`.json` di sini adalah bentuk subtitle milik situs ini: field versi, tabel gaya opsional, dan array cue yang waktunya dalam milidetik. Bentuk ini sengaja lossless terhadap semua yang dapat diekspresikan format lain, dan ditujukan untuk skrip serta pipeline, bukan untuk pemutar.
Apakah JSON menyimpan gaya?
Ya, dan lebih banyak daripada format lain: tabel gaya berisi font, ukuran, warna, garis tepi, dan margin, ditambah kode per cue di dalam teks, sehingga satu baris bisa tebal, berwarna, dan ditempatkan tanpa gaya bernama. Timing karaoke juga disimpan. Di sini tabelnya adalah objek `styles` dengan nama gaya sebagai kunci, dan gaya per cue berada di array `tags` setiap baris, bukan sebagai kode di dalam teks — karena itu tidak ada yang perlu di-escape saat masuk maupun keluar.
Apakah setiap cue JSON menyimpan awal dan akhir?
Ya, dan satu momen dalam file JSON terbaca `4126`. Itu serinci yang bisa dicapai JSON — hingga milidetik — dan angkanya eksak, sehingga cue bisa pendek, panjang, atau tumpang tindih dengan cue berikutnya tanpa menyiratkan apa pun.
Format mana yang sebaiknya saya tuju dari JSON?
Tidak ada yang di situs ini menampung semua isi file JSON, jadi tidak ada arah gratis — setiap halaman konversi menyebut daftar kehilangannya sendiri. Pilih target berdasarkan daftar mana yang bisa Anda terima, bukan berdasarkan format yang paling sering Anda lihat.
Bisakah saya membuka file JSON di editor teks?
Bisa, asalkan koma dan tanda kutipnya tetap rapi. Waktunya adalah milidetik berupa angka biasa, jadi cue pada 1,25 detik adalah `"start": 1250`.