Phát Bitrate Thích Ứng (ABR)
Phát bitrate thích ứng là kỹ thuật trong đó một video được mã hóa đồng thời ở nhiều độ phân giải/bitrate, và player chọn biến thể phù hợp nhất với điều kiện mạng hiện tại. Việc chuyển chất lượng diễn ra tại ranh giới giữa các phân đoạn — thường người xem không nhận ra.
Vấn đề ABR giải quyết
Trước 2010, video được phục vụ dưới dạng một file bitrate cố định. Nếu kết nối quá chậm, bạn liên tục bị buffer. Nếu bạn có cáp quang, bạn vẫn xem cùng chất lượng thấp như mọi người. Cả hai phía đều bị “lệch”.
ABR khắc phục điều này. Encoder tạo ra một ladder các biến thể — thường 360p / 540p / 720p / 1080p / 4K — và player chọn biến thể khớp với băng thông thực. Khi băng thông đổi (ví dụ vào hầm trên di động), player tụt xuống biến thể thấp rồi quay lại sau.
Player quyết định thế nào
- Player tải playlist chính liệt kê tất cả biến thể và băng thông yêu cầu.
- Player đo thời gian tải phân đoạn đầu tiên.
- Tính throughput (băng thông).
- Nếu throughput duy trì vượt yêu cầu của biến thể cao hơn kế tiếp với biên độ đủ, chuyển lên ở ranh giới phân đoạn tiếp theo.
- Nếu việc tải bị nghẽn hoặc buffer xuống dưới ngưỡng, tụt xuống ngay.
Thuật toán quyết định đôi khi được gọi là ABR logic và khác nhau giữa các player (HLS.js, Shaka Player, ExoPlayer, AVPlayer đều có heuristic riêng).
Vì sao là chuẩn hiện nay
- Băng thông di động dao động — đang lái xe, trong thang máy, dưới hầm
- Mạng dùng chung — thành viên trong nhà bắt đầu tải giữa lúc đang xem
- CDN edge biến động — các edge khác nhau có uplink khác nhau
- Chống bỏ giữa chừng — mỗi lần buffer = mất người xem
ABR + mã hóa
Mã hóa (AES-128) áp dụng cho từng phân đoạn, nghĩa là mã hóa trong suốt với ABR. Player chuyển biến thể và giải mã các phân đoạn của biến thể mới bằng cùng cơ chế phân phối khóa. AVCaption xoay khóa theo lô, hoạt động liền mạch khi chuyển biến thể.