Chuyển TTML sang LRC
Hoặc dán văn bản phụ đề
Chuyển đổi này thay đổi điều gì
5 thứ bị bỏ hoặc cần một quyết định
- Mốc thời gian
thời điểm kết thúc của cue (định dạng đích chỉ ghi khi một cue bắt đầu)
- Đị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)
- Độ 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 LRC. 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 LRC. 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.
LRC chỉ ghi mốc bắt đầu của từng dòng, nên thời điểm kết thúc, kiểu chữ, vị trí và độ chính xác mili giây của TTML đều bị bỏ. 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 LRC
Đầ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ả
[00:01.00]Hello there.
[00:03.50]How are you?
[00:03.50]Fine, thanks.
Phần bị mất trong kết quả này: thời gian, kiểu chữ, vị trí, độ 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ả
[00:01.50]Loaded from an offset and a duration.
[00:04.00]A coarser clock spelling.
[00:07.00]Frames, at 25fps.
[00:09.00]Half-open 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
Thời điểm kết thúc của mỗi cue TTML đi đâu khi sang LRC?
LRC chỉ ghi lúc một dòng bắt đầu; trình phát lời nhạc giữ dòng đó tới khi dòng kế tiếp xuất hiện, nên mốc kết thúc là thừa. Mọi mốc kết thúc bị bỏ, còn mốc bắt đầu của TTML giữ nguyên.
Chữ đậm, nghiêng và màu trong TTML ra sao khi chuyển sang LRC?
LRC không lưu bất kỳ kiểu chữ nào, nên tất cả đều mất: `<span tts:color="…">` trong câu hay một kiểu có tên trong bảng `<styling>` đều không có chỗ đứng, và mỗi dòng LRC là văn bản thuần. Bản thân các từ không bị đổi.
Vị trí trên màn hình của TTML có sang được LRC không?
Không. LRC không nói được phụ đề vẽ ở đâu, nên các tham chiếu `region` và `style` trên `<p>` bị bỏ; mọi cue trở về vị trí mặc định của trình phát, thường là đáy khung hình và căn giữa.
Vì sao mốc thời gian đổi khi chuyển TTML sang LRC?
LRC ghi `[00:04.12]` — một phần trăm giây — còn TTML ghi `00:00:04.126`, nên mốc được làm tròn tới 10 ms gần nhất. Không dòng nào bị đổi thứ tự, và lệch tối đa là 5 ms.
Prolog, bảng `<styling>` và `<layout>` của TTML ra sao trong LRC?
Bị bỏ hoàn toàn. TTML giữ khai báo XML, namespace, bảng kiểu có tên, bảng vùng và `<metadata>` trong `<head>`; LRC không có phần đầu tệp nên không có chỗ nào để đặt chúng. Chỉ phần nhấn mạnh trong câu được viết lại bằng cú pháp của LRC khi LRC có cú pháp tương ứng.
Kết quả TTML sang LRC trông như thế nào?
Mỗi dòng mang mốc thời gian trong ngoặc vuông ở đầu, không có số thứ tự cue. Một cue TTML thành một cue LRC, cùng thứ tự và cùng nội dung chữ.
Một cue TTML hai dòng ra sao trong LRC?
Thành hai dòng đều mang cùng một mốc thời gian — cách LRC nói rằng hai dòng thuộc cùng một cue. Chúng vẫn hiển thị cùng lúc trong trình phát lời nhạc.
Các cue TTML có giữ thứ tự trong kết quả LRC không?
Có, và được sắp theo mốc bắt đầu trước khi ghi. Một tệp TTML lộn thứ tự sẽ cho LRC đúng thứ tự; đó là thay đổi cấu trúc, không phải nội dung.
Tôi có chuyển ngược LRC về TTML được không?
Được, và chiều LRC sang TTML bỏ timing: LRC không có mốc kết thúc nên TTML nhận về chỉ có mốc bắt đầu. Danh sách mất mát của chiều ngược khác với danh sách phía trên.
Kết quả LRC có giữ encoding của tệp TTML không?
Không. LRC 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.