HLS Streaming — HTTP Live Streaming là gì và hoạt động ra sao

HLS Streaming

HLS (HTTP Live Streaming) là một giao thức phát video do Apple phát triển năm 2009 và hiện là chuẩn thống lĩnh để phát video trên web. Giao thức hoạt động bằng cách cắt video thành các phân đoạn (segment) nhỏ, liên tiếp (thường 2-10 giây mỗi phân đoạn) và truyền từng phân đoạn qua HTTP thông thường.

Cách hoạt động

  1. Encoder tạo ra nhiều biến thể (variant) của video ở các độ phân giải/bitrate khác nhau (360p, 720p, 1080p, v.v.).
  2. Mỗi biến thể được chia phân đoạn — cắt thành các đoạn có thời lượng cố định.
  3. Một playlist chính (file .m3u8) liệt kê tất cả biến thể và yêu cầu băng thông tương ứng.
  4. Mỗi biến thể có một media playlist liệt kê các phân đoạn theo thứ tự.
  5. Player tải playlist chính, chọn một biến thể, tải các phân đoạn tuần tự rồi ghép thành luồng phát liên tục.
  6. Player thích ứng — đo tốc độ tải và chuyển biến thể lên hoặc xuống tại ranh giới giữa các phân đoạn.

Vì sao HLS chiến thắng

  • Truyền qua HTTP — đi qua mọi tường lửa, mọi CDN, mọi trình duyệt. Không cần giao thức đặc biệt.
  • Bitrate thích ứng — chất lượng tự điều chỉnh theo điều kiện mạng một cách mượt mà.
  • Phân đoạn cache được — phân đoạn bất biến nên cache rất tốt tại biên CDN.
  • Hỗ trợ gốc — mọi trình duyệt lớn, mọi nền tảng TV, mọi hệ điều hành di động đều hỗ trợ HLS gốc hoặc qua thư viện (HLS.js cho Chrome/Firefox).
  • Thân thiện với mã hóa — phân đoạn có thể được mã hóa AES-128 ở mức phân đoạn, key được phục vụ riêng.

Các giải pháp thay thế

  • DASH (Dynamic Adaptive Streaming over HTTP) — tương tự HLS nhưng được chuẩn hóa qua MPEG. Linh hoạt codec hơn nhưng ít trình duyệt hỗ trợ sẵn hơn.
  • WebRTC — độ trễ dưới một giây, P2P hoặc qua SFU. Dùng cho tương tác trực tiếp (hội nghị) — không phù hợp VOD.
  • Tải tuần tự (chỉ MP4 qua HTTP) — đơn giản, không thích ứng, không có điều khiển luồng. Tốt cho clip ngắn, kém cho video dài.

Đuôi file

  • .m3u8 — file playlist (chính hoặc media)
  • .ts — phân đoạn MPEG-TS (cũ)
  • .m4s — phân đoạn MP4 phân mảnh (mới, HLS dùng từ 2017)

Trên AVCaption

Mọi video tải lên AVCaption đều được mã hóa thành HLS với mã hóa AES-128 đa khóa (multi-key). Player tự chọn HLS.js cho trình duyệt không phải Safari và HLS gốc trên Safari. Xem phát bitrate thích ứng để biết chi tiết.

Liên quan

← content.back_to_index