Chuyển đến nội dung chính
SubtitleMatrix

Chuyển SBV sang JSON

Hoặc dán văn bản phụ đề

Chuyển đổi này thay đổi điều gì

Không mất gì theo hướng này — mọi tính năng của định dạng nguồn đều có chỗ để đi trong định dạng đích.

Danh sách này đến từ ma trận năng lực của hai định dạng này, không phải từ tệp cụ thể bạn đã tải lên. Một tệp cụ thể có thể mất nhiều hơn nếu nó dùng các tính năng mà định dạng cho phép nhưng ma trận không mô hình hóa.

Trang này chuyển SBV sang JSON. Bạn thả tệp vào hoặc dán văn bản, rồi nhận lại phiên bản JSON. Quá trình chạy hoàn toàn trong trình duyệt: không tải tệp lên máy chủ, không cần tài khoản.

Không mất gì ở chiều này. Mọi thứ SBV biểu đạt đều có chỗ trong JSON, nên kết quả là cùng một phụ đề được mô tả bằng cấu trúc — thời gian, cách xuống dòng và phần chữ đều sống sót, kể cả với tệp dùng hết khả năng của định dạng.

Một tệp hay cả mùa phim đều được: hàng đợi xử lý lần lượt và trả kết quả về cùng một tệp ZIP.

Ví dụ

Một tệp SBV điển hình, chuyển sang JSON

Đầu vào

0:00:01.000,0:00:03.500
The quick brown fox.

0:00:04.000,0:00:06.250
Jumps over the lazy dog.

0:00:07.000,0:00:09.000
Two lines here.
And a second one.

Kết quả

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 3500,
      "lines": [
        "The quick brown fox."
      ]
    },
    {
      "start": 4000,
      "end": 6250,
      "lines": [
        "Jumps over the lazy dog."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Two lines here.",
        "And a second one."
      ]
    }
  ]
}

Không mất gì ở đây: so hai bên theo từng dòng.

Cùng phép chuyển đổi với một tệp lộn xộn

Đầu vào

0:00:02.000,0:00:04.000
Carriage-return line endings.

	0:00:06.000,0:00:08.000
Indented timecode, no final newline.

Kết quả

{
  "version": 1,
  "cues": [
    {
      "start": 2000,
      "end": 4000,
      "lines": [
        "Carriage-return line endings."
      ]
    },
    {
      "start": 6000,
      "end": 8000,
      "lines": [
        "Indented timecode, no final newline."
      ]
    }
  ]
}

Đây là kiểu hỏng thật của tệp ngoài đời — kết thúc dòng lẫn lộn, khoảng trắng thừa, trường bỏ trống. So với ví dụ gọn ở trên để thấy bộ phân tích bỏ qua được gì.

Câu hỏi thường gặp

JSON xuất ra từ SBV chứa những trường gì?

Một mảng đối tượng cue, mỗi đối tượng có start và end tính bằng mili giây, cùng mảng lines cho nội dung. Cue SBV không mang id vì SBV không có số thứ tự; thứ tự và số dòng được giữ nguyên.

Thời gian trong JSON có còn chính xác như SBV không?

Có. SBV ghi 0:00:04.126, còn JSON ghi số nguyên 4126 mili giây; không mất phần lẻ nào. Cue dài 2,9 giây vẫn giữ đúng độ dài đó.

Cue hai dòng của SBV được biểu diễn thế nào trong JSON?

Hai dòng thành hai phần tử trong mảng lines của cùng một cue. Cấu trúc này giữ được quan hệ giữa hai dòng, khác với việc tách thành hai cue riêng.

Thứ tự cue trong JSON có theo tệp SBV không?

Có, nhưng được sắp theo start tăng dần. Nếu tệp SBV gốc không theo thứ tự, JSON sẽ chuẩn hóa lại; đó là thay đổi cấu trúc nhằm bảo đảm mọi trình đọc hiểu đúng.

Chuyển JSON ngược về SBV có mất gì?

Có: SBV không có chỗ cho kiểu dáng, vị trí hay karaoke. Chiều SBV sang JSON thì không mất gì, nên chi phí đó chỉ xuất hiện khi bạn quay lại định dạng gốc.

JSON do SBV tạo ra dùng bảng mã và kết thúc dòng nào?

UTF-8, không BOM, kết thúc dòng Unix. Mọi tệp SBV đầu vào đều được giải mã trước, kể cả UTF-16 hay bảng mã một byte, và kết quả luôn là UTF-8.

Công cụ liên quan