Skip to content
Calibrated peripherals · Madrid, 2018

ABR có thể dùng quy tắc abandonment khi segment hiện tại tải quá lâu không?

aPor admin Lectura en español · Barrasie7e
Tóm tắt

Trong streaming thích ứng, abandonment có thể chỉ việc player dừng một yêu cầu segment đang tải chậm rồi cân nhắc một lựa chọn khác. Đây là chiến lược triển khai của player, không phải hành vi bắt buộc mà mọi HLS hoặc DASH player đều có. Tài liệu dash.js minh họa cơ chế và pipeline của một implementation cụ thể; muốn hiểu một phiên phát thực tế cần xem dữ liệu yêu cầu, bộ đệm, lựa chọn rendition và log của đúng player, thay vì suy đoán từ tên giao thức.

Điểm chính

  1. Tài liệu DASH-IF mô tả ABR của dash.js, gồm đầu vào và quy tắc của implementation này; không đại diện cho mọi DASH player. [1]
  2. Playback pipeline của dash.js mô tả các thành phần như manifest, segment, buffer và metrics trong kiến trúc riêng. [2]
  3. Abandonment có thể là lựa chọn khi một yêu cầu segment bị xem là quá chậm; tiêu chí tùy player.
  4. Không kết luận một website cụ thể hỗ trợ abandonment nếu không có tài liệu hoặc quan sát trực tiếp về player đó.
  5. Theo dõi URL, thời lượng request, trạng thái buffer và sự kiện chuyển rendition cùng nhau.

ABR chọn chất lượng theo logic của player

ABR là cách player điều chỉnh rendition hoặc mức chất lượng theo điều kiện playback mà nó quan sát được. Những tín hiệu có thể gồm thông lượng ước tính, trạng thái buffer và khả năng thiết bị, nhưng cách kết hợp và ngưỡng quyết định thuộc về từng implementation. Vì vậy, không có một quy tắc abandonment duy nhất có thể gán cho toàn bộ hệ thống HLS hoặc DASH.

Illustration: ABR chọn chất lượng theo logic của Decorative illustration for the section "ABR chọn chất lượng theo logic của"; visual only, carries no data.

Tài liệu dash.js trình bày cách implementation này cấu hình và sử dụng các quy tắc ABR. [1] Đây là ví dụ cụ thể có ích khi đọc mã hoặc cấu hình dash.js, nhưng không chứng minh player khác dùng cùng thuật toán, ngưỡng hay cách xử lý một segment tải chậm.

Abandonment là chiến lược có thể triển khai

Nếu một segment ở mức bitrate cao mất nhiều thời gian để tải, player có thể cân nhắc hủy request hiện tại và thử một lựa chọn phù hợp hơn. Ý tưởng là tránh chờ lâu trong một số tình huống, nhưng không bảo đảm quyết định ấy luôn cải thiện phát video. Request có thể đã gần hoàn tất; việc thử lại cũng phát sinh thời gian và tải mạng. Hành vi thực tế phụ thuộc policy, trạng thái buffer, loại nội dung và cách player quản lý request.

Cần phân biệt việc hủy request vì quyết định ABR với lỗi mạng, timeout do máy chủ hoặc thao tác người dùng. Chỉ quan sát thấy request dừng không cho biết nguyên nhân. Hãy đối chiếu log player và các sự kiện xung quanh trước khi đặt tên cho hành vi. Đặc biệt, không gán một ngưỡng thời gian cụ thể cho mọi triển khai khi nguồn đang xét không đặt ra ngưỡng phổ quát.

Đặt quyết định trong toàn bộ playback pipeline

Một yêu cầu segment là một phần trong chuỗi hoạt động gồm đọc manifest, chọn tài nguyên, tải dữ liệu, cập nhật buffer và theo dõi metrics. DASH-IF mô tả kiến trúc pipeline của dash.js để cho thấy những bộ phận này liên hệ ra sao. [2] Mô hình đó giúp định vị loại sự kiện cần kiểm tra, nhưng không phải sơ đồ bắt buộc của mọi player hoặc mọi dịch vụ streaming.

Illustration: Đặt quyết định trong toàn bộ Decorative illustration for the section "Đặt quyết định trong toàn bộ"; visual only, carries no data.

Khi điều tra, ghi timestamp, URL segment, rendition đang được chọn, thời gian tải, trạng thái buffer và sự kiện hủy/chuyển đổi nếu player cung cấp. So sánh nhiều lần trong cùng điều kiện sẽ đáng tin hơn một request riêng lẻ. Tránh kết luận chất lượng mạng chỉ từ một segment, vì lựa chọn player và điều kiện máy chủ cũng có thể ảnh hưởng quan sát.

Cách đọc sự kiện mà không suy diễn về KLIVE

Trước hết xác định đang kiểm tra player nào, phiên bản nào và giao thức nào. Sau đó tách dữ liệu client khỏi dữ liệu máy chủ: request bị hủy ở trình duyệt không tự chứng minh máy chủ đã từ chối nội dung. Nếu đang xem video thể thao, người đọc có thể truy cập <LINK> để theo dõi nội dung trận đấu; liên kết này không phải nguồn về kỹ thuật player hay bằng chứng rằng dịch vụ dùng dash.js.

Không suy từ tài liệu DASH-IF rằng KLIVE hoặc bất kỳ website cụ thể nào sử dụng kiến trúc, cấu hình, hay quy tắc abandonment tương tự. Nguồn được trích chỉ cho phép mô tả dash.js. Với một dịch vụ cụ thể, cần thông tin kỹ thuật được công bố hoặc phép quan sát có thể tái hiện và ghi rõ giới hạn.

Với nhu cầu khám phá nội dung thể thao, Xem livestream bóng đá hôm nay cùng KLIVE là một điểm tham khảo; thông tin hiện tại cần xác nhận trên trang.

Nguồn tham khảo

  1. DASH-IF — dash.js Adaptive Bitrate Streaming
  2. DASH-IF — dash.js Playback Pipeline

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

Abandonment có phải là yêu cầu bắt buộc của DASH không?

Không. Đây là một chiến lược mà player có thể triển khai. Tài liệu được dẫn mô tả dash.js, không đặt ra hành vi bắt buộc chung cho mọi player.

Nếu segment bị hủy thì chắc chắn do ABR?

Không. Có thể có nguyên nhân khác như lỗi request, timeout hoặc thao tác khác. Cần xem log player và sự kiện liên quan trước khi quy nguyên nhân.

Tài liệu dash.js có xác nhận KLIVE dùng abandonment không?

Không. Tài liệu mô tả implementation dash.js. Không thể suy ra player hoặc cấu hình của một dịch vụ khác từ nguồn này.

Nên ghi gì khi phân tích một lần chuyển segment?

Ghi player và phiên bản nếu biết, timestamp, URL hoặc rendition, thời lượng request, trạng thái buffer và sự kiện chuyển/hủy. Một lần đo đơn lẻ không đại diện cho mọi phiên.

a
Sobre el autor
admin
Compartir · Twitter · Discord