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

Chuyển TTML sang ASS

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

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

2 thứ bị bỏ hoặc cần một quyết định

  • Độ chính xác

    độ chính xác thời gian — đồng hồ của kết quả thô hơn, nên mọi mốc thời gian được làm tròn đến 10 ms gần nhấ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.

Trang này chuyển đổi TTML sang ASS. Bạn kéo tệp vào hoặc dán văn bản, rồi nhận lại phiên bản ASS. Toàn bộ quá trình chạy ngay trong trình duyệt: không tải tệp lên máy chủ, không cần tài khoản.

TTML và ASS không lưu cùng một thứ. ASS chỉ ghi thời gian tới một phần trăm giây nên phần lẻ mili giây bị làm tròn, còn prolog XML, bảng `<styling>` và `<layout>` của TTML không có chỗ đứng trong ASS. Danh sách mất mát phía trên lấy từ khả năng của hai định dạng chứ không phải từ tệp của bạn, nên nó giống nhau trước khi bạn mở tệp.

Một tệp hay cả mùa đề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ụ

Tệp TTML thông thường, chuyển sang ASS

Đầu vào

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
  <head>
    <styling>
      <style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
    </styling>
    <layout>
      <region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
    </layout>
  </head>
  <body>
    <div>
      <p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
      <p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
    </div>
  </body>
</tt>

Kết quả

[Script Info]
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,0,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:03.50,Default,,0,0,0,,Hello {\i1}there{\i0}.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,How are you?\NFine, thanks.

Phần bị mất trong kết quả này: độ chính xác và nội dung riêng của định dạng. Phần còn lại khớp từng dòng.

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

Đầu vào

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
    xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
    ttp:frameRate="25" xml:lang="en">
  <body>
    <div>
      <p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
      <p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
      <p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
      <p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom &amp; Jerry.</p>
    </div>
  </body>
</tt>

Kết quả

[Script Info]
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,0,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.50,0:00:03.50,Default,,0,0,0,,Loaded from an offset and a duration.
Dialogue: 0,0:00:04.00,0:00:06.50,Default,,0,0,0,,A coarser clock spelling.
Dialogue: 0,0:00:07.00,0:00:08.48,Default,,0,0,0,,Frames, at 25fps.
Dialogue: 0,0:00:09.00,0:00:11.00,Default,,0,0,0,,{\c&H000000FF&}Half-open{\c} and Tom &amp; Jerry.

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

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

Vì sao mốc thời gian đổi khi chuyển TTML sang ASS?

ASS ghi thời gian tới một phần trăm giây (`0:00:04.13`), còn TTML ghi tới mili giây (`00:00:04.126`), nên mỗi mốc được làm tròn tới 10 ms gần nhất. Không cue nào bị kéo giãn hay đổi thứ tự, và lệch tối đa là 5 ms.

Phần prolog, bảng `<styling>` và `<layout>` của TTML đi đâu khi sang ASS?

Chúng bị bỏ. TTML giữ diện mạo trong `<head>`: khai báo XML, các namespace, bảng kiểu có tên (`tts:color`, `tts:fontWeight`), bảng vùng (`tts:origin`, `tts:extent`) và các thuộc tính `style`/`region` mà mỗi `<p>` trỏ tới. ASS lưu cue chứ không lưu tài liệu, nên phần đầu đó không có chỗ đứng; chỉ phần nhấn mạnh nằm trong câu mới được viết lại bằng thẻ ASS.

Kết quả TTML sang ASS trông như thế nào?

Mỗi cue thành một dòng `Dialogue:` trong mục `[Events]`, với trường layer thay cho số thứ tự của SRT. Số cue, thứ tự và nội dung chữ giữ nguyên, còn thời gian đã làm tròn tới 10 ms.

Một cue TTML hai dòng ra sao trong tệp ASS?

Hai dòng được nối bằng `\N`, cách ASS ghi ngắt dòng cứng. Hai dòng vẫn thuộc cùng một cue ASS nên trình phát hiển thị chúng cùng lúc.

Các cue TTML có giữ thứ tự trong kết quả ASS không?

Có, và chúng được sắp theo mốc bắt đầu khi ghi ra. Nếu tệp TTML liệt kê cue lộn thứ tự, ASS xuất ra sẽ xếp lại — đó là thay đổi cấu trúc tệp, không phải nội dung.

Tôi có chuyển ngược ASS về TTML được không?

Được, nhưng chiều ngược có danh sách mất mát riêng: ASS sang TTML bỏ karaoke và nội dung riêng của định dạng. Hai chiều khác nhau vì hai định dạng lưu những thứ khác nhau.

Kết quả ASS có giữ encoding của tệp TTML không?

Không. Tệp ASS xuất ra luôn là UTF-8, kết thúc dòng kiểu Unix và không có BOM, bất kể TTML đầu vào dùng gì. Tệp UTF-16 được giải mã khi đọc và bảng kết quả sẽ báo việc đó.

Công cụ liên quan