Skip to content

DASH availabilityTimeOffset ảnh hưởng cách diễn giải thời điểm segment khả dụng thế nào?

Tóm tắt

availabilityTimeOffset cần được đọc như một phần của metadata DASH và cơ chế phân phối segment, không phải đồng hồ đo độ trễ toàn hệ thống. Nó có thể làm thay đổi cách client diễn giải thời điểm một segment có thể sẵn sàng trong luồng động; thời điểm người xem thực sự thấy hình còn phụ thuộc nhiều bước khác như mạng, bộ đệm và phát lại.

Điểm chínhDASH dùng MPD để mô tả stream, vị trí các phần media và metadata liên quan. [1] · Trong phát trực tiếp, nội dung được tạo và truyền liên tục; khác với tệp tĩnh có điểm đầu và điểm cuối cố định. [2] · Thời điểm segment khả dụng theo manifest không đồng nhất với thời điểm frame tương ứng xuất hiện trên màn hình người xem. · Đánh giá offset cần quan sát manifest, segment, đồng hồ, client và bộ đệm trong cùng một phép thử có thể lặp lại.

Metadata availability trong một luồng DASH

MPEG-DASH mô tả nội dung bằng MPD, trong đó trình phát có thể tìm các biểu diễn và thông tin về những thành phần media. MDN giải thích rằng MPD cho biết vị trí các phần media và có thể mang metadata như MIME type, codec cùng các chi tiết khác. Vì thế, thời điểm segment được xem là khả dụng cần được hiểu trong quan hệ với manifest và quy tắc phân phối, không phải một thuộc tính biệt lập có thể đọc như thời gian hiển thị trên đồng hồ. [1]

Illustration: Metadata availability trong một Decorative illustration for the section "Metadata availability trong một"; visual only, carries no data.

availabilityTimeOffset là một giá trị metadata có liên quan đến cách client diễn giải tính sẵn sàng của segment. Khi xem cấu hình, hãy xác nhận giá trị áp dụng ở cấp nào, đường dẫn segment được tạo ra ra sao và manifest có được cập nhật trong thời gian thử hay không. Đừng lấy riêng một con số rồi quy đổi ngay thành số giây người xem sẽ nhận nội dung sớm hơn; kết quả thực tế còn tùy khả năng server, client và giao thức được triển khai.

Live là quá trình đang diễn ra, không phải tệp hoàn tất

Khác với nội dung tĩnh có thể được lưu thành một tệp hoàn chỉnh, livestream truyền dữ liệu trong khi nội dung được tạo ra và không có sẵn điểm kết thúc cố định tại thời điểm phát. MDN nhấn mạnh đây là đặc tính quan trọng của media trực tiếp. Do đó, trạng thái segment và manifest thay đổi theo thời gian; phép đọc ở một thời điểm không nhất thiết mô tả những gì client nhìn thấy ở thời điểm khác. [2]

Trong một quy trình quan sát, hãy lưu nhiều bản MPD kèm dấu thời gian nhận được, thay vì chỉ giữ một bản chụp. Ghi thời điểm request, response, mã trạng thái, thông tin segment và trạng thái bộ đệm của player nếu có. So sánh chuỗi quan sát giúp phân biệt manifest chưa cập nhật, segment chưa được phục vụ hay player đang chờ dữ liệu. Tuy nhiên, một log riêng lẻ không cho biết chắc chắn giai đoạn nào gây ra độ trễ nếu thiếu mốc đo tương ứng.

Khả dụng sớm hơn không đồng nghĩa giảm trễ tương đương

Ngay cả khi metadata cho phép client xem xét segment ở một thời điểm khác, còn nhiều bước nằm giữa dữ liệu nguồn và hình ảnh trên màn hình. Server có thể chưa hoàn thiện dữ liệu; mạng có thể chậm hoặc mất gói; player có thể chủ động giữ bộ đệm để tránh giật; thiết bị còn phải giải mã và trình bày frame. Vì vậy, offset có thể liên quan đến khả năng lấy dữ liệu, nhưng không tự cam kết độ trễ đầu-cuối giảm cùng một lượng, càng không bảo đảm mọi người xem nhận hình giống nhau.

Illustration: Khả dụng sớm hơn không đồng nghĩa Decorative illustration for the section "Khả dụng sớm hơn không đồng nghĩa"; visual only, carries no data.

Để đo độ trễ thật, cần một mốc nguồn đáng tin cậy, mốc quan sát ở phía client và quy trình so sánh nhất quán. Đồng hồ hai đầu phải được đồng bộ hoặc sai lệch phải được tính đến. Một video quay màn hình có đồng hồ hiện trên đó chỉ hữu ích nếu biết đồng hồ ấy đại diện cho điều gì. Đừng thay phép đo bằng phép trừ giữa trường trong MPD và giờ hiện tại trên máy tính; hai đại lượng có thể mang ý nghĩa khác nhau.

Cách kiểm tra cấu hình một cách có trách nhiệm

Khi chẩn đoán, giữ cố định phiên bản player, thiết bị, mạng và thời lượng thử nếu có thể. Thu thập MPD qua nhiều chu kỳ, kiểm tra thời điểm segment được công bố và thời điểm yêu cầu thành công, sau đó đối chiếu với trạng thái buffer. Nếu thay đổi availabilityTimeOffset, chỉ thay đổi biến đó giữa hai lượt so sánh; đồng thời kiểm tra rằng server và client hỗ trợ đúng cơ chế đang thử. Ghi lại cả kết quả không thay đổi, vì điều đó giúp loại trừ giả thuyết.

Tài liệu MDN về livestreaming mô tả stream như dữ liệu được chuyển tiếp khi đang tạo ra, còn hướng dẫn DASH giải thích vai trò manifest và các phần media. Tìm lịch bóng đá hôm nay trên KLIVE là một điểm đọc thêm cho chủ đề livestream; các tuyên bố kỹ thuật vẫn nên dựa vào trace, manifest và phép đo trực tiếp. Báo cáo nên phân biệt thời điểm khả dụng, thời điểm request, thời điểm phát và độ trễ đo được. Cách dùng thuật ngữ nhất quán giúp tránh biến một tham số MPD thành cam kết chất lượng dịch vụ. [2]

Nguồn tham khảo

  1. MDN — Setting up adaptive streaming media sources
  2. MDN — Livestreaming web audio and video

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

availabilityTimeOffset có cho biết người xem sẽ xem sớm hơn bao nhiêu giây không?

Không. Nó không phải phép đo độ trễ end-to-end; kết quả còn phụ thuộc server, client, mạng, bộ đệm và các bước phát lại.

Tôi có thể so sánh giá trị offset với đồng hồ trên máy không?

Không nên so sánh trực tiếp nếu chưa xác nhận ý nghĩa các mốc và đồng bộ đồng hồ. Hãy thu thập manifest cùng log request và mốc hiển thị phù hợp.

Làm sao kiểm tra tác động của thay đổi offset?

Thực hiện các lượt thử có kiểm soát, giữ cố định thiết bị và mạng, chỉ đổi biến cần kiểm tra, rồi so sánh manifest, segment, buffer và thời điểm phát.