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

Định dạng phụ đề SMI

Định dạng này có thể biểu đạt gì

Định dạng hiển thị văn bản
Đậm và nghiêng
Vị trí trên màn hình
Có
Thời gian karaoke
Không
Xuống dòng trong một cue
Có
Dòng thời gian
Thời điểm bắt đầu và kết thúc cho mọi cue
Độ phân giải thời gian
1 ms
Thời gian lưu dưới dạng số khung hình
Không
Văn bản phải sang trái
Có

Ví dụ

Một tệp SMI điển hình, và những gì đọc ra từ nó

Tệp

<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>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Tệp chứa gì

2 cues, 3 lines of text

  Start=1000  =  00:00:01.000 → 00:00:03.000
    Hello there.
    [Class=ENCC]
  Start=3500  =  00:00:03.500 → 00:00:06.000
    How are you?
    Fine, thanks.
    [Class=ENCC]

Outside the cues:
  head       a <STYLE> block with CSS for the paragraphs, kept as it came in
  cue ends   the next <SYNC> tag — a SAMI file writes no end time of its own
  clearing   a <P>&nbsp; block blanks the screen; the two here are kept as clearing blocks, not turned into cues

Cột bên phải không phải tệp đã chuyển đổi — đó là những gì trang này đọc được từ cột bên trái, và là điểm xuất phát của mọi phép chuyển đổi.

Một tệp SMI lộn xộn, và những gì vẫn đọc được

Tệp

<SAMI>
<BODY>
<SYNC Start=abc>
<P Class=ENCC>this block's start cannot be read
<SYNC Start=2000>
<SYNC Start=4000>
<P>no attributes here<br>second line
<SYNC Start="6000">
some loose text before any P
</BODY>
</SAMI>

Tệp chứa gì

3 cues, 3 lines of text

  Start=2000  =  00:00:02.000 → 00:00:04.000
    (no text)
  Start=4000  =  00:00:04.000 → 00:00:06.000
    no attributes here
    second line
  Start=6000  =  00:00:06.000 → 00:00:08.000
    some loose text before any P

Outside the cues:
  head       no <STYLE> block and no <TITLE> — just the <SAMI> and <BODY> tags
  cue ends   the next <SYNC> tag; the last cue has none after it, so its end time was given a default
  loose text text between two <SYNC> tags that belongs to no <P> is kept and attached to the cue open at that point

Reported while reading — repaired or skipped, never silently:
  1 × SYNC blocks whose start time could not be read (they were skipped)
  1 × the last cue has no following timestamp, so its end time was generated

Tệp thật thường có BOM, kết thúc dòng Windows, thẻ đóng thiếu, hoặc Class trỏ vào kiểu không tồn tại. Không trường hợp nào làm chương trình lỗi: phần không hiểu được sẽ được báo lại thay vì lặng lẽ bỏ đi.

Chuyển SAMI (SMI) sang định dạng khác

Mỗi công cụ trong số này chạy hoàn toàn trong trình duyệt của bạn. Nhãn cho biết hướng đó tốn kém gì trước khi bạn mở nó.

Chuyển SMI sang LRC — mất thời gian, kiểu dáng, vị trí, độ chính xác và nội dung riêng.
  • Mốc thời gian
  • Định dạng hiển thị
  • Vị trí
  • Độ chính xác
  • Nội dung riêng của định dạng
Chuyển SMI sang MicroDVD — mất kiểu dáng, vị trí, frame rate và nội dung riêng của SMI.
  • Định dạng hiển thị
  • Vị trí
  • Tốc độ khung hình
  • Nội dung riêng của định dạng
Chuyển SMI sang TXT — mất thời gian, kiểu dáng, vị trí, ngắt dòng và nội dung riêng.
  • Mốc thời gian
  • Định dạng hiển thị
  • Vị trí
  • Xuống dòng
  • Nội dung riêng của định dạng

Chuyển đổi sang định dạng này

SMI là định dạng SAMI của Microsoft, và đây là trang tham chiếu của nó: nó lưu được gì, không lưu được gì, và một trang cho mỗi định dạng bạn có thể chuyển sang.

SMI trông giống HTML nhưng không phải HTML: các cue nằm sau thẻ <SYNC> tính bằng mili giây, còn kiểu dáng và vị trí do <STYLE> cùng thuộc tính Class quyết định. Bảng phía trên cho biết phần nào trong đó sống sót khi đi sang từng định dạng khác.

Mọi phép chuyển đổi chạy trong trình duyệt. Không tải tệp lên và không cần tài khoản, nên tài liệu nội bộ hay bản tin chưa phát vẫn giữ nguyên trên máy bạn. Các trang chuyển đổi liên kết bên dưới đều xử lý hàng loạt.

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

Tệp SMI là gì và khác HTML ở chỗ nào?

SMI là SAMI của Microsoft: một tài liệu giống HTML với <SYNC Start=…> đánh dấu thời điểm và <P> chứa lời. Nó không phải HTML thật — trình duyệt không hiển thị trực tiếp mà cần trình phát hiểu SAMI.

SMI lưu thời gian bằng đơn vị nào?

Bằng mili giây, ghi trong thuộc tính Start của thẻ <SYNC>, ví dụ Start=4126. Đó là mốc bắt đầu; kết thúc lấy theo thẻ <SYNC> kế tiếp, dù đó là khối xóa màn hình <P>&nbsp; hay cue sau, và cue cuối cùng thì cộng thêm 2000 ms.

SMI biểu đạt kiểu dáng và vị trí ra sao?

Qua khối <STYLE> định nghĩa các Class, rồi mỗi <P> gắn Class tương ứng. Nhờ vậy SMI đặt được phông, màu và vị trí trên màn hình — điều mà SRT hay SBV không có.

Có thể chuyển SMI sang định dạng nào mà không mất dữ liệu?

Không định dạng nào trong nhóm còn lại giữ được đủ kiểu dáng, vị trí và các khối ngoài cue của SMI. JSON và TTML chỉ mất phần ngoài cue, còn VTT mất thêm vị trí; SRT mất cả kiểu dáng.

Có thể mở tệp SMI bằng trình soạn thảo văn bản không?

Được. Tệp .smi là văn bản với thẻ HTML-like, nên mở bằng trình soạn thảo sẽ thấy <SYNC>, <P> và <STYLE>. Nhưng đừng sửa tay nếu không quen: một thẻ đóng thiếu có thể làm cả tệp bị đọc sai.