Chuyển SMI sang CSV
Hoặc dán văn bản phụ đề
Chuyển đổi này thay đổi điều gì
3 thứ bị bỏ hoặc cần một quyết định
- Định dạng hiển thị
mọi định dạng hiển thị (đậm, nghiêng, màu, viền, bóng)
- Vị trí
vị trí trên màn hình (mọi cue trở về vị trí mặc định)
- Nội dung riêng của định dạng
nội dung mà định dạng nguồn giữ bên ngoài các cue (khối không phải cue, văn bản đầu tệp, thiết lập riêng từng cue, sự kiện bị chú thích) — định dạng đích không có chỗ cho nó
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 SMI sang CSV. 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 CSV. Quá trình chạy trong trình duyệt: không tải tệp lên máy chủ và không cần tài khoản.
Hai định dạng không lưu cùng một thứ: SMI mang kiểu dáng, vị trí và các khối ngoài cue của SAMI, còn CSV chỉ có thời gian và văn bản. Danh sách mất mát phía trên tính từ khả năng của hai định dạng chứ không từ tệp của bạn.
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 SMI điển hình, chuyển sang CSV
Đầu vào
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
Kết quả
start,end,text
00:00:01.000,00:00:03.000,Hello there.
00:00:03.500,00:00:06.000,"How are you?
Fine, thanks."
Bị mất trong kết quả: kiểu dáng, vị trí và các thành phần ngoài cue. Phần còn lại khớp từng dòng.
Cùng phép chuyển đổi với một tệp lộn xộn
Đầu vào
<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom & Jerry
<SYNC Start=12000>
<P Class=ENCC>
</BODY>
</SAMI>
Kết quả
start,end,text
00:00:02.500,00:00:09.000,"Line one
Line two"
00:00:09.000,00:00:12.000,Tom & Jerry
Đây là kiểu hỏng thật của tệp ngoài đời — thẻ đóng thiếu, Class trỏ vào kiểu không tồn tại, kết thúc dòng lẫn lộn. 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
Kiểu dáng và Class trong SMI có sang CSV không?
Không. CSV chỉ có ba cột start, end, text; mọi khai báo trong <STYLE> và mọi Class gắn với <P> bị bỏ. Chỉ phần chữ và thời gian được chuyển.
Tệp CSV xuất ra từ SMI có cấu trúc gì?
Dòng đầu là start,end,text, sau đó mỗi cue một dòng. Mỗi khối <SYNC> của SMI thành một dòng CSV, thời gian ghi đến mili giây và văn bản nằm trong một ô.
Mốc thời gian SMI khi sang CSV có bị làm tròn không?
Không. SMI ghi Start=4126 và CSV ghi 00:00:04.126; cùng một thời điểm chính xác đến mili giây. Cue dài 2,9 giây vẫn dài đúng 2,9 giây.
Cue SMI hai dòng nằm thế nào trong ô CSV?
Hai dòng được nối bằng ký tự xuống dòng và đặt trong dấu ngoặc kép theo quy tắc CSV. Chúng vẫn thuộc một cue, nên đọc lại vẫn thấy một phụ đề gồm hai dòng.
Vị trí trên màn hình của SMI có được giữ trong CSV không?
Không. SMI có thể đặt vị trí qua Class trong <STYLE>, nhưng CSV không có cột nào cho vị trí. Mọi thông tin đó mất, chỉ còn thời gian và chữ.
CSV có giữ thứ tự cue của tệp SMI không?
Có, và các cue được sắp theo mốc bắt đầu tăng dần. Nếu các thẻ <SYNC> trong tệp SMI không theo thứ tự, CSV xuất ra sẽ được xếp lại.
Chuyển CSV ngược về SMI mất gì?
Mất khả năng biểu đạt kiểu dáng và vị trí: CSV không mang thông tin đó, nên SMI dựng lại chỉ có thời gian và chữ. Chiều SMI sang CSV đã bỏ những thứ ấy ngay từ đầu.
Các khối ngoài cue của SMI như <STYLE> có được giữ khi sang CSV không?
Không. CSV không có chỗ cho phần đầu tài liệu hay định nghĩa kiểu, nên chỉ nội dung cue được chuyển. Đây là một trong những mất mát được liệt kê phía trên.
Tệp CSV do SMI tạo ra dùng bảng mã nào?
UTF-8, không BOM, kết thúc dòng LF. Tệp SMI thường ở UTF-16 hay bảng mã một byte; bộ đọc giải mã và ghi cảnh báo vào bảng kết quả.