Video và phụ đề · Bộ công cụ phụ đề
Tại sao tệp phụ đề phát trong VLC nhưng không phát được trong phần tử bản nhạc HTML5
· Cách thức hoạt động
phụ đề webvtt browser-processing
Người chơi máy tính để bàn đang tha thứ; phần tử theo dõi của trình duyệt thì không. Bài đăng này giải thích cách trình phân tích cú pháp phụ đề HTML5 đọc tệp WebVTT, các lỗi mà nó âm thầm loại bỏ và cách chuẩn bị một tệp mà cả hai đều chấp nhận.
Tệp tương tự hoạt động trong VLC và không hiển thị gì trên trang web — hai trình phân tích cú pháp, hai mức dung sai
Tệp phụ đề phát chính xác trong trình phát trên máy tính để bàn và không hiển thị gì trên trang web không thay đổi giữa hai tệp này. Điều thay đổi là mức độ khoan dung mà người đọc mang lại. Trình phát trên máy tính để bàn được thiết kế để hiển thị bất cứ thứ gì người dùng kéo vào chúng, để họ đoán, sửa chữa và bỏ qua. Phần tử theo dõi HTML5 triển khai một đặc tả và một đặc tả được chấp nhận sẽ không phải là một đặc tả.
Sự khác biệt cũng không phải là một lỗi. Đó là hai thiết kế với những nghĩa vụ khác nhau và hậu quả thực tế là trình phát trên máy tính để bàn là một bài kiểm tra kém về việc liệu một tệp có hoạt động trên web hay không.
Cách phần tử bản nhạc tải tệp phụ đề — yêu cầu, loại MIME, CORS đối với các bản nhạc có nguồn gốc chéo và kiểm tra tiêu đề WEBVTT
Phần tử bản nhạc tìm nạp tệp phụ đề dưới dạng tài nguyên thông thường, nghĩa là nó phải tuân theo các quy tắc giống như bất kỳ yêu cầu nào khác. Nó phải được phân phát với loại phương tiện WebVTT và tệp được phân phát dưới dạng văn bản thuần túy sẽ bị từ chối bất kể nội dung của nó là gì. Một bản nhạc được lưu trữ trên một nguồn gốc khác cần có các tiêu đề nguồn gốc chéo và thuộc tính nguồn gốc chéo trên thành phần video và nếu không có chúng thì quá trình tìm nạp sẽ không thành công trước khi bất kỳ quá trình phân tích cú pháp nào diễn ra.
Sau đó đến kiểm tra tiêu đề. Tệp WebVTT phải bắt đầu bằng chữ ký WEBVTT, trước tùy chọn là dấu thứ tự byte và tệp không có chữ ký này không phải là tệp WebVTT. Đây là lý do phổ biến nhất khiến tệp SRT được đổi tên thành tiện ích mở rộng VTT không hiển thị gì: việc đổi tên đã thay đổi tiện ích mở rộng chứ không phải dòng đầu tiên.
Phân tích cú pháp theo từng tín hiệu - trình duyệt thực hiện gì với mã thời gian không đúng định dạng hoặc một dòng không mong muốn và tại sao lỗi lại im lặng
Việc phân tích cú pháp sau thời điểm đó được thực hiện theo từng dấu hiệu và chế độ lỗi là nguyên nhân khiến nó trở nên khó hiểu. Một khối mà trình phân tích cú pháp không thể đọc được sẽ bị loại bỏ và quá trình phân tích cú pháp tiếp tục. Không có ngoại lệ, không có lỗi bảng điều khiển và không có dấu hiệu trực quan; gợi ý đơn giản là không bao giờ xuất hiện. Một tệp có bốn mã thời gian không đúng định dạng trong số chín trăm mã sẽ phát gần như hoàn hảo, với bốn khoảnh khắc im lặng trông giống như thiếu bản dịch chứ không phải là lỗi định dạng.
Đây là lý do tại sao triệu chứng này thường được báo cáo là không liên tục. Không có gì là không liên tục về nó. Các tín hiệu tương tự lần nào cũng thất bại, nhưng do các tín hiệu xung quanh hoạt động nên tệp trông có vẻ hoạt động bình thường và lỗi được cho là do nội dung chứ không phải do phân tích cú pháp.
Sự khoan hồng dành cho người chơi trên máy tính để bàn — tại sao VLC và những người khác chấp nhận các tệp không hợp lệ về mặt kỹ thuật
Người chơi máy tính để bàn có chủ ý giữ vị trí ngược lại. Họ chấp nhận cả hai dấu phân cách mili giây, chấp nhận các dòng chỉ mục bị thiếu, suy ra định dạng từ nội dung thay vì phần mở rộng, thứ tự sửa chữa và bỏ qua những gì họ không thể sử dụng mà không phàn nàn. Người dùng kéo tệp vào trình phát muốn phim có phụ đề chứ không phải báo cáo xác thực.
Trình phân tích cú pháp của bộ công cụ nằm trong cùng một truyền thống nhẹ nhàng về đầu vào, chấp nhận các giờ tùy chọn, dấu phân cách và các tệp có khối không đều. Sự khác biệt nằm ở những gì nó thực hiện sau đó: nó ghi lại mọi lỗi mà nó cho phép dưới dạng một vấn đề đã được xác định và nó ghi lại một dạng chuẩn thay vì giữ nguyên sự bất thường mà nó đã chấp nhận.
Ví dụ đã hoạt động: một tệp có ba lỗi phổ biến - kiểm tra nó trong trình duyệt và xem tín hiệu nào biến mất
Lấy một tệp có ba lỗi: nó thiếu tiêu đề WEBVTT, một tín hiệu có trường giây là 75 và một tín hiệu kết thúc trước khi nó bắt đầu. Trong trình phát trên máy tính để bàn, tệp sẽ phát, những giây không thể được sửa chữa hoặc bỏ qua một cách lặng lẽ và tín hiệu đảo ngược sẽ nhấp nháy hoặc bị bỏ đi. Người xem nhìn thấy phụ đề.
Trong phần tử rãnh ghi, tiêu đề bị thiếu sẽ kết thúc nó ngay lập tức; không một tín hiệu nào hiển thị vì tệp chưa bao giờ được chấp nhận dưới dạng WebVTT. Thêm tiêu đề và hình ảnh thay đổi: hầu hết các tín hiệu xuất hiện, tín hiệu có 75 giây bị loại bỏ trong quá trình phân tích cú pháp và tín hiệu đảo ngược được phân tích cú pháp nhưng không bao giờ hiển thị vì nó không có thời lượng để hiển thị. Xác thực đặt tên cả trước khi bạn tải trang, báo cáo mã thời gian không thể thực hiện được và tín hiệu kết thúc trước khi bắt đầu, mỗi mã theo số.
Điều này không bao gồm những gì - tạo kiểu với ::cue, cài đặt định vị và chú thích trực tiếp
Điều này bao gồm việc các tín hiệu có tải hay không chứ không phải chúng trông như thế nào. Tạo kiểu thông qua phần tử giả tín hiệu, cài đặt định vị và căn chỉnh trên dòng mã thời gian, định nghĩa vùng và văn bản dọc đều là những mối quan tâm riêng biệt chỉ quan trọng khi tệp phân tích cú pháp. Một tệp không hiển thị gì không phải là vấn đề về kiểu dáng và kiểu dáng sẽ không giải quyết được vấn đề đó.
Phụ đề trực tiếp và phát trực tuyến cũng nằm ngoài phạm vi này. Các bản phụ đề được phân đoạn được phân phối cùng với luồng thích ứng có mô hình phân phối riêng và tệp tĩnh được tải bởi phần tử bản nhạc không phải là cách chúng tiếp cận trình phát.
Bài học rút ra: chuẩn bị cho trình phân tích cú pháp nghiêm ngặt nhất - cách chuyển đổi và dọn dẹp của Bộ công cụ phụ đề tạo ra một tệp mà phần tử bản nhạc chấp nhận
Chuẩn bị cho trình phân tích cú pháp nghiêm ngặt nhất thay vì trình phân tích cú pháp dễ tha thứ nhất, bởi vì trình phân tích cú pháp nghiêm ngặt là trình phân tích cú pháp mà khán giả của bạn sử dụng. Chuyển đổi sang WebVTT đúng cách để dòng chữ ký được viết thay vì giả định, phân phối nó với loại phương tiện chính xác và thêm tiêu đề có nguồn gốc chéo nếu tệp nằm trên máy chủ khác.
Chạy chuyển đổi và đọc các vấn đề được báo cáo trước khi vận chuyển. Trình chuyển đổi ghi các dấu thời gian chuẩn với dấu phân cách mà định dạng yêu cầu, đánh số lại các tín hiệu liên tục và báo cáo các lỗi mà nó phải chịu đựng, đây là danh sách các tín hiệu sẽ biến mất một cách âm thầm trong trình duyệt. Sau đó tải lại trang và so sánh số lượng tín hiệu với nguồn thay vì tin tưởng rằng chú thích đã xuất hiện.