M3U8 / HLS
Apple đã phát minh ra nó, mọi thiết bị Apple đều chơi nó và không ai trong số họ sẽ lưu nó.
Tệp .m3u8 là danh sách phát chứ không phải video: vài kilobyte văn bản liệt kê hàng nghìn phân đoạn nhỏ sẽ được tìm nạp theo thứ tự. Thiết kế đó là lý do tại sao HLS hoạt động hoàn hảo trên mọi thiết bị Apple và tại sao "lưu tệp này" lại tạo ra tài liệu văn bản. Tải xuống một tệp có nghĩa là tìm nạp mọi phân đoạn và xây dựng lại một tệp chưa từng tồn tại.
30 tháng 7, 2026
Tự mở được, không cần hỗ trợ
HLS là thông số kỹ thuật riêng của Apple và được hỗ trợ hạng nhất ở mọi nơi – Safari, AVPlayer, AirPlay. Tính năng không được hỗ trợ ở bất kỳ đâu trong hệ thống là chuyển luồng trực tiếp thành tệp trên đĩa. Chơi và giữ là những vấn đề hoàn toàn khác nhau.
Thông tin cơ bản
| Tên đầy đủ | HTTP Live Streaming; danh sách phát là một M3U dạng UTF-8 |
|---|---|
| Loại | Giao thức phát trực tuyến, được phân phối dưới dạng danh sách phát văn bản |
| Phần mở rộng | .m3u8 (danh sách phát), .ts hoặc .m4s (các phân đoạn nó trỏ tới) |
| Công bố | Năm 2009, bởi Apple; được tiêu chuẩn hóa thành RFC 8216 năm 2017 |
| Độ dài phân đoạn điển hình | 2 đến 10 giây mỗi đoạn — một giờ video là hàng trăm tới hàng nghìn tệp |
| Bảng kê khai chính và bảng kê khai media | Bảng chính liệt kê các mức chất lượng; mỗi mức đó trỏ tới một bảng kê khai media chứa các phân đoạn thực tế |
| Video bên trong các phân đoạn | H.264 hoặc HEVC, thỉnh thoảng là AV1 |
| Luồng trực tiếp | Danh sách phát được tìm nạp lại mỗi vài giây và lớn dần khi buổi phát sóng tiếp tục |
Một mục lục, không phải một cuốn sách
Mở một tệp .m3u8 trong trình soạn thảo văn bản và bạn sẽ thấy vài chục dòng: một header, vài tham số, và một danh sách dài các địa chỉ. Đó là toàn bộ tệp. Video nằm ở nơi khác, bị cắt thành các phân đoạn vài giây mỗi đoạn, nằm trên máy chủ dưới dạng hàng nghìn tệp nhỏ riêng biệt.
Trình phát đọc danh sách, tìm nạp vài phân đoạn đầu tiên, bắt đầu phát, và tiếp tục tìm nạp trước một bước so với vị trí đang phát. Khi kết nối của bạn chậm lại, nó chuyển sang một biến thể chất lượng thấp hơn được liệt kê trong bảng kê khai chính — một tập hợp phân đoạn khác, ở tốc độ bit khác — và làm điều đó giữa các phân đoạn để bạn thấy chất lượng thay đổi chứ không phải một khoảng dừng. Việc chuyển đổi thích ứng này chính là lý do định dạng này chiến thắng.
Nó cũng giải thích một điều khiến nhiều người ngạc nhiên: không có một tệp duy nhất nào để sở hữu. Bộ phim bạn đang xem không tồn tại như một đối tượng ở bất cứ đâu. Nó là hàng nghìn mảnh ghép và một tập hợp các chỉ dẫn.
Tại sao lưu nó lại cho bạn một tập tin văn bản
Bởi vì đó chính xác là những gì bạn đã lưu. Trình duyệt yêu cầu địa chỉ bạn đưa cho nó, nhận về bốn kilobyte danh sách phát, và ghi chúng ra đĩa. Mọi thứ bạn thực sự đã xem đến qua hàng nghìn yêu cầu riêng biệt mà thao tác lưu hoàn toàn không hay biết.
Tải HLS đúng cách nghĩa là làm những gì trình phát làm, nhưng ghi ra đĩa: đọc danh sách phát, chọn một biến thể chất lượng, tìm nạp từng phân đoạn theo đúng thứ tự, rồi khâu chúng lại thành một vùng chứa duy nhất. Bước cuối cùng đó gọi là remux — video và âm thanh không bị mã hóa lại, chỉ được ghi lại vào một MP4 duy nhất với chỉ mục đúng đắn để kết quả có thể tua được.
Hai điều khiến việc này khó hơn vẻ ngoài của nó. Địa chỉ phân đoạn thường mang tính tương đối và thay đổi theo từng phiên, nên một danh sách được tìm nạp một giờ trước có thể đã chết. Và các luồng thường được mã hóa bằng một khóa được tham chiếu trong danh sách phát, được phân phối riêng, và được luân chuyển trong lúc phát.
Đưa một cái vào thiết bị
Chỉ dành cho các luồng bạn có quyền giữ - bản ghi của riêng bạn, đăng ký IPTV của riêng bạn, đài truyền hình cung cấp bản tải xuống. Phần tiếp theo là cách cơ chế hoạt động, không được phép trỏ nó vào bất cứ đâu.
- Hãy để công cụ tải xuống xử lý các phân đoạn
Tìm nạp một nghìn tệp và trộn lại chúng chính xác là công việc mà trình tải xuống của FoxDL thực hiện với nguồn HLS: nó duyệt danh sách phát, kéo các phân đoạn song song và ghi một MP4 để lọc như một tệp bình thường. Những gì đến là một tập tin, không phải một thư mục gồm nhiều phần.
- Lấy tệp trực tiếp khi có
Nhiều trang web phục vụ cả HLS và MP4 lũy tiến đơn giản. MP4 là một yêu cầu, một tệp và không cần phải xây dựng lại — luôn là lựa chọn tốt hơn khi được cung cấp.
- Chấp nhận rằng một số không thể giữ được
Các luồng được bảo vệ bằng DRM — FairPlay, Widevine — được mã hóa nối đầu và không thể tải xuống theo thiết kế. Không có công cụ nào có thể thay đổi điều đó và người tuyên bố là đang nói dối về điều gì đó.
Lỗi tải xuống HLS ở đâu
Các phân đoạn được nối mà không cần làm lại sẽ tạo ra một tệp có thể phát mà không có chỉ mục. Nó chơi từ đầu và không nhảy đến đâu cả. Remuxing ghi chỉ mục sửa nó.
Danh sách phát trực tiếp không có hồi kết — nó không ngừng phát triển. Tải xuống một bản đang ghi và nó sẽ dừng khi bạn dừng chứ không phải khi tệp kết thúc.
Địa chỉ danh sách phát thường được ký và giới hạn thời gian. Một .m3u8 được lưu sáng nay thường không có gì vào buổi chiều.
Câu hỏi về định dạng này
Nguồn của những thông tin này
- RFC 8216 — HTTP Live Streaming IETF
- HTTP Live Streaming Apple Developer
Định dạng liên quan
Thư viện của bạn, cuối cùng cũng ở một nơi.
Tải miễn phí. Không tài khoản, không đăng ký, không phải giao nộp thông tin gì.