Tóm tắt

Biết tên codec mới chỉ là bước đầu: profile mô tả tập tính năng được dùng trong một luồng mã hóa, còn level đặt ra những giới hạn kỹ thuật liên quan đến độ phân giải, tốc độ xử lý hoặc tài nguyên. Để đánh giá một video có phát được hay không, vẫn phải xét cả cách đóng gói, bộ giải mã sẵn có và khả năng của thiết bị. Vì vậy, không nên nhìn một nhãn như H.264 hay AV1 rồi kết luận ngay rằng mọi trình duyệt đều hỗ trợ giống nhau.

Điểm chính

  1. Tên codec cho biết họ công nghệ nén, nhưng chưa nói hết profile và level của luồng cụ thể.
  2. Profile xác định tập tính năng; level giới hạn một số thông số giải mã, không phải nhãn chất lượng đơn giản.
  3. Container, trình duyệt, hệ điều hành, phần cứng và đường giải mã cùng ảnh hưởng việc phát.
  4. Thông báo hỗ trợ của trình duyệt chỉ là một chỉ dấu; cần thử đúng tệp hoặc luồng đang gặp vấn đề.
  5. Không thể suy ra codec mà KLIVE sử dụng chỉ từ tài liệu codec chung.

Codec, profile và level trả lời các câu hỏi khác nhau

Codec là cách biểu diễn và nén hình ảnh để lưu trữ hoặc truyền đi. Hai video cùng được gọi bằng tên một họ codec vẫn có thể khác nhau về các tính năng đã bật và mức tài nguyên cần thiết. Profile gom những tính năng mã hóa có liên quan thành một cấu hình; level mô tả các giới hạn năng lực mà bộ giải mã cần đáp ứng. Bởi vậy, thông tin codec thường phải được đọc như một bộ thuộc tính thay vì một tên duy nhất.

Có thể hình dung tên codec là tên họ công cụ, profile là tập chức năng được chọn, còn level là phạm vi tải mà cấu hình yêu cầu. Đây chỉ là phép so sánh để định hướng, không thay thế định nghĩa tiêu chuẩn. Một profile không tự nói video có đẹp hơn hay luôn chạy nhanh hơn; level cao hơn cũng không phải một thang điểm chất lượng. Chất lượng phụ thuộc quá trình mã hóa, nguồn hình và nhiều tham số khác.

Khi một tệp không mở được, cần ghi nhận đúng thông tin codec, profile, level nếu công cụ phân tích cung cấp, thay vì chỉ ghi “video H.264”. Những chi tiết ấy giúp đối chiếu yêu cầu của luồng với bộ giải mã khả dụng. Tài liệu tổng quan của MDN mô tả các đánh đổi nén, chất lượng, dung lượng và sự khác biệt hỗ trợ theo định dạng, trình duyệt, thiết bị; nó không xác nhận dịch vụ nào chọn codec nào [1].

Khả năng giải mã là kết quả của nhiều lớp tương thích

Ngay cả khi một thiết bị có thể giải mã một profile, nội dung vẫn có thể không phát do lớp chứa hoặc cách phân phối không phù hợp. Container giữ các thành phần như hình, tiếng và thông tin thời gian; nó khác với codec dùng nén hình. Trình duyệt cần hiểu container và luồng bên trong, sau đó chọn đường giải mã được hệ điều hành hoặc phần cứng cung cấp. Một mắt xích không tương thích có thể khiến phát thất bại dù các mắt xích khác có vẻ phù hợp.

Illustration: Khả năng giải mã là kết quả của Decorative illustration for the section "Khả năng giải mã là kết quả của"; visual only, carries no data.

Khả năng phần cứng cũng thay đổi theo thế hệ thiết bị và cấu hình. Giải mã bằng phần mềm có thể hoạt động ở một mức tải nhất định, nhưng tiêu thụ tài nguyên khác với giải mã tăng tốc phần cứng. Điều đó không cho phép khẳng định mọi máy cũ đều thất bại hoặc mọi máy mới đều phát trơn tru: độ phân giải, tốc độ khung hình, độ sâu màu, trình điều khiển và tác vụ đồng thời đều có thể làm thay đổi tình hình.

Khả năng do giao diện lập trình của trình duyệt báo cáo là thông tin về môi trường hiện tại, không phải lời hứa cho mọi tệp. Luồng thực tế có thể dùng cấu hình profile hay level khác, hoặc gặp giới hạn do container và đường phân phối. Nên coi kết quả kiểm tra ban đầu như bộ lọc để chọn hướng điều tra, sau đó thử phát nội dung cụ thể và kiểm tra lỗi trong công cụ nhà phát triển nếu có.

Cách kiểm tra khi một video không phát

Trước tiên hãy xác định phạm vi: chỉ một video, mọi video trên một trang, hay mọi trang trong một trình duyệt. Ghi lại thiết bị, hệ điều hành, trình duyệt và thời điểm phát sinh; nếu vấn đề chỉ xuất hiện sau cập nhật, ghi rõ thay đổi gần nhất. Đừng bắt đầu bằng cách cài hàng loạt tiện ích hoặc codec không rõ nguồn gốc, vì việc đó vừa tăng rủi ro vừa làm khó xác định nguyên nhân.

Tiếp theo, kiểm tra tệp hoặc luồng mẫu nếu có quyền truy cập. Công cụ phân tích phương tiện có thể cho biết container, codec, profile, level, độ phân giải và tốc độ khung hình. Đối chiếu thông tin đó với tài liệu hỗ trợ của trình duyệt hoặc nhà sản xuất thiết bị. Nếu chỉ có tên codec mà thiếu profile hay thông số luồng, hãy xem kết luận là sơ bộ. Với nội dung trực tuyến, người xem thường không thể truy cập toàn bộ luồng; khi ấy chỉ nên ghi nhận biểu hiện và dữ liệu chẩn đoán mà trang cung cấp.

Thử cùng nội dung trên trình duyệt hoặc thiết bị khác giúp tách vấn đề cục bộ khỏi sự cố liên quan tới nội dung, nhưng phép thử chỉ có giá trị khi giữ các điều kiện càng gần nhau càng tốt. Nếu một thiết bị chạy còn thiết bị kia không, đó là đầu mối về khác biệt môi trường chứ chưa chứng minh profile cụ thể là nguyên nhân. Kiểm tra cập nhật trình duyệt, hệ điều hành và trình điều khiển theo kênh chính thức; chỉ đổi một yếu tố mỗi lần để kết quả dễ diễn giải.

Đọc nhãn codec mà không suy diễn quá mức

Một thông tin như “AV1 được hỗ trợ” có thể chỉ nói thiết bị hoặc trình duyệt nhận biết một phần định dạng trong một số điều kiện. Nó không tự xác nhận mọi profile, level, kích thước hình hay cách đóng gói đều dùng được. Ngược lại, thiếu tăng tốc phần cứng không nhất thiết đồng nghĩa không thể phát; thiết bị có thể giải mã bằng phần mềm, nhưng hiệu năng và mức tiêu thụ tài nguyên sẽ khác.

Illustration: Đọc nhãn codec mà không suy diễn Decorative illustration for the section "Đọc nhãn codec mà không suy diễn"; visual only, carries no data.

Khi so sánh hai luồng, hãy ghi rõ điều kiện thay vì chỉ so tên codec: cùng độ phân giải hay không, cùng tốc độ khung hình hay không, âm thanh có khác không, có thay đổi mạng hoặc trình duyệt không. Một phép thử được ghi chép tốt có thể chỉ ra sự khác biệt liên quan đến cấu hình, nhưng không biến nó thành kết luận phổ quát. Tránh diễn đạt kiểu “codec X luôn tốt hơn” nếu không nêu tiêu chí như dung lượng ở chất lượng cảm nhận tương đương, độ trễ mã hóa hay mức tương thích.

Đối với trang phát trực tiếp, trình duyệt có thể nhận các biến thể nội dung khác nhau tùy môi trường. Người xem không nên tự suy đoán bên cung cấp đang dùng codec nào nếu không có thông tin công khai hoặc dữ liệu đo được. Có thể tìm hiểu lịch thi đấu thể thao trên KLIVE như một lựa chọn xem nội dung, nhưng thông tin chung về codec trong bài này không xác nhận cấu hình kỹ thuật hay cam kết tương thích của nền tảng.

Một ghi chú chẩn đoán hữu ích nên có gì

Hãy mô tả triệu chứng bằng thời điểm và hành động cụ thể: video đứng ở màn hình tải, có tiếng nhưng không hình, hay phát được một lúc rồi dừng. Ghi lại tên trình duyệt và phiên bản, loại thiết bị, hệ điều hành, trạng thái mạng và việc lỗi có tái hiện sau khi tải lại hay không. Nếu có mã lỗi hoặc thông tin codec, giữ nguyên văn bản thay vì diễn giải thành nguyên nhân chắc chắn.

Thông tin tối thiểu hữu ích gồm cách tái hiện, phạm vi ảnh hưởng, thay đổi gần đây và kết quả của một phép thử đối chứng. Tránh gửi dữ liệu cá nhân hoặc liên kết riêng tư khi chia sẻ báo lỗi. Nếu vấn đề chỉ có ở một mạng, thử mạng khác khi an toàn và được phép; nếu chỉ có ở một trình duyệt, cập nhật hoặc thử cửa sổ sạch có thể giúp khoanh vùng tiện ích mở rộng. Mỗi bước là một phép thử, không phải bảo đảm sửa được mọi sự cố.

Tóm lại, profile và level giúp mô tả yêu cầu giải mã chi tiết hơn tên codec, nhưng khả năng phát là kết quả của cả chuỗi tương thích. Thu thập thông tin theo lớp, thay đổi từng yếu tố và giới hạn kết luận vào đúng thiết bị, tệp, trình duyệt đã thử sẽ cho chẩn đoán đáng tin hơn việc gán lỗi cho một nhãn codec.

Nguồn tham khảo

  1. MDN — Web video codec guide

Câu hỏi thường gặp

Profile codec có phải là phiên bản mới hơn của codec không?

Không. Profile là tập tính năng trong một cấu hình mã hóa thuộc họ codec; nó không nhất thiết biểu thị phiên bản mới hơn hay chất lượng cao hơn.

Level cao hơn có luôn cho hình ảnh đẹp hơn không?

Không. Level mô tả những giới hạn năng lực giải mã liên quan đến thông số luồng, không phải thang điểm chất lượng hình ảnh.

Trình duyệt báo hỗ trợ codec thì mọi video dùng codec đó đều phát được chứ?

Không chắc. Còn cần xét profile, level, container, thông số video và khả năng của hệ điều hành, thiết bị cũng như đường phân phối.

Có thể từ bài viết này biết KLIVE dùng codec nào không?

Không. Bài viết giải thích nguyên lý tương thích chung; không có dữ liệu được dẫn ở đây để xác nhận codec KLIVE sử dụng.