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

Chuyển CSV sang TTML

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

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

Không mất gì theo hướng này — mọi tính năng của định dạng nguồn đều có chỗ để đi trong định dạng đích.

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 CSV sang TTML. 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 TTML. 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.

CSV và TTML giữ được cùng một lượng thông tin — mốc thời gian tới mili giây, chữ và thứ tự — nên chiều này không mất gì; TTML chỉ ghi chúng bằng phần tử XML. Danh sách 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 CSV thông thường, chuyển sang TTML

Đầu vào

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."

Kết quả

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:03.500">The quick brown fox.</p>
<p begin="00:00:04.000" end="00:00:06.250">Jumps over, the lazy dog.</p>
<p begin="00:00:07.000" end="00:00:09.000">Two lines here.<br/>And a second one.</p>  </body>
</tt>

Không mất gì ở chiều này: mốc thời gian, chữ và thứ tự của CSV đều có chỗ trong cue TTML.

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

Đầu vào

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

Kết quả

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:04.000">Hello there, friend.</p>
<p begin="00:00:05.000" end="00:00:07.000">Second line.</p>
<p begin="00:00:10.000" end="00:00:10.001">End before start.</p>
<p begin="00:00:12.000" end="00:00:14.000">Unquoted comma in text, right here.</p>  </body>
</tt>

Đâ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. 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

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

Mỗi hàng CSV thành một `<p begin="00:00:04.126" end="00:00:06.000">` trong `<body>`, phía trên là prolog XML. Hàng tiêu đề `start,end,text` không thành cue nào.

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

Có, tới mili giây. CSV ghi `00:00:04.126` và TTML ghi `00:00:04.126`; không có làm tròn hay dịch chuyển, nên timeline giữ nguyên.

Một ô CSV hai dòng ra sao trong TTML?

Hai dòng trong ô được nối bằng `<br/>`, cách TTML ghi ngắt dòng cứng. Hai dòng vẫn thuộc một cue và hiển thị cùng lúc.

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

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

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

Được, nhưng chiều TTML sang CSV bỏ kiểu chữ, vị trí và nội dung riêng của định dạng, vì bảng chỉ có ba cột start, end, text. Danh sách mất mát của chiều ngược khác phía trên.

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

Không. TTML xuất ra là UTF-8, kết thúc dòng kiểu Unix và không có BOM, bất kể CSV đầ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