M3U8 là playlist văn bản UTF-8 mà giao thức HLS (HTTP Live Streaming) sử dụng. Bản thân tệp không chứa khung hình video, mà là một manifest liệt kê URL của các segment video (.ts hoặc .m4s), thời lượng từng segment và các biến thể bitrate khả dụng. Trình phát đọc .m3u8, lấy lần lượt các segment và ghép chúng lại trong thời gian thực thành một luồng video phát được — đây chính là cơ chế cốt lõi đằng sau YouTube, Netflix, Twitch, Apple TV+ và hầu hết các dịch vụ phát trực tuyến lớn vào năm 2026.
Bạn đã bao giờ cố lưu một video từ một trang phát trực tuyến và kết thúc với hàng trăm tệp .ts nhỏ thay vì một .mp4 gọn gàng? Hoặc mở tab Network trong trình duyệt của bạn, mong đợi một URL tải xuống sạch sẽ, và thay vào đó tìm thấy một luồng vô tận các đoạn hai giây đổ vào? Bạn không làm gì sai. Bạn đang xem HLS — giao thức cung cấp hầu hết video phát trực tuyến trên web hiện đại — và HLS không vận chuyển video dưới dạng tệp đơn lẻ. Nó vận chuyển chúng dưới dạng công thức cộng với các bộ phận.
Công thức là một tệp văn bản nhỏ gọi là playlist .m3u8. Các bộ phận là các segment video ngắn, có thể giải mã độc lập mà trình phát của bạn ghép lại trong thời gian thực. HLS do Apple tạo ra vào năm 2009 cho iPhone đời đầu và được tiêu chuẩn hóa là RFC 8216; ngày nay hầu hết các trình duyệt, thiết bị di động và TV lớn đều hỗ trợ HLS gốc.
Hướng dẫn này đi qua những gì một .m3u8 thực sự chứa, tại sao các dịch vụ phát trực tuyến đã chọn thiết kế này, cách các segment .ts và fMP4 khớp với nhau, các nền tảng nào sử dụng HLS vào năm 2026, và điều gì xảy ra khi bạn cố lưu một trong các luồng này vào ổ đĩa.
Điểm Chính {#key-takeaways}
- HLS là một giao thức phát trực tuyến, không phải một định dạng tệp. Nó cung cấp video dưới dạng một playlist (
.m3u8) cộng với các segment ngắn (.tshoặc fragmented MP4) qua HTTP thông thường. .m3u8là chỉ mục, không phải video. Lưu một mình tệp.m3u8cho bạn một công thức không có nguyên liệu.- Apple đã tạo ra HLS vào năm 2009 cho iPhone và tiêu chuẩn hóa nó là RFC 8216 vào năm 2017. Nó hiện là bắt buộc trên iOS/Safari và được hỗ trợ gần như phổ biến ở những nơi khác.
- Segment dài 2–10 giây mỗi cái — đủ ngắn để chuyển đổi chất lượng giữa chúng, đủ dài để giữ chi phí HTTP hợp lý.
- Master playlist liệt kê các biến thể; media playlist liệt kê các segment. Trình phát đọc master, chọn một biến thể, sau đó tải media playlist của biến thể đó.
- Các segment
.tsđang được thay thế bởi fragmented MP4 (CMAF), để cùng một tệp có thể phục vụ các trình phát HLS và DASH từ một origin. - Hầu hết phát trực tuyến hiện đại nằm trên HLS hoặc DASH, thường là cả hai cùng lúc — bao gồm YouTube, Netflix, Disney+, Twitch, Apple TV+, và Cloudflare Stream.
M3U8 vs MP4: So Sánh Khác Biệt Cốt Lõi
Phần lớn mọi người gặp .m3u8 lần đầu khi cố tải video xuống nhưng thay vì tệp .mp4 quen thuộc, lại nhận được một tệp văn bản nhỏ. Hai định dạng này thường xuất hiện cùng quy trình nhưng về bản chất là hai loại khác hẳn — một bên là playlist (manifest), bên kia là container. Bảng sau tổng hợp các khác biệt được tìm kiếm nhiều nhất trong thực tế.
| Tiêu chí | M3U8 (playlist HLS) | MP4 (container video) |
|---|---|---|
| Bản chất | Playlist văn bản UTF-8 (manifest) | Container nhị phân tự chứa video |
| Cách lưu | Một tệp .m3u8 + hàng chục đến hàng trăm segment .ts/.m4s | Một tệp .mp4 duy nhất |
| Kích thước | Manifest chỉ vài KB; tổng segment tương đương MP4 cùng chất lượng | Toàn bộ video gói trong một tệp |
| Đổi chất lượng | Hỗ trợ adaptive bitrate (chuyển biến thể tức thì) | Cố định một chất lượng duy nhất |
| Phát trực tiếp | Hỗ trợ gốc (manifest có thể thêm segment mới động) | Không phù hợp với live |
| Tua/Seek | Tua tức thì theo biên segment | Yêu cầu máy chủ hỗ trợ HTTP Range |
| Mã hoá | Hỗ trợ AES-128 cho segment và các lớp DRM như FairPlay/Widevine | Mặc định không mã hoá; có thể bọc DRM riêng |
| Yêu cầu trình phát | Cần trình phát hỗ trợ HLS (Safari, VLC, IINA, hls.js…) | Hầu như mọi trình phát đều phát được |
| Dùng điển hình | Phát online trên Netflix, YouTube, Twitch, Apple TV+ | Phát máy local, tải xuống, dựng, đính kèm email |
| Để phát offline | Phải ghép toàn bộ segment theo thứ tự playlist thành một MP4 | Đã sẵn sàng là tệp có thể chia sẻ |
Tóm tắt một câu: M3U8 là “mục lục”, còn MP4 là “tệp thành phẩm”. Khi xem online trình duyệt nhận manifest M3U8 và kéo segment theo nhu cầu. Khi muốn lưu trữ lâu dài hoặc chia sẻ cho bạn bè, người dùng thường kết thúc bằng việc ghép các segment trở lại thành MP4.
Giải Thích Đơn Giản
Quên các giao thức trong giây lát. Hãy tưởng tượng một đạo diễn cần vận chuyển một bộ phim đã hoàn thành đến những người xem trên toàn thế giới qua internet không đáng tin cậy. Gửi một MP4 khổng lồ là không khả thi: nếu kết nối của người xem bị rớt giữa quá trình tải xuống, họ trở về số không, và không có cách nào để chuyển đổi chất lượng mà không cần tải lại. Vì vậy, thay vào đó, đạo diễn cắt bộ phim thành hàng trăm clip 6 giây và viết một playlist được đánh số nói “phát clip 001, sau đó 002, sau đó 003…” Trình phát của người xem tải xuống playlist, lấy vài clip đầu tiên, và bắt đầu phát trong khi phần còn lại trôi vào phía sau. Nếu kết nối chậm lại, trình phát chuyển sang phiên bản chất lượng thấp hơn của clip tiếp theo mà không bỏ lỡ một khung hình.
Đó là HLS trong một câu: một bộ phim được cắt thành các clip ngắn, cộng với một tệp playlist .m3u8 nói cho trình phát biết clip nào sẽ phát tiếp theo.
Từ chỗ ngồi của người xem, thiết kế này giấu rất nhiều phép màu. Seek tức thì vì trình phát có thể nhảy đến bất kỳ segment nào bao phủ dấu thời gian mục tiêu thay vì phát qua toàn bộ tệp. Thay đổi chất lượng mượt mà vì trình phát có thể chọn một biến thể khác cho segment tiếp theo mà không cần khởi động lại quá trình phát. Đệm nhẹ nhàng vì trình phát chỉ cần giữ vài segment phía trước — thường là 10 đến 30 giây — thay vì tải xuống trước các đoạn lớn của tệp. Và phát trực tiếp hoạt động được vì các segment mới có thể được nối thêm vào playlist khi nhà phát sóng tạo ra chúng, với trình phát thăm dò .m3u8 cho các mục mới sau mỗi vài giây.
Nếu bạn từng tự hỏi tại sao một luồng YouTube hoặc Netflix tự nó lấy lại mượt mà khi Wi-Fi của bạn dao động, trong khi một bản tải xuống MP4 trực tiếp từ một trang web ngẫu nhiên dừng lại và chết, đây là lý do. Toàn bộ stack được thiết kế xung quanh giả định rằng internet lộn xộn và các kết nối đến và đi. Một cuộc thảo luận dài về cách các trình phát thích ứng chất lượng trên đường nằm trong bài viết riêng của nó; ở đây, chỉ nhận thấy rằng thiết kế segment-và-playlist là thứ làm cho sự thích ứng đó có thể thực hiện được.
HLS Thực Sự Hoạt Động Như Thế Nào
Một luồng HLS là hai lớp playlist cộng với một đống segment, tất cả được phục vụ qua HTTP thông thường. Không có gì kỳ lạ, không có giao thức tùy chỉnh — trình duyệt của bạn đã biết cách làm mọi phần của điều này.
Master Playlist
Điều đầu tiên mà một trình phát lấy là master playlist. Đó là một tệp văn bản nhỏ với phần mở rộng .m3u8 liệt kê mọi biến thể có sẵn của luồng — thường là các mức chất lượng khác nhau — cùng với băng thông và độ phân giải của mỗi cái. Đây là cách một cái thực trông như, được cắt gọn nhẹ:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2"
1080p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2800000,RESOLUTION=1280x720,CODECS="avc1.4d401f,mp4a.40.2"
720p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1400000,RESOLUTION=854x480,CODECS="avc1.4d401e,mp4a.40.2"
480p/index.m3u8
Dòng #EXTM3U đánh dấu tệp là một playlist M3U mở rộng. #EXT-X-VERSION:6 khai báo phiên bản giao thức HLS nào đang được sử dụng. Mỗi khối #EXT-X-STREAM-INF mô tả một biến thể: bitrate, độ phân giải, và chuỗi codec của nó, theo sau là một URL trỏ đến playlist thứ hai cho biến thể đó. Trình phát đọc tệp này, ước tính băng thông của bạn, và chọn biến thể mà nó nghĩ bạn có thể duy trì.
Media Playlist
Khi trình phát chọn một biến thể, nó lấy media playlist của biến thể đó. Đây là nơi các URL segment thực tế nằm:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6.000,
segment000.ts
#EXTINF:6.000,
segment001.ts
#EXTINF:6.000,
segment002.ts
#EXT-X-ENDLIST
#EXT-X-TARGETDURATION:6 nói không segment nào dài hơn 6 giây. Mỗi dòng #EXTINF:6.000, công bố thời lượng chính xác của segment, theo sau là URL segment. #EXT-X-ENDLIST nói với trình phát đây là một luồng video-theo-yêu-cầu — sẽ không có thêm segment nào được thêm vào. Các luồng trực tiếp bỏ qua #EXT-X-ENDLIST, và trình phát yêu cầu lại playlist này sau mỗi vài giây để phát hiện các segment mới.
Segment: .ts và fMP4
Segment là các đoạn ngắn của video và âm thanh — thường là 2 đến 10 giây — được cắt trên ranh giới khung hình khóa để trình phát có thể bắt đầu giải mã từ đầu bất kỳ segment nào. Khi playlist tuyên bố #EXT-X-INDEPENDENT-SEGMENTS, mọi segment được đảm bảo có thể phát một mình; nếu không có cờ đó, các segment hạ nguồn có thể phụ thuộc vào dữ liệu được mang trong các segment trước đó. Trong lịch sử, các segment là các tệp MPEG-2 Transport Stream với phần mở rộng .ts — cùng định dạng container vận chuyển TV vệ tinh và cáp. MPEG-TS được thiết kế cho các kênh phát sóng ồn ào, nên nó mạnh mẽ chống lại sự hư hỏng một phần, và bất kỳ trình phát nào có thể giải mã các gói .ts đều có thể phát một segment HLS.
Độ dài segment điển hình là 2 đến 10 giây. Segment ngắn hơn nghĩa là độ trễ thấp hơn và chuyển đổi bitrate linh hoạt hơn, nhưng nhiều yêu cầu HTTP hơn và nhiều chi phí hơn mỗi phút video. Segment dài hơn nghĩa là hiệu quả nén tốt hơn và ít yêu cầu hơn, nhưng phản ứng chậm hơn với thay đổi băng thông. Đặc tả gốc của Apple đề xuất segment 10 giây; các dịch vụ hiện đại thường ổn định ở phạm vi 2–6 giây.
Kể từ năm 2016, ngành công nghiệp đã di chuyển từ .ts sang các segment fragmented MP4 — cụ thể là Common Media Application Format (CMAF), được tiêu chuẩn hóa là ISO/IEC 23000-19. Các segment CMAF sử dụng cùng phân mảnh MP4 như MPEG-DASH, nghĩa là một tập tệp duy nhất trên một CDN có thể phục vụ cả các trình phát HLS và DASH. Đây là một chiến thắng chi phí đáng kể cho các dịch vụ phát trực tuyến: một lần mã hóa, một tập byte, hai giao thức. Các luồng HLS hiện đại từ YouTube, Netflix, và Apple gần như tất cả đều là CMAF chứ không phải MPEG-TS cũ.
HTTP Từ Đầu Đến Cuối
“HTTP” trong HTTP Live Streaming là cao trào. Không có giao thức đặc biệt trên đường dây — mọi phần của HLS đi qua cùng các yêu cầu HTTPS mà trình duyệt của bạn dùng cho HTML và JPEG. CDN yêu thích điều này vì chúng đã được tối ưu hóa cho HTTP. Tường lửa cho phép nó vì không có gì trông bất thường. CDN có thể cache các segment phổ biến ở biên. Yêu cầu phạm vi, gzip, HTTP/2, HTTP/3, TLS — tất cả đều hoạt động miễn phí.
Đây cũng là lý do HLS đã thắng. Các giao thức phát trực tuyến trước đó như RTMP, RTSP, và MMS cần các cổng chuyên dụng, máy chủ stateful, và các quy tắc tường lửa đặc biệt. HLS chỉ trông như một trang web phục vụ rất nhiều tệp nhỏ.
Hầu hết người dùng không cần xử lý điều này thủ công — VidMost phân tích manifest .m3u8 và hợp nhất các segment thành một MP4 sạch trong nền.
Bạn Gặp HLS Ở Đâu Trong Thực Tế
HLS có mặt trên hầu như mọi dịch vụ phát trực tuyến lớn vào năm 2026, thường cùng với DASH. Apple đã phát minh ra HLS vào năm 2009 cụ thể để cung cấp video cho iPhone gốc — thiết bị không thể xử lý tốt việc tải xuống tuần tự qua mạng di động, và Apple muốn một định dạng phát trực tuyến chỉ trông giống như lưu lượng HTTP đối với các nhà mạng. Giao thức đã trở thành mặc định cho một lát cắt khổng lồ của internet kể từ đó.
- Các dịch vụ riêng của Apple chỉ dùng HLS. Apple TV+, iTunes Store, podcast trên Apple Podcasts, và mọi video phát trên Safari, iOS, hoặc tvOS đều nằm trên HLS. Các nền tảng Apple không vận chuyển bộ giải mã MPEG-DASH tích hợp, vì vậy bất kỳ dịch vụ nào muốn phát trên iPhone phải cung cấp feed HLS.
- YouTube sử dụng MPEG-DASH làm giao thức chính trên web và Android, nhưng vận chuyển HLS cho iOS, Safari, AirPlay, và hầu hết các ứng dụng TV. Mở công cụ phát triển trình duyệt trên YouTube trong Safari và bạn sẽ thấy các yêu cầu
.m3u8; trong Chrome trên Android, bạn sẽ thấy các yêu cầu DASH.mpdthay vào đó. - Netflix, Disney+, Hulu, Max, và Amazon Prime Video đều dùng kết hợp. Các ứng dụng TV thông minh và console của họ thường dùng HLS với DRM FairPlay hoặc PlayReady; các trình phát web của họ thường chuyển sang DASH với Widevine. Cùng nội dung, giao thức khác nhau cho mỗi client.
- Twitch đã chạy trên HLS kể từ năm 2014 khi nó bỏ stack RTMP cũ ở phía phát. Mọi luồng trực tiếp và mọi VOD trên Twitch đều là HLS dưới mui xe.
- Các nền tảng cam trực tiếp và sáng tạo nội dung — Bigo Live, Chaturbate, OnlyFans live, các luồng Fansly — hầu như đều sử dụng HLS cho phát phía trình duyệt vì nó hoạt động không cần plugin và chịu được các kết nối không đáng tin cậy.
- Các nhà cung cấp video được lưu trữ như Vimeo, Mux, JW Player, và Cloudflare Stream cung cấp HLS theo mặc định. Nếu một trang web nhúng iframe Vimeo hoặc Mux, video bên dưới gần như chắc chắn là HLS.
- Các đài phát sóng thể thao và tin tức — ESPN, BBC iPlayer, DAZN, Sling TV — tất cả đều dựa vào HLS để phân phối sự kiện trực tiếp, thường với DRM được xếp lớp lên trên.
HLS đã thoát khỏi nguồn gốc iOS của nó vì nó giải quyết các vấn đề thực sự cho mọi người, không chỉ Apple. Đến lúc DASH ra mắt vào năm 2012, HLS đã có hỗ trợ CDN rộng rãi, các trình phát hoạt động trong thực tế, và đà phát triển. Ngày nay hai giao thức cùng tồn tại; một dịch vụ phát trực tuyến chu đáo hỗ trợ cả hai, và nhiều dịch vụ vận chuyển cùng các segment CMAF dưới cả hai định dạng manifest. Để biết thêm về cách DASH so với HLS chi tiết, bài viết anh em đề cập nó từ đầu đến cuối.
Điều Này Có Ý Nghĩa Gì Nếu Bạn Muốn Lưu Video
Biết HLS hoạt động như thế nào làm cho một vấn đề thực tế trở nên rõ ràng đột ngột: bạn không thể chỉ “nhấp chuột phải → Save As” để tải xuống một video HLS. Một vài lý do là cơ học, một vài là tinh tế, và một hoặc hai sẽ làm bạn bất ngờ.
- Save As của trình duyệt chỉ lưu
.m3u8..m3u8là những gì trang thực sự tải xuống khi bắt đầu phát — một tệp văn bản nhỏ. Lưu nó cho bạn công thức, không phải thức ăn. Mở tệp đó trong VLC đôi khi hoạt động (VLC sẽ theo các URL bên trong), nhưng chỉ khi phiên gốc vẫn còn hiệu lực và các URL chưa hết hạn. - Mỗi segment là một yêu cầu HTTP riêng biệt. Một video 30 phút với các segment 6 giây là 300 lần tải xuống riêng biệt. Bạn sẽ cần liệt kê playlist, lấy mọi segment, và nối chúng theo đúng thứ tự trước khi chúng có thể phát được như một tệp duy nhất.
- Lựa chọn biến thể là một sự lựa chọn thực sự. Master playlist liệt kê nhiều chất lượng. Chọn sai sẽ cho bạn một bản sao 480p của một bộ phim đang phát trực tuyến ở 1080p. Lựa chọn đúng thường là biến thể có băng thông cao nhất mà bộ nhớ và sự kiên nhẫn của bạn có thể hấp thụ.
- HTTPS bảo vệ các byte trong quá trình vận chuyển, không phải các byte trên đĩa. Các URL segment hầu như luôn được phục vụ qua HTTPS, vì vậy một kẻ nghe trộm trên mạng không thể đọc những gì bạn đang phát trực tuyến. Nhưng khi một segment đến trình duyệt của bạn, nó là video văn bản thô — TLS không làm gì để ngăn chặn một công cụ đã có quyền truy cập vào phản hồi.
- HLS hỗ trợ mã hóa segment AES-128 như một lớp nội dung. Khi
.m3u8mang một thẻ#EXT-X-KEY, mỗi segment được mã hóa bằng AES-128 và playlist trỏ đến một URL khóa mà trình phát lấy qua HTTPS. Lưu các segment mà không có khóa và bạn có một thư mục văn bản mã hóa. Đây là mã hóa nội dung, tách biệt với bảo mật vận chuyển, và nó không có kiểm tra quyền nào được tích hợp — chính URL khóa là cổng. - DRM thương mại là một vấn đề khác. Các dịch vụ cao cấp như Netflix, Disney+, và Apple TV+ xếp lớp HLS với FairPlay (Apple), Widevine (Google), hoặc PlayReady (Microsoft). Mã hóa trên đường dây vẫn dựa trên AES, nhưng các khóa được phát hành bởi một máy chủ giấy phép chỉ sau khi trình phát chứng minh quyền trên một thiết bị đáng tin cậy, và việc giải mã xảy ra bên trong một mô-đun bảo mật được hỗ trợ bởi phần cứng để các khung hình không bao giờ chạm vào bộ nhớ ứng dụng. Xem Nội Dung Được Bảo Vệ Bởi DRM Là Gì? để biết toàn cảnh.
- Token và URL có chữ ký hết hạn. Nhiều URL
.m3u8và URL segment được ký bằng các token ngắn hạn hết hạn trong vài phút. Đến lúc bạn đã viết script tải xuống thủ công, một nửa các liên kết của bạn có thể đã chết.
Đây là nơi VidMost được xây dựng để tiếp quản. VidMost được thiết kế để sao lưu hợp pháp nội dung HLS mà bạn có quyền truy cập chính đáng — bản lưu trữ buổi livestream của chính bạn, các bài giảng có phí mà bạn đã mua, video có giấy phép tự do hoặc thuộc phạm vi công cộng, tài liệu đào tạo doanh nghiệp không có DRM thương mại, và các nội dung thuê bao trả phí mà điều khoản dịch vụ cho phép tải xuống. VidMost phân tích manifest .m3u8, chọn biến thể chất lượng cao nhất có sẵn, tải xuống mỗi segment song song từ cùng CDN mà trình duyệt của bạn đã nói chuyện, xử lý mã hóa AES-128 ở mức segment một cách tự động, và remux các segment thành một tệp MP4 sạch duy nhất khi hoàn tất. Các luồng được bảo vệ bởi DRM thương mại như FairPlay, Widevine hay PlayReady trên các dịch vụ cao cấp (Netflix, Disney+, Apple TV+) nằm ngoài phạm vi thiết kế của VidMost — vui lòng tuân thủ điều khoản dịch vụ của từng nền tảng và luật pháp tại nơi bạn cư trú. Với các trường hợp còn lại, trải nghiệm người dùng là “dán một URL hợp lệ, nhận một MP4” — lớp giao thức biến mất.
Những Hiểu Lầm Và Cạm Bẫy Phổ Biến
Một số ít hiểu lầm về HLS xuất hiện trong các chủ đề diễn đàn lặp đi lặp lại. Đáng để làm rõ.
- “.m3u8 không phải là tệp video.” Nó là chỉ mục. Video thực sự nằm trong các segment mà playlist tham chiếu. Nếu một công cụ đề nghị “tải xuống m3u8,” hãy hỏi liệu nó cũng lấy và hợp nhất các segment hay không — nếu không bạn có một tệp văn bản vô dụng.
- “Tệp .ts sẽ không phát trực tiếp trong hầu hết các trình phát.” Một segment đơn lẻ có thể phát vài giây trong VLC, nhưng toàn bộ video không phải là một chuỗi các tệp
.tstrong một thư mục — nó là một chuỗi mà mỗi cái phải được giải mã theo thứ tự và được ghép lại với nhau. Các trình phát không nói HLS sẽ tốt nhất là phát segment đầu tiên và dừng lại. - “HLS không phải lúc nào cũng có nghĩa là trực tiếp.” “HTTP Live Streaming” là một cái tên gây hiểu lầm vào năm 2026. HLS hoạt động tốt như nhau cho video theo yêu cầu: cùng playlist, cùng segment, chỉ với
#EXT-X-ENDLISTđánh dấu một luồng hữu hạn. Đại đa số nội dung danh mục Netflix, Disney+, và Apple TV+ là VOD HLS, không phải trực tiếp. - “Bitrate cao hơn không phải lúc nào cũng là chất lượng tốt hơn nếu kết nối của bạn bị rớt.” Một biến thể 10 Mbps trông tuyệt vời trên cáp quang và lắp bắp khổ sở trên một đường truyền di động 3 Mbps. Toàn bộ điểm của thiết kế thích ứng là trình phát chọn những gì kết nối của bạn có thể duy trì — ghi đè nó thủ công thường làm cho trải nghiệm tệ hơn, không tốt hơn.
- “Các công cụ tải xuống trình duyệt thường thất bại với HLS.” Các tiện ích mở rộng “video downloader” chung tìm các thẻ
<video src="...">trỏ vào tệp MP4. Các luồng HLS không phơi bày một URL như vậy; trình phát sử dụng Media Source Extensions để đưa các segment vào phần tử video theo cách lập trình. Đây chính là lý do tại sao các công cụ chuyên dụng phân tích manifest tồn tại.
Suy Nghĩ Kết Luận
HLS là hạ tầng im lặng dưới hầu hết video bạn xem. Nó hoạt động vì nó đã từ bỏ việc cố gắng thông minh về vận chuyển — không có giao thức tùy chỉnh, không có máy chủ đặc biệt, chỉ có các tệp văn bản .m3u8 và các segment .ts hoặc fMP4 được lấy qua cùng HTTP mà trình duyệt của bạn đã nói. Apple đã giải quyết một vấn đề điện thoại vào năm 2009 và vô tình xây dựng định dạng phát trực tuyến thống trị của hai thập kỷ tiếp theo.
Một khi bạn có thể nhận ra một yêu cầu .m3u8 trong tab mạng của trình duyệt và đọc một playlist, một lượng khổng lồ hành vi phát trực tuyến — các chuyển đổi chất lượng ngắn ngủi, seek tức thì, chỉ báo “đệm trước,” thư mục lạ của các tệp .ts mà bạn kết thúc với — ngừng là bí ẩn. Tất cả đều là cùng vòng lặp: lấy playlist, chọn biến thể, lấy segment, giải mã, lặp lại.
Nếu bạn muốn bỏ qua hoàn toàn lớp giao thức và chỉ lưu video, VidMost xử lý HLS, DASH, fMP4, và các luồng được bảo vệ bởi DRM.
Đọc thêm
- Video Trực Tuyến Thực Sự Phát Như Thế Nào — toàn bộ quy trình từ camera đến màn hình của bạn.
- MPEG-DASH so với HLS — khi nào mỗi giao thức thắng và tại sao hầu hết các dịch vụ phát trực tuyến đều cung cấp cả hai.
- Tại Sao Chất Lượng Video Thay Đổi Giữa Chừng — logic ABR bên trong mọi trình phát HLS và DASH.
- Container Video So Với Codec — thực sự có gì bên trong một
.mp4,.ts, hoặc.m4s. - Nội Dung Được Bảo Vệ Bởi DRM Là Gì? — cách Widevine, FairPlay, và PlayReady kiểm soát các biến thể được mã hóa mà bạn không thể chỉ lưu.