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

Chuyển TTML sang SBV

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ị (đậ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)

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

SBV ghi mốc bằng dấu chấm tới mili giây và không có phần đầu tệp; kiểu chữ toàn cục, vị trí và các bảng trong `<head>` của TTML 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 SBV

Đầ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ả

0:00:01.000,0:00:03.500
Hello <i>there</i>.

0:00:03.500,0:00:06.000
How are you?
Fine, thanks.

Phần bị mất trong kết quả này: kiểu chữ, vị trí 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ả

0:00:01.500,0:00:03.500
Loaded from an offset and a duration.

0:00:04.000,0:00:06.500
A coarser clock spelling.

0:00:07.000,0:00:08.480
Frames, at 25fps.

0:00:09.000,0:00:11.000
<font color="#FF0000">Half-open</font> 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

Chữ đậm và in nghiêng trong TTML có sống sót sang SBV không?

Phần nhấn mạnh đi theo, bảng kiểu thì không. Chữ đậm, nghiêng, gạch chân và màu được ghi vào văn bản SBV bằng thẻ `<b>`, `<i>`, `<u>`, `<font color="…">`. Còn font, cỡ chữ, viền, bóng và lề khai báo toàn cục trong `<head>` của TTML thì mất.

Vị trí trên màn hình của TTML có sang được SBV không?

Không. SBV không nói được phụ đề vẽ ở đâu, nên `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.

Prolog, bảng `<styling>` và `<layout>` của TTML ra sao trong SBV?

Bị bỏ. SBV chỉ có một dòng mốc thời gian rồi tới chữ, không có phần đầu tệp để chứa khai báo XML, namespace, bảng kiểu có tên, bảng vùng hay `<metadata>` của TTML. Nhấn mạnh nằm trong câu vẫn được ghi bằng thẻ.

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

Mỗi cue là một dòng chứa hai mốc thời gian, rồi đến phần chữ; không có số thứ tự và không có tiêu đề tệp. Một cue TTML thành một cue SBV, cùng thứ tự và cùng nội dung.

Mốc thời gian của TTML có chính xác trong tệp SBV không?

Có, tới mili giây. TTML ghi `00:00:04.126` và SBV ghi `0:00:04.126` — chỉ khác số 0 đứng trước giờ, không có làm tròn hay dịch chuyển.

Một cue TTML hai dòng ra sao trong SBV?

Thành hai dòng đặt dưới nhau trong cùng một cue. Cặp dòng vẫn thuộc một phụ đề, 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ả SBV không?

Có, và được sắp theo mốc bắt đầu khi ghi ra. Tệp TTML lộn thứ tự sẽ cho SBV đúng thứ tự; chỉ cấu trúc tệp thay đổi, nội dung chữ không đổi.

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

Được, và chiều này không mất thêm gì vì SBV giữ ít hơn TTML. Những gì đã mất ở chiều TTML sang SBV thì không dựng lại được: kiểu chữ, vị trí và phần đầu TTML không được ghi trong SBV.

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

Không. SBV 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.

Công cụ liên quan