Chuyển TTML sang SSA
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 SSA. 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 SSA. 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.
SSA 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; prolog XML, bảng `<styling>` và `<layout>` của TTML không có chỗ đứng trong SSA. 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 SSA
Đầ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, 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: 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 & Jerry.</p>
</div>
</body>
</tt>
Kết quả
[Script Info]
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
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 & 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 SSA?
SSA 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ự, lệch tối đa là 5 ms.
Prolog, bảng `<styling>` và `<layout>` của TTML ra sao trong SSA?
Bị bỏ. Khai báo XML, namespace, bảng kiểu có tên, bảng vùng và `<metadata>` nằm trong `<head>` của TTML, còn SSA chỉ lưu các dòng `Dialogue:`. Nhấn mạnh viết trong câu vẫn được chuyển thành mã định dạng của SSA.
Kết quả TTML sang SSA trông như thế nào?
Mỗi cue là một dòng `Dialogue:` trong mục `[Events]`, với trường `Marked` 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 SSA?
Hai dòng nối bằng `\N`, cách SSA ghi ngắt dòng cứng. Hai dòng vẫn thuộc cùng một cue SSA 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ả SSA không?
Có, và chúng được sắp theo mốc bắt đầu khi ghi ra. Tệp TTML lộn thứ tự sẽ cho SSA đúng thứ tự; đó là thay đổi cấu trúc tệp, không phải nội dung.
Tôi có chuyển ngược SSA về TTML được không?
Được, nhưng chiều SSA sang TTML bỏ karaoke và nội dung riêng của định dạng. Danh sách mất mát của chiều ngược khác danh sách phía trên vì hai định dạng lưu những thứ khác nhau.
Kết quả SSA có giữ encoding của tệp TTML không?
Không. SSA xuất ra 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.