Video và phụ đề · Bộ công cụ phụ đề
Mã thời gian phụ đề được so sánh: SRT dấu phẩy, VTT dấu chấm và SMPTE khung
· Lý lịch
phụ đề mã thời gian frame-rate
Ba cách viết thời gian xuất hiện trong tác phẩm phụ đề: SRTHH:MM:SS,mmm của WebVTT, HH:MM:SS.mmm Và SMPTEcủa HH:MM:SS:FF. Bài đăng này giải thích ý nghĩa của từng loại, cách chúng chuyển đổi và lỗi chuyển đổi xảy ra ở đâu.
Cùng một khoảnh khắc được viết theo ba cách - một chuyến tham quan nhanh về các mã thời gian mà một biên tập viên gặp trong một dự án
Một dự án có thể được biên tập viên giao ngay lập tức bằng văn bản theo ba cách. Tệp phụ đề sử dụng giờ, phút, giây và dấu phẩy trước mili giây. Tệp chú thích web sử dụng dấu chấm ở vị trí tương tự. Danh sách quyết định chỉnh sửa sử dụng số khung thay vì phân số. Cả ba đều đặt tên cùng một thời điểm và chỉ có thể đọc được một trong số chúng mà không biết gì khác về tài liệu.
Điểm cuối cùng đó mới là điểm quan trọng. Hai trong số các ký hiệu này là tuyệt đối còn một ký hiệu thì không, và việc chuyển đổi giữa chúng sẽ thất bại theo một cách cụ thể khi sự khác biệt bị bỏ qua.
Mili giây có dấu phẩy: SRT — thói quen thập phân của Châu Âu đã trở thành quy tắc định dạng
SRT ghi giờ, phút, giây, dấu phẩy và chính xác ba chữ số tính bằng mili giây. Dấu phẩy là dấu phân cách thập phân trong quy ước Châu Âu và nó đã trở thành quy tắc định dạng theo cách sử dụng thay vì theo đặc điểm kỹ thuật, vì SubRip không có tài liệu tiêu chuẩn nào để sửa nó. Không có gì về giá trị là châu Âu; chỉ có dấu chấm câu.
Trình phân tích cú pháp ở đây đọc mili giây bằng cách đệm bất kỳ chữ số nào nó tìm thấy ở bên phải thành ba, do đó dấu thời gian kết thúc bằng một chữ số được đọc dưới dạng hàng trăm mili giây thay vì đơn vị. Điều đó quan trọng bởi vì các tệp được viết bằng tay hoặc bằng một trình chuyển đổi lỏng lẻo không phải lúc nào cũng cung cấp ba chữ số và việc đọc một chữ số ở cuối vì các đơn vị sẽ đặt tín hiệu sớm gần một giây.
Một phần nghìn giây có dấu chấm: WebVTT — cùng một giá trị, dấu phân cách khác nhau và lý do nó quan trọng đối với trình phân tích cú pháp
WebVTT ghi cùng một giá trị bằng một dấu chấm và cho phép bỏ qua hoàn toàn trường giờ, do đó, biểu mẫu hai trường hợp lệ khi SRT mong đợi ba trường. Đối với một trình phân tích cú pháp, đây thực sự là những ngữ pháp khác nhau, đó là lý do tại sao một tệp có thể bị từ chối chỉ vì dấu câu mặc dù mọi số trong đó đều đúng.
Các tệp thực trộn lẫn cả hai liên tục, do đó trình phân tích cú pháp chấp nhận một trong hai dấu phân cách bất kể tệp đó yêu cầu định dạng nào. Dung sai đó chỉ áp dụng cho đầu vào. Ở đầu ra, dấu phân cách được chọn theo định dạng đích, dấu phẩy cho SRT và dấu chấm cho WebVTT, do đó, tệp được chuyển đổi là chuẩn chứ không phải là bản sao của bất kỳ sự bất thường nào xuất hiện.
Khung: SMPTE mã thời gian — HH:MM:SS:FF, sự phụ thuộc của nó vào tốc độ khung hình và sự phức tạp của khung hình thả
SMPTE mã thời gian thay thế phần phân số bằng số khung, cung cấp giờ, phút, giây và khung. Không giống như hai khung còn lại, nó không thể được giải thích một mình: khung hình mười hai là một khoảnh khắc khác ở tốc độ 25 khung hình mỗi giây so với ở mức ba mươi, do đó, mã thời gian dựa trên khung hình không có tốc độ được khai báo là không đầy đủ thay vì chỉ mơ hồ.
Drop-frame thêm một chức năng thứ hai. Nội dung ở tốc độ 29.97 khung hình mỗi giây được tính như thể là ba mươi và để giữ cho số lượng khớp với đồng hồ, hai số khung hình sẽ bị bỏ qua khi bắt đầu hầu hết các phút, ngoại trừ mỗi phút thứ mười. Các khung hình không bị rơi; chỉ có nhãn là có. Mã thời gian khung hình thả là một quy ước đếm và việc coi nó như số lượng khung hình đơn giản sẽ tạo ra lỗi phát triển trong toàn bộ chương trình.
Chuyển đổi khung hình thành mili giây - số học và làm tròn tạo ra các lỗi nhỏ nhưng thực tế
Chuyển đổi khung hình thành mili giây là phép chia cho tốc độ khung hình và làm tròn là nơi xuất hiện các lỗi nhỏ. Chỉ số khung chia cho tốc độ và nhân với một nghìn hiếm khi đạt được một phần nghìn giây và kết quả phải được làm tròn để được lưu trữ. Các tín hiệu bên trong được giữ dưới dạng toàn bộ mili giây được tính từ 0, vì vậy mỗi chuyển đổi sang biểu diễn đó sẽ làm tròn một lần.
Một vòng là vô hại. Lỗi cần chú ý là chuyển đổi lặp lại: một tệp được lấy từ khung hình sang mili giây, quay lại khung hình ở tốc độ khác và chuyển tiếp lại sẽ tích lũy làm tròn mỗi lần và những lỗi đó không bị hủy. Chuyển đổi một lần từ nguồn có thẩm quyền thay vì chuyển tệp qua một số công cụ.
Ví dụ đã hoạt động: một tín hiệu ở 25 khung hình/giây và ở 29.97 khung hình thả - chuyển đổi cả hai thành mili giây và so sánh
Lấy một tín hiệu ở một phút ba mươi giây và mười hai khung hình. Với tốc độ 25 khung hình trên giây, 12 khung hình bằng 12 phần 25 của một giây, chính xác là 480 mili giây, do đó thời điểm tức thời là 90.480 mili giây.
Tại 29.97 thả khung, cùng một nhãn là một khoảnh khắc khác. Đếm các khung hình: chín mươi giây ở mức ba mươi danh nghĩa sẽ là hai nghìn bảy trăm, cộng với mười hai, trừ đi hai nhãn bị loại bỏ ở phút đầu tiên, tức là hai nghìn bảy trăm mười khung hình. Chia cho tỷ lệ thực của ba mươi nghìn trên một nghìn lẻ một và thời điểm đó là khoảng chín mươi nghìn bốn trăm hai mươi bốn mili giây. Hai mã thời gian trông gần như giống hệt nhau và khác nhau khoảng 56 mili giây, đủ nhỏ để có thể xem xét và đủ lớn để có thể nhìn thấy được khi có tín hiệu chặt chẽ.
Điều này không bao gồm những gì — số giờ vượt quá 99, thời gian âm và mã thời gian trong siêu dữ liệu vùng chứa
Điều này bao gồm các ký hiệu mã thời gian mà tệp phụ đề mang theo. Nó không bao gồm các trường giờ ngoài chín mươi chín, mà một số hệ thống sử dụng để nhận dạng cuộn phim thay vì thời gian đã trôi qua và nó không bao gồm thời gian âm mà cả định dạng phụ đề đều không thể biểu thị; một sự thay đổi tạo ra một sự thay đổi sẽ bị giới hạn ở mức 0.
Mã thời gian được lưu trữ trong siêu dữ liệu vùng chứa cũng nằm ngoài phạm vi. Tệp video có thể mang mã thời gian bắt đầu bù đắp mọi thứ bên trong nó, do đó, tệp phụ đề đúng với chương trình có thể xuất hiện sai so với tệp và không có việc kiểm tra dấu thời gian phụ đề nào sẽ tiết lộ điều đó.
Bài học rút ra: biết bạn đang đọc đồng hồ nào - cách Bộ công cụ phụ đề chuyển đổi chính xác giữa mã thời gian SRT và WebVTT
Biết đồng hồ bạn đang đọc. Dấu phẩy và dấu chấm có cùng giá trị được viết cho các trình phân tích cú pháp khác nhau và việc chuyển đổi giữa chúng sẽ thay đổi dấu câu và không thay đổi gì khác. Số khung hình là một loại số khác, vô nghĩa nếu không có tốc độ của nó và gây nhầm lẫn khi tốc độ là số khung hình thả xuống.
Chuyển đổi giữa SRT và WebVTT bằng bộ công cụ và so sánh dấu thời gian trước và sau: dấu phân cách phải thay đổi còn các chữ số thì không. Nếu một số được di chuyển, tệp sẽ trải qua một bước dựa trên khung ở đâu đó và đó là quá trình chuyển đổi cần kiểm tra.