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

Chuyển ASS sang SBV

Chuyển đổi định dạngAdvanced SubStation Alpha (ASS)
Hoặc dán văn bản phụ đề

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

4 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)

  • 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 ASS là một script có phần đầu, bảng kiểu và các sự kiện Dialogue:. Trang này chuyển tệp ASS sang SBV. Mỗi cue là một dòng hai mốc thời gian cách nhau bằng dấu phẩy, rồi đến phần chữ, và không có số thứ tự.

Không phải mọi thứ đều đi qua. SBV không giữ được kiểu chữ và bảng kiểu, vị trí trên màn hình, thời gian karaoke và cấu trúc riêng của định dạng nguồn, nên phần đó bị bỏ hoặc bị làm thô đi và được ghi lại thành từng mục — không có mất mát nào diễn ra im lặng.

Tệp được xử lý cục bộ trong trình duyệt, không qua máy chủ và không cần đăng nhập. Thả một tệp hay cả loạt tệp đều được: chúng chạy lần lượt, có thể hủy, và kết quả gộp trong một tệp ZIP.

Ví dụ

Một tệp ASS thông thường, chuyển sang SBV

Đầu vào

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

Kết quả

0:00:01.000,0:00:04.000
Hello there.

0:00:05.000,0:00:08.500
<i>Italic</i> and <b>bold</b> text.

0:00:09.000,0:00:12.000
Positioned

0:00:13.000,0:00:16.000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>

0:00:17.000,0:00:20.000
Line one
Line two

0:00:21.000,0:00:24.000
Top left

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

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

Đầu vào

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

Kết quả

0:00:01.000,0:00:04.000
Hello, world

0:00:05.000,0:00:08.000
{\fad(300,300)}Unmodelled override

0:00:09.000,0:00:12.000
Both, wrong order

0:00:13.000,0:00:16.500
One decimal centisecond

0:00:17.000,0:00:20.000
Soft
break

Đâ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 ASS có sang được SBV không?

SBV giữ phần nhấn mạnh nhưng không giữ bảng kiểu của ASS. Đ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 ASS khai báo ở mức toàn cục — phông, cỡ chữ, viền, bóng và lề — đều bị bỏ.

Vị trí phụ đề trên màn hình của ASS có sang SBV không?

SBV không nói được phụ đề nằm ở đâu, nên các mã \pos, \an và \move bị gỡ khi ra khỏi ASS; mọi cue quay về vị trí mặc định của trình phát — thường là đáy khung hình, căn giữa.

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

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 ASS, đánh dấu lúc từng âm tiết sáng lên; SBV 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ữ SBV bình thường.

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

Chỉ các dòng Dialogue: thành phụ đề trong SBV. 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 ASS được viết kiểu thủ công, đây là phần mất lộ rõ nhất.

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

Mỗi cue là một dòng chứa hai mốc thời gian cách nhau bằng dấu phẩy, rồi đến phần chữ; không có số thứ tự và không có dòng đầu. Mỗi cue của ASS thành một cue SBV, giữ nguyên thứ tự.

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

Không mất thêm. ASS ghi 0:00:04.13; khi ra SBV, 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 ASS có hai dòng sẽ ra sao trong tệp SBV?

Thành hai dòng, dòng này dưới dòng kia. Cặp dòng sống sót: hai dòng của ASS vẫn thuộc một phụ đề trong SBV, và trình phát hiện chúng cùng lúc.

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

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 ASS liệt kê lộn xộn, đầu ra SBV 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ừ SBV về ASS thì mất những gì?

Hướng SBV về ASS bỏ độ chính xác thời gian. 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 SBV xuất ra dùng encoding gì, và tệp ASS đầu vào thì sao?

Tệp SBV 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 ASS 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