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

Chuyển SSA sang SMI

Chuyển đổi định dạngSubStation Alpha (SSA)
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ị trừ đậm và nghiêng (màu, viền, bóng, lề)

  • Karaoke

    thời gian karaoke (tô sáng từng âm tiết)

  • 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.

Tệp SSA là script kiểu V4 với bảng kiểu và mã ghi đè riêng. Trang này chuyển tệp SSA sang SMI. Mỗi cue thành một thẻ <SYNC Start=…> với phần chữ nằm trong <P>, và một khối <P>&nbsp; theo sau để trả màn hình về trống.

Hướng này không giữ được hết: kiểu chữ và bảng kiểu, thời gian karaoke và cấu trúc riêng của định dạng nguồn không đi qua trọn vẹn khi vào SMI. Danh sách trên lấy từ khả năng của hai định dạng chứ không từ tệp cụ thể của bạn, nên câu trả lời giống nhau trước khi bạn mở tệp. Công cụ báo từng mục thay vì bỏ lặng lẽ.

Phụ đề không rời khỏi máy: công cụ chạy hoàn toàn phía trình duyệt, không tải lên và không cần tài khoản. Cả mùa phim cũng xử lý được — hàng đợi đi lần lượt, có nút hủy, và cuối cùng là một tệp ZIP.

Ví dụ

Một tệp SSA thông thường, chuyển sang SMI

Đầu vào

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

Kết quả

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello there.
<SYNC Start=4000>
<P>&nbsp;
<SYNC Start=5000>
<P><i>Italic</i> line.
<SYNC Start=8000>
<P>&nbsp;
<SYNC Start=9000>
<P>Two<br>lines
<SYNC Start=12000>
<P>&nbsp;
</BODY>
</SAMI>

So hai bên theo từng dòng để thấy phần nào đi qua nguyên vẹn và phần nào đổi khi ra SMI.

Cùng phép chuyển SSA sang SMI trên một tệp lộn xộn

Đầu vào

[Script Info]
Title: Dirty SSA
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

Kết quả

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P><b>Bold</b> and <u>underlined</u>.
<SYNC Start=4000>
<P>&nbsp;
<SYNC Start=5000>
<P>A soft<br>break and a {\p1}mystery{\p0} code.
<SYNC Start=8000>
<P>&nbsp;
</BODY>
</SAMI>

Đây là kiểu hỏng tệp thật hay gặp — xuống dòng lẫn lộn, khoảng trắng thừa, trường bỏ trống. Đặt cạnh ví dụ gọn phía trên để thấy trình đọc tha cho những gì.

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

Chữ in nghiêng và in đậm trong SSA có sang được SMI không?

SMI giữ phần nhấn mạnh nhưng không giữ bảng kiểu của SSA. Đoạn in nghiêng, in đậm, gạch chân hay màu gắn với một đoạn chữ được ghi thành thẻ <i>, <b>, <u>, <font color="…"> ngay trong phần chữ, vì đó là kiểu duy nhất một định dạng mức cue còn mang được. Những gì tệp SSA khai báo ở mức toàn cục — phông, cỡ chữ, viền, bóng và lề — đều bị bỏ.

Thời gian karaoke trong SSA xử lý thế nào khi sang SMI?

Mốc thời gian mất, chữ còn. Karaoke nằm trong các mã \k, \kf và \ko của từng sự kiện SSA, đánh dấu lúc từng âm tiết sáng lên; SMI không có cách ghi một khoảnh khắc bên trong một dòng, nên các dấu đó được gỡ và âm tiết ra như chữ SMI bình thường.

Khối [Script Info] và phần còn lại của script SSA đi đâu khi sang SMI?

Chỉ các dòng Dialogue: thành phụ đề trong SMI. Khối [Script Info] (kể cả tiêu đề), bảng kiểu, các dòng Comment: và mọi thứ nhúng trong [Fonts] hay [Graphics] đều bị bỏ. Với một tệp SSA được viết kiểu thủ công, đây là phần mất lộ rõ nhất.

Khi chuyển SSA sang SMI, tệp đầu ra trông như thế nào?

Mỗi cue là một thẻ <SYNC Start=…> với phần chữ trong <P> bên dưới, kèm một khối <P>&nbsp; để trả màn hình về trống. Mỗi cue của SSA thành một cue SMI, giữ nguyên thứ tự.

Mốc 1/100 giây của SSA có bị đổi khi sang SMI không?

Không mất thêm. SSA ghi 0:00:04.13; khi ra SMI, cùng khoảnh khắc đó thành 00:00:04.130 hoặc 4130 mili giây tùy định dạng, vẫn đúng tới 1/100 giây mà nguồn có. Không làm tròn thêm và không dời cue.

Một cue SSA có hai dòng sẽ ra sao trong tệp SMI?

Thành hai dòng nối bằng <br>, cách SAMI viết xuống dòng cứng. Cặp dòng sống sót: hai dòng của SSA vẫn thuộc một phụ đề trong SMI, và trình phát hiện chúng cùng lúc.

Thứ tự các cue SSA có được giữ khi ra SMI?

Có, và chúng được sắp theo thời điểm bắt đầu trên đường ra — sớm nhất trước, cách mọi định dạng ở đây chờ đợi và trình phát đọc. Nếu tệp SSA liệt kê lộn xộn, đầu ra SMI xếp lại; đó là thay đổi cấu trúc tệp chứ không phải nội dung, và là chủ ý.

Chuyển ngược từ SMI về SSA thì mất những gì?

Hướng SMI về SSA bỏ độ chính xác thời gian và cấu trúc riêng của định dạng nguồn. Danh sách đó khác với hướng này vì hai định dạng giữ những thứ khác nhau.

Tệp SMI xuất ra dùng encoding gì, và tệp SSA đầu vào thì sao?

Tệp SMI xuất ra luôn là UTF-8, kết thúc dòng kiểu Unix (LF) và không có BOM, bất kể tệp SSA dùng gì. Đầu vào bằng UTF-16 hoặc bảng mã một byte của Windows được giải mã khi đọc, và bảng kết quả ghi lại việc đó; thứ ra khỏi công cụ luôn là cùng một định dạng UTF-8.

Công cụ liên quan