Quay lại Blog

Video Trực Tuyến Thực Sự Phát Như Thế Nào: Từ Cú Nhấp Đến Khung Hình

Hướng dẫn nền tảng về cách phát trực tuyến video hoạt động vào năm 2026 — từ camera đến bộ mã hóa đến manifest đến CDN đến trình phát — được giải thích từng bước, bằng tiếng Việt dễ hiểu.

By

Bạn nhấn phát trên một video YouTube và trong vòng một giây có gì đó xuất hiện trên màn hình của bạn. Điều gì đã xảy ra trong một giây đó? Một lượng cực kỳ phi thường, xét rằng video không nằm trên thiết bị của bạn, tệp bạn đang xem không tồn tại như một tệp đơn lẻ ở bất kỳ đâu, và các byte thắp sáng màn hình của bạn thậm chí không đến từ máy chủ của YouTube. Chúng đến từ một bộ nhớ cache ở đâu đó trong cùng khu vực đô thị với nhà bạn — một bản sao được tạo phòng khi bạn, hoặc một nghìn người xem khác, yêu cầu chính xác đoạn đó của chính xác bộ phim đó.

Đây là chuỗi sự kiện. Trình duyệt của bạn nói chuyện với một máy chủ trao cho nó một tệp văn bản nhỏ xíu mô tả video. Trình phát đọc tệp đó, chọn một trong các tùy chọn chất lượng, và bắt đầu yêu cầu CDN các đoạn ngắn của âm thanh và video — thường là hai đến sáu giây mỗi đoạn. Các đoạn đến qua cùng các kết nối HTTPS phục vụ các trang web thông thường. Trình phát giải mã chúng trên phần cứng mà điện thoại hoặc laptop của bạn đã có sẵn, và vẽ khung hình lên màn hình. Trong khi bạn xem đoạn đầu tiên, trình phát đã đang lấy ba đoạn tiếp theo. Nếu Wi-Fi của bạn dao động, nó âm thầm giảm xuống phiên bản chất lượng thấp hơn của đoạn tiếp theo để quá trình phát không bao giờ bị đứng. Toàn bộ vòng lặp đó — lấy manifest, lấy segment, giải mã, vẽ, đo lường, thích ứng — là thứ chạy vô hình đằng sau mọi video Netflix, YouTube, Twitch, Disney+, và TikTok trên web.

Đây là bài viết nền tảng cho loạt bài về phát trực tuyến của chúng tôi. Chúng ta sẽ đi qua toàn bộ quy trình, từ một camera ở một đầu đến một khung hình trên màn hình của bạn ở đầu kia, bằng tiếng Việt dễ hiểu. Chúng tôi sẽ đề cập đến các lớp kỹ thuật đủ sâu để chính xác nhưng không chìm đắm trong thuật ngữ chuyên môn, xem xét dịch vụ nào dùng tổ hợp các lớp này nào, và kết thúc bằng câu hỏi thực tế đã đưa nhiều độc giả đến đây ngay từ đầu: khi bạn đã xem video, bạn có thể giữ một bản sao không?

Phát trực tuyến video là việc giao video đến thiết bị của bạn dưới dạng một chuỗi liên tục các segment tệp ngắn được đánh số tuần tự được lấy qua HTTPS, được hướng dẫn bởi một tệp manifest nhỏ, được giải mã ngay khi đến, và bị loại bỏ ngay khi segment tiếp theo đang trên đường đi.

Điểm Chính {#key-takeaways}

  • Phát trực tuyến không phải là một giao thức đặc biệt — đó là một mẫu thiết kế thông minh trên nền HTTP thông thường. Manifest và segment chỉ là các tệp trên CDN.
  • Video bạn “xem” không tồn tại như một tệp đơn lẻ. Nó được tái tạo trong trình phát của bạn từ một manifest cộng với vài trăm segment nhỏ.
  • Mã hóa tạo ra nhiều biến thể bitrate của cùng nội dung. Trình phát chọn giữa chúng dựa trên các phép đo băng thông thời gian thực.
  • Hầu hết các segment đến từ một node CDN biên gần bạn, không phải từ máy chủ gốc. Cache biên là lý do phát trực tuyến cảm giác tức thì.
  • Phát trực tuyến bitrate thích ứng là lý do chất lượng âm thầm thay đổi giữa chừng — trình phát chuyển đổi biến thể giữa các segment để giữ bộ đệm khỏe mạnh.
  • Ba lớp mã hóa có thể xếp chồng độc lập: HTTPS cho vận chuyển, AES-128 cho nội dung segment, và DRM cho các luồng thương mại được kiểm soát bởi giấy phép.
  • HLS và DASH thống trị. HLS là đặc tả của Apple (RFC 8216, .m3u8); DASH là tiêu chuẩn ISO/IEC (23009-1, .mpd XML). Hầu hết các dịch vụ lớn đều cung cấp cả hai.
  • Lưu một luồng có nghĩa là phân tích manifest, lấy mọi segment, xử lý mã hóa, và remux — không phải nhấp chuột phải và Save As.

Giải Thích Đơn Giản

Hãy giả sử bạn đang vận chuyển một bộ phim đến một trăm triệu người xem trên khắp thế giới. Bộ phim cực lớn — một bộ phim 1080p H.264 dài 2 giờ là khoảng 4 đến 8 gigabyte — và người xem của bạn dùng mọi loại kết nối từ cáp quang gigabit đến 4G chập chờn trên một chuyến tàu đang di chuyển. Bạn không thể gửi cùng một tệp khổng lồ đến mọi người. Bạn thậm chí không thể gửi đúng tệp: người xem trên tàu cần một bản sao bitrate thấp, người xem dùng cáp quang muốn bản bitrate cao, và nếu người xem trên tàu chuyển sang Wi-Fi giữa phim, bạn cần đẩy họ lên mà không cần khởi động lại.

Mẫu thiết kế mà ngành công nghiệp đã thống nhất đơn giản đến mức nghe có vẻ chẳng có gì đặc biệt. Cắt bộ phim thành hàng trăm đoạn ngắn, mã hóa mỗi đoạn ở nhiều mức chất lượng, lưu trữ tất cả các đoạn trên các máy chủ trên khắp thế giới, và để trình phát của người xem quyết định đoạn nào sẽ phát tiếp theo. Vậy đó. Cái gọi là “phát trực tuyến” thực chất chỉ là các tệp trong các thư mục được lấy qua web theo một thứ tự cụ thể.

Đây là chu trình từ đầu này đến đầu kia:

  1. Một camera hoặc bộ kết xuất ghi lại các khung hình thô. Đối với trực tiếp, đây là một camera thực. Đối với video theo yêu cầu, đây là một tệp gốc hoàn chỉnh mà hãng phim giao.
  2. Một bộ mã hóa nén các khung hình thô thành một codec — H.264, H.265, hoặc AV1 cho video; AAC hoặc Opus cho âm thanh. Bộ mã hóa thường tạo ra một vài đầu ra ở các bitrate khác nhau từ một đầu vào.
  3. Một bộ đóng gói cắt các luồng đã mã hóa thành các segment ngắn và viết một manifest. Mỗi biến thể trở thành thư mục segment riêng của nó cộng với một manifest mỗi biến thể; các biến thể được liệt kê trong một manifest chính cấp trên cùng.
  4. Các segment và manifest được tải lên một origin và sao chép sang một CDN. Cloudflare, Akamai, Fastly, AWS CloudFront — bất kỳ CDN nào dịch vụ sử dụng — đều cache các tệp trên các node biên trên toàn thế giới.
  5. Bạn nhấn phát. Trình phát của bạn tải xuống manifest, chọn một biến thể, lấy các segment đầu tiên từ một node CDN biên gần đó, và bắt đầu giải mã.
  6. Trình phát giải mã từng segment và vẽ các khung hình lên màn hình của bạn, giữ một bộ đệm vài giây trước những gì bạn đang xem.
  7. Trình phát đo băng thông khi các segment đến và điều chỉnh biến thể giữa các segment để chất lượng khớp với kết nối thời gian thực của bạn.

Đó là toàn bộ quy trình. Không có gì khác đang xảy ra — không có máy chủ đặc biệt, không có giao thức độc quyền trên đường truyền, không có phép màu. Mỗi bước sử dụng các công cụ và định dạng mà bạn có thể viết một script chống lại nếu bạn đủ kiên nhẫn. Sự thông minh nằm ở thiết kế: mỗi segment đủ ngắn để chuyển đổi biến thể giữa chúng, manifest nhỏ xíu nên vòng round-trip nhanh, các segment cache như bất kỳ tệp tĩnh nào khác, và trình phát chạy trên cùng phần cứng đã giải mã Blu-ray và cuộc gọi FaceTime. Toàn bộ web phát trực tuyến được xây dựng từ HTTPS, các tệp, và việc canh thời gian. Các giao thức và codec chúng tôi sẽ đề cập tiếp theo chỉ là các quy ước cho phép các mảnh ghép này tương tác ở quy mô lớn.

Phát Trực Tuyến Video Thực Sự Hoạt Động Như Thế Nào

Đây là phần kỹ thuật cốt lõi của bài viết nền tảng. Chúng tôi sẽ đi qua toàn bộ quy trình từ đầu đến cuối. Đến lúc chúng tôi xong, bạn sẽ có thể nhìn vào tab mạng trên bất kỳ trang phát trực tuyến nào và xác định mỗi yêu cầu thuộc giai đoạn nào.

Camera → Encoder → Packager → Origin → CDN edge → Player → Decoder → Screen

Sơ đồ đó là toàn bộ đường đi. Mọi khái niệm bên dưới — bậc thang bitrate, manifest, segment, ABR, mã hóa — đều khớp đâu đó trên mũi tên đó.

Origin và Mã Hóa

Mọi thứ bắt đầu với video thô. Đối với phát sóng trực tiếp, đó là một camera (hoặc chụp màn hình trong trường hợp phát trực tiếp game) tạo ra các khung hình không nén ở, ví dụ, 1920×1080 ở 60 khung hình mỗi giây. Không nén, đó là khoảng 3 gigabit mỗi giây. Không ai vận chuyển video thô qua internet công cộng. Công việc đầu tiên là nén.

Một bộ mã hóa video biến các khung hình thô thành một bitstream được nén bằng cách khai thác sự dư thừa thời gian (hầu hết các pixel trông giống như các pixel của khung hình trước) và sự dư thừa không gian (hầu hết các vùng của một hình ảnh trông giống như các vùng lân cận). Các codec thống trị vào năm 2026 là:

  • H.264 (AVC) — Được tiêu chuẩn hóa vào năm 2003. Cũ, nhưng vẫn là codec được hỗ trợ rộng rãi nhất trên internet. Mọi thiết bị được sản xuất trong 15 năm qua đều có thể giải mã nó bằng phần cứng.
  • H.265 (HEVC) — Hiệu quả hơn khoảng 50% so với H.264 ở cùng chất lượng. Bị ràng buộc bởi tiền bản quyền, điều này làm chậm việc áp dụng trên web, nhưng phổ biến trên điện thoại, TV thông minh, và các nền tảng Apple.
  • AV1 — Miễn phí bản quyền, mở, và hiệu quả hơn HEVC một chút. YouTube, Netflix, và Vimeo là những nhà xuất bản AV1 lớn. Hỗ trợ giải mã phần cứng cuối cùng đã có ở mọi nơi vào năm 2025–2026.
  • AAC và Opus — Các codec âm thanh. AAC là bắt buộc trong HLS; Opus thống trị WebRTC và ngày càng phổ biến trong DASH.

Cùng một nội dung gần như luôn được mã hóa thành nhiều biến thể bitrate. Một bậc thang mã hóa điển hình có thể trông như sau:

Biến thểĐộ phân giảiBitrateCodec
1080p1920×10805.0 MbpsH.264 high
720p1280×7203.0 MbpsH.264 main
480p854×4801.5 MbpsH.264 main
360p640×3600.8 MbpsH.264 baseline
audio128 kbpsAAC-LC

Mỗi hàng trong bảng đó là một lần mã hóa riêng của cùng nguồn. Chúng được căn chỉnh về thời gian để một trình phát có thể chuyển đổi giữa chúng tại cùng thời điểm thực mà không cần khởi động lại bộ giải mã. Để biết thêm chi tiết về những gì thực sự nằm trong mỗi biến thể — codec so với container — xem các container như MP4 so với codec như H.264.

Đóng Gói — Segment và Manifest

Sau khi mã hóa là đóng gói: cắt bitstream của mỗi biến thể thành các đoạn ngắn gọi là segment và viết một manifest liệt kê chúng.

Segment thường dài 2 đến 10 giây video và âm thanh mỗi cái. Chúng được cắt trên ranh giới khung hình khóa (một I-frame trong bitstream) để trình phát có thể bắt đầu giải mã từ đầu bất kỳ segment nào. Khi manifest tuyên bố EXT-X-INDEPENDENT-SEGMENTS (HLS) hoặc tương đương trong DASH, mọi segment được đảm bảo có thể phát một mình; nếu không có khai báo đó, một số segment phụ thuộc vào dữ liệu được mang trong các segment trước đó.

Định dạng container segment thay đổi:

  • MPEG-TS (.ts) — HLS cũ. Ban đầu là định dạng phát sóng vệ tinh/cáp từ những năm 1990, mạnh mẽ chống lại lỗi bit. Vẫn được dùng nhưng đang được loại bỏ dần.
  • Fragmented MP4 (.m4s, đôi khi là .mp4) — HLS hiện đại và toàn bộ DASH. Cùng container MP4 như một tệp thông thường, nhưng được cắt thành các fragment với header riêng để mỗi cái có thể phát độc lập.
  • CMAF — Common Media Application Format (ISO/IEC 23000-19) là một profile fragmented-MP4 và ràng buộc đóng gói, không phải là sự hợp nhất của .ts và fMP4. Nó định nghĩa chính xác cách các segment fMP4 nên được cấu trúc để cùng tập tệp fMP4 có thể được tham chiếu bởi cả .m3u8 HLS và .mpd DASH. Các dịch vụ hiện đại cung cấp CMAF thay vì sao chép byte cho mỗi giao thức; các segment .ts cũ vẫn tồn tại bên cạnh nó cho các client HLS cũ không thể tiếp nhận fMP4.

Bản thân manifest có hai dạng:

  • Manifest HLS là các tệp văn bản .m3u8. Một master playlist liệt kê các biến thể và băng thông của chúng; mỗi biến thể có một media playlist liệt kê URL segment và thời lượng. Xem một tệp m3u8 thực sự chứa gì để biết toàn bộ cấu trúc.
  • Manifest DASH là các tệp XML .mpd. Một tệp mô tả toàn bộ bài thuyết trình — adaptation set, representation, segment timeline, BaseURL — trong cấu trúc cây. Xem DASH và manifest .mpd của nó để so sánh với HLS.

Cả hai thiết kế đều làm cùng một công việc: manifest nói cho trình phát biết những biến thể nào tồn tại, mỗi segment nằm ở đâu, và mỗi segment dài bao lâu. Mọi thứ khác đều tùy thuộc vào trình phát.

Phân Phối CDN

Khi các segment và manifest tồn tại dưới dạng tệp, dịch vụ phát trực tuyến tải chúng lên một máy chủ gốc — thường là một kho đối tượng như S3 hoặc R2 — và để một mạng phân phối nội dung sao chép chúng đến các node biên trên khắp thế giới. Các CDN bạn sẽ thấy trong các yêu cầu mạng bao gồm Akamai, Cloudflare, Fastly, AWS CloudFront, mạng biên của Google, và các CDN riêng tư mà Netflix (Open Connect) và YouTube chạy bên trong các ISP.

Lý do CDN quan trọng đến vậy đối với phát trực tuyến là khả năng cache. Một segment là một tệp tĩnh với một URL không thay đổi. Người xem đầu tiên trong một khu vực kéo segment từ origin; biên cache nó; mọi người xem trong khu vực đó trong một hoặc hai giờ tiếp theo nhận nó từ một máy chủ cách hàng chục mili giây. Đối với một video YouTube phổ biến, đại đa số các yêu cầu segment không bao giờ chạm đến origin của YouTube — chúng được phục vụ từ một hộp cache nằm vật lý bên trong ISP của bạn.

Đây cũng là lý do phát trực tuyến mở rộng quy mô rất tốt. Thêm một triệu người xem đồng thời ở Tokyo không thêm một triệu vòng round-trip đến California — nó thêm tải lên một node biên ở Tokyo đã có tệp. Toán học khoan nhượng theo cách mà không có giao thức phát trực tuyến nào trước năm 2010 cho phép.

Quy Trình Của Trình Phát

Bây giờ chúng ta trở lại thiết bị của bạn. Trình duyệt của bạn tải một trang, trang khởi động một trình phát JavaScript (thường là shaka-player, hls.js, video.js, hoặc một bản dựng tùy chỉnh của nhà cung cấp trên một trong những cái đó), và trình phát yêu cầu phần tử <video> của trang bắt đầu phát. Từ đó, trình phát chạy một vòng lặp chặt chẽ:

  1. Lấy manifest. Một HTTPS GET. Phản hồi là vài kilobyte văn bản.
  2. Phân tích manifest và chọn một biến thể ban đầu. Trình phát chọn dựa trên ước tính băng thông (được khởi tạo bởi lịch sử gần đây hoặc thông tin mạng của thiết bị), độ phân giải màn hình của thiết bị, và một biên độ an toàn để segment đầu tiên ít có khả năng bị đứng.
  3. Lấy vài segment đầu tiên. Các trình phát hiện đại song song hóa chúng qua một kết nối HTTP/2 hoặc HTTP/3 duy nhất. Các segment đến đồng thời.
  4. Đẩy byte segment vào bộ đệm Media Source Extensions của trình duyệt. MSE là API W3C cho phép JavaScript đưa dữ liệu video vào phần tử <video> theo cách lập trình. Bộ giải mã tích hợp của trình duyệt sẽ tiếp quản từ đó.
  5. Giải mã và vẽ. Bộ giải mã — được tăng tốc bằng phần cứng trên về cơ bản mọi thiết bị được sản xuất trong thập kỷ qua — chuyển các khung hình đã nén thành các pixel thô, và GPU vẽ chúng ở tốc độ khung hình của video.
  6. Giữ bộ đệm đầy. Trong khi người dùng xem segment N, trình phát đang lấy segment N+1, N+2, N+3.
  7. Đánh giá lại mỗi segment. Sau mỗi lần tải xuống, trình phát có dữ liệu mới về tốc độ kết nối. Nó dùng dữ liệu đó để quyết định có chuyển đổi biến thể cho segment tiếp theo hay không.

Hầu hết mã của trình phát là sổ sách: theo dõi sức khỏe của bộ đệm, thử lại các lần lấy segment thất bại, xử lý seek và pause, ghép vào các segment quảng cáo, chuyển đổi các track âm thanh, kết xuất phụ đề. Phần phát trực tuyến về mặt khái niệm là nhỏ — lấy, giải mã, lặp lại — và độ phức tạp kỹ thuật nằm ở tất cả các trường hợp ngoại lệ xung quanh nó.

Bitrate Thích Ứng (ABR)

Bitrate thích ứng là tính năng làm cho toàn bộ sắp xếp đáng để sử dụng. Không có ABR, một trình phát sẽ chọn một chất lượng, gắn với nó, và đệm lại ngay khi kết nối của bạn không thể duy trì nó. Với ABR, trình phát đo băng thông trên mỗi segment và chuyển đổi biến thể trong khi đang vận hành.

Vòng lặp cơ bản trông như sau. Sau mỗi lần tải xuống segment, trình phát tính toán băng thông hiệu quả: kích thước segment chia cho thời gian tải xuống. Nó so sánh với một trung bình động của các phép đo gần đây. Nếu băng thông có xu hướng giảm, yêu cầu segment tiếp theo đi đến biến thể bitrate thấp hơn. Nếu băng thông có xu hướng tăng và bộ đệm khỏe, trình phát leo lên. Các quyết định được đưa ra giữa các segment, không bao giờ giữa segment, để việc chuyển đổi liền mạch.

Các triển khai ABR thực tế tinh tế hơn. Chúng theo dõi mức chiếm dụng bộ đệm (một bộ đệm khỏe có thể mạo hiểm một biến thể cao hơn; một bộ đệm đang cạn phải giảm nhanh), chúng tính đến độ phân giải màn hình (không có ích gì khi phát 4K đến một laptop 720p), và chúng dùng các mô hình dự đoán — trung bình động, bộ lọc thông thấp, đôi khi các bộ ước tính học máy — để tránh dao động giữa các biến thể. Hai thuật toán ABR thống trị vào năm 2026 là BOLA (dựa trên bộ đệm) và MPC (kiểm soát dự đoán mô hình), cả hai đều xuất hiện trong các trình phát mã nguồn mở. Để biết phân tích đầy đủ, xem logic ABR bên trong mọi trình phát hiện đại.

Kết quả mà người dùng thấy là: bạn không cần phải chọn một chất lượng. Trình phát chọn, từng giây, và các chuyển đổi thường không nhìn thấy được. Khi chúng không vô hình — khi bạn nhận thấy đột ngột một độ mềm trên màn hình Netflix — đó là ABR đang chọn một biến thể thấp hơn để giữ phát liên tục.

Mã Hóa: Ba Lớp Thường Bị Nhầm Lẫn

Mã hóa trong phát trực tuyến phức tạp hơn nhiều người nhận ra, và ba lớp độc lập thường xuyên bị trộn lẫn. Chúng không phải là cùng một thứ.

HTTPS = bảo mật vận chuyển. Mọi luồng hiện đại được phục vụ qua TLS. Điều này bảo vệ các byte khỏi những kẻ nghe trộm trên mạng: một ISP, một kẻ tấn công Wi-Fi, hoặc một proxy doanh nghiệp không thể đọc những gì đang trôi qua chúng. HTTPS không ngăn trình duyệt nhận đọc các byte — nó hoàn toàn chỉ về đường dây.

Mã hóa segment AES-128 = lớp nội dung. Cả HLS và DASH đều hỗ trợ mã hóa chính các segment bằng AES-128 ở chế độ CBC hoặc CTR. Manifest mang một URL khóa; trình phát lấy khóa qua HTTPS và giải mã mỗi segment trước khi giải mã. Đây là một sự bảo vệ lớp nội dung: nó làm cho các byte vô dụng ngay cả khi ai đó có được chúng, nhưng chính URL khóa là cổng. Bất kỳ ai có thể tiếp cận URL khóa đều có thể giải mã các segment. Nhiều nền tảng trực tiếp và sáng tạo nội dung sử dụng mã hóa segment AES-128 như một lớp bảo vệ cơ bản.

DRM = giải mã được kiểm soát bởi máy chủ giấy phép, được hỗ trợ bởi phần cứng. Widevine (Google), FairPlay (Apple), và PlayReady (Microsoft) bọc một lớp chính sách trên đầu mã hóa segment. Các segment vẫn được mã hóa bằng AES (theo MPEG Common Encryption, ISO/IEC 23001-7), nhưng khóa nội dung được bọc sao cho chỉ một môi trường thực thi đáng tin cậy trên thiết bị của bạn mới có thể mở bọc. Máy chủ giấy phép kiểm tra gói đăng ký, mức độ tin cậy của thiết bị, và khu vực trước khi phát hành giấy phép. Giải mã xảy ra trong một mô-đun bảo mật được hỗ trợ bởi phần cứng — GPU nhận các khung hình đã giải mã trực tiếp mà không cần chúng đi qua bộ nhớ ứng dụng. Đây là thứ bảo vệ Netflix, Disney+, Apple TV+, và hầu hết các luồng trả phí. Xem cách Widevine và FairPlay kiểm soát các luồng cao cấp để có cái nhìn sâu sắc.

Các lớp này xếp chồng. Một luồng Netflix cao cấp dùng HTTPS cho vận chuyển, các segment CMAF được mã hóa theo CENC, và Widevine hoặc FairPlay cho việc giao khóa được kiểm soát bởi giấy phép. Một luồng trực tiếp Twitch chỉ dùng HTTPS. Một nền tảng khóa học trả phí có thể dùng HTTPS cộng với mã hóa segment AES-128 nhưng không có DRM. Biết được lớp nào đang hoạt động cho bạn biết rào cản kỹ thuật để tiếp cận các byte thực sự là gì — và ranh giới của việc sử dụng hợp pháp nằm ở đâu.

Lưu ngay cả một luồng không được mã hóa đòi hỏi phải nói tất cả các giao thức đó chính xác, theo thứ tự, và xử lý các trường hợp ngoại lệ mà trình phát xử lý âm thầm. VidMost được xây dựng để làm công việc đó trong nền — phân tích manifest, lấy segment, xử lý AES, DRM thông qua Widevine L3 được nhúng, remux container — để bước người dùng nhìn thấy là dán một URL, nhận một MP4.

Bạn Thấy Điều Này Ở Đâu Trong Thực Tế

Quy trình trên về cơ bản mô tả mọi dịch vụ phát trực tuyến thương mại vào năm 2026. Sự khác biệt nằm ở việc mỗi dịch vụ chọn giao thức, codec, và DRM nào, và cách họ thương lượng với thiết bị của bạn.

  • YouTube. Giao thức chính là MPEG-DASH trên web và Android, với HLS được phục vụ cho Safari, iOS, AirPlay, và hầu hết các TV thông minh. Hầu như tất cả nội dung là CMAF — một tập các segment fMP4 phục vụ cả hai manifest. Codec: H.264 cho khả năng tương thích, VP9 cho hầu hết các lần phát, AV1 cho các luồng độ phân giải cao trên các thiết bị được hỗ trợ. DRM Widevine và FairPlay cho phim/TV cho thuê; không mã hóa cho video do người dùng tải lên.
  • Netflix, Disney+, Apple TV+, HBO Max, Prime Video. Tất cả đều dùng kết hợp HLS và DASH tùy thuộc vào client, với CMAF là định dạng segment chung. DRM là bắt buộc — Widevine, FairPlay, hoặc PlayReady được chọn bởi thiết bị. Codec bao gồm H.264, H.265, AV1, và các lớp phủ Dolby Vision/Atmos. Máy chủ giấy phép thực thi khu vực, đăng ký, và mức độ tin cậy của thiết bị trên mọi lần phát. Netflix vận hành CDN riêng (Open Connect) bên trong nhiều ISP.
  • Twitch. Chỉ HLS, với các segment .ts vẫn còn phổ biến cùng với CMAF. Các luồng trực tiếp có độ trễ 2 đến 5 giây trên các biến thể độ trễ thấp và 15 đến 30 giây trên tiêu chuẩn. Các segment không được mã hóa — mô hình bảo vệ của Twitch là danh tính và cấp tài khoản, không phải mã hóa nội dung.
  • Bigo Live, OnlyFans live, Chaturbate, Fansly. Phát trực tiếp dựa trên HLS, thường với các segment không mã hóa và các đoạn ngắn (2 giây) cho độ trễ thấp. Phát phía trình duyệt sử dụng hls.js hoặc hỗ trợ HLS gốc của Safari.
  • Vimeo, Mux, Cloudflare Stream, JW Player. Các nền tảng video được lưu trữ. Họ đóng gói các bản tải lên thành cả HLS và DASH tự động và phân phối qua CDN riêng. Cloudflare Stream cung cấp CMAF; Mux mặc định là HLS. DRM là tùy chọn cho các gói trả phí.
  • Thể thao và tin tức — ESPN, DAZN, BBC iPlayer, Sling TV. HLS hoặc DASH với DRM, thường là Widevine + FairPlay + PlayReady được đóng gói cùng nhau để cùng các segment đã mã hóa phục vụ mọi thiết bị. HLS độ trễ thấp (LL-HLS) là xu hướng ở đây — độ trễ dưới 3 giây cho các sự kiện trực tiếp đã từng chạy chậm 30 giây so với phát sóng.
  • TikTok, Instagram Reels, YouTube Shorts. Video dạng ngắn sử dụng tải xuống tuần tự MP4 cho các clip nhỏ nhất và HLS hoặc DASH cho bất kỳ thứ gì trên một phút. Cùng các lựa chọn CDN và codec như các dịch vụ dạng dài.

Các bề mặt khác nhau, cùng một bộ máy. Câu chuyện là lặp lại với biến thể: mọi dịch vụ chọn một định dạng manifest, một bậc thang codec, và một tổ hợp DRM, sau đó chạy cùng vòng lặp lấy-giải mã-vẽ trên hàng tỷ người xem.

Điều Này Có Ý Nghĩa Gì Nếu Bạn Muốn Lưu Một Video

Biết quy trình làm cho một sự thật thực tế trở nên rõ ràng: không có tệp đơn lẻ nào để lưu. “Video” bạn đang xem được tái tạo bởi trình phát của bạn từ một manifest cộng với vài trăm segment nhỏ, được lấy trong thời gian thực, được giải mã ngay khi đến, và bị loại bỏ khi các segment tiếp theo đến. “Save As” của trình duyệt cho bạn manifest — một tệp văn bản nhỏ xíu không có byte video nào trong đó.

Đường thủ công để có một tệp xem được là một con đường dài. Lấy và phân tích manifest (HLS .m3u8 hoặc DASH .mpd). Chọn biến thể đúng — thường là biến thể bandwidth cao nhất mà bộ nhớ của bạn có thể hấp thụ. Liệt kê mọi URL segment. Lấy tất cả chúng (300+ yêu cầu cho một video 30 phút với segment 6 giây) trước khi các URL có chữ ký hết hạn. Nếu có EXT-X-KEY, lấy khóa AES-128 và giải mã mỗi segment. Nếu luồng được bảo vệ bởi DRM, không có điều nào trong số này hoạt động chút nào nếu không có một CDM có thể phát hành giấy phép — và ngay cả khi đó, các byte đã giải mã không bao giờ rời khỏi mô-đun bảo mật. Khi bạn có các segment thuần túy, remux âm thanh và video vào một container MP4 hoặc MKV duy nhất. Hy vọng bạn đã chọn đúng biến thể; nếu không, lặp lại với một biến thể khác.

Công cụ phù hợp gộp quy trình đó thành một hành động của người dùng. VidMost phân tích các manifest HLS và DASH, chọn biến thể chất lượng cao nhất có sẵn, tải xuống các 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 segment AES-128 tự động, hỗ trợ Widevine L3 cho các luồng được bảo vệ bởi DRM nơi phát L3 có sẵn (chất lượng có thể bị giới hạn bởi dịch vụ và mức DRM — các nền tảng cao cấp thường giới hạn L3 ở 480p–720p), và remux mọi thứ thành một MP4 sạch sẵn sàng để phát trong bất kỳ trình phát media nào. Lớp giao thức biến mất. Bạn dán một URL; bạn nhận một tệp.

Đối với nội dung mà bạn có quyền hợp pháp để xem — bài giảng bạn đã trả tiền, livestream bạn muốn lưu trữ, các buổi phát sóng của riêng bạn, video được cấp phép tự do — đó là toàn bộ quy trình làm việc. Quy trình mà bài viết này mô tả là những gì công cụ được xây dựng để điều hướng thay mặt bạn.

Những Hiểu Lầm Và Cạm Bẫy Phổ Biến

Một số ít niềm tin về phát trực tuyến lặp đi lặp lại. Đáng để chỉnh lại.

  • “Phát trực tuyến dùng một giao thức đặc biệt.” Không. Phát trực tuyến thích ứng hiện đại chạy qua HTTPS thông thường — cùng giao thức phục vụ HTML và JPEG. Manifest và segment là các tệp tĩnh trên một CDN. “Giao thức” trong HLS hoặc DASH chỉ là quy ước về những gì các tệp đó chứa.
  • “Tệp đang tải xuống khi tôi xem.” Không hẳn vậy. Segment được tải xuống vừa kịp để phát chúng và bị loại bỏ khi segment tiếp theo đang trên đường đi. Thiết bị của bạn không bao giờ giữ toàn bộ video. Đây là điều làm cho “dừng phiên” hiệu quả và tại sao một phiên phát trực tuyến đứt vỡ ngay khi các byte ngừng đến.
  • “Băng thông cao hơn nghĩa là chất lượng tốt hơn.” Chỉ khi băng thông của bạn ổn định. Một đường truyền 100 Mbps giảm xuống 2 Mbps trong mười giây cho bạn trải nghiệm tệ hơn so với một kết nối 8 Mbps ổn định. Bậc thang mã hóa cũng giới hạn bạn — nếu biến thể cao nhất là 5 Mbps, bất kỳ băng thông nào vượt quá điều đó không mua thêm chất lượng nào.
  • “Đệm nghĩa là internet chậm.” Đôi khi. Cũng thường xuyên như vậy, đó là bậc thang mã hóa quá thưa (không biến thể nào khớp với băng thông hiện tại), một node CDN biên thiếu cache, tắc nghẽn peering, hoặc thuật toán ABR của trình phát phản ứng chậm. Đệm là trình phát đang xin thời gian — không phải là phán quyết dứt khoát về tốc độ đường truyền của bạn.
  • “DRM giống với mã hóa.” Không. Mã hóa là một phép toán — các byte bị xáo trộn cần một khóa. DRM là hệ thống chính sách xung quanh mã hóa đó: một máy chủ giấy phép kiểm soát ai nhận khóa, một môi trường thực thi đáng tin cậy dùng khóa, và một lớp thực thi hợp đồng quyết định thiết bị nào có thể phát nội dung nào. Mã hóa là khóa; DRM là hệ thống báo động, phân phối khóa, và chính sách thu hồi kết hợp.
  • “MP4 là định dạng phát trực tuyến.” Không. MP4 là một container — một định dạng tệp bao bọc âm thanh, video, và metadata. HLS và DASH là các giao thức phát trực tuyến, và chúng có thể mang các segment MP4 phân mảnh. Một tệp .mp4 thông thường không được phát trực tuyến; nó được tải xuống tuần tự. Các segment CMAF bạn thấy trong HLS và DASH là dẫn xuất MP4 nhưng được cấu trúc rất khác.

Hầu hết sự nhầm lẫn biến mất khi bạn nội tâm hóa quy trình. Phát trực tuyến là tệp cộng với canh thời gian — mọi thứ khác là chi tiết.

Suy Nghĩ Kết Luận

Internet bắt đầu vận chuyển video theo cách nó vận chuyển mọi thứ khác: dưới dạng tệp qua HTTP. Sau đó nó trở nên thông minh về việc chọn tệp nào, theo thứ tự nào, ở chất lượng nào, từ cache biên nào, và được giải mã bằng phần cứng nào. Mẫu thông minh đó — manifest cộng với segment cộng với bitrate thích ứng cộng với cache CDN — là toàn bộ lý do phát trực tuyến cảm giác tức thì, mở rộng quy mô đến hàng tỷ người xem, và sống sót qua thực tế lộn xộn của các mạng thực tế. Không có giao thức bí mật, không có máy chủ độc quyền, không có phép màu đặc biệt. Chỉ có tệp, canh thời gian, và kỹ thuật rất tốt trên toàn bộ stack.

Nếu bạn muốn bỏ qua hoàn toàn lớp giao thức và chỉ lưu một video, VidMost xử lý HLS, DASH, fMP4, AES-128, và Widevine L3 trong nền — manifest được phân tích, segment được lấy, mã hóa được xử lý, MP4 được viết.

Đọc thêm

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

Phát trực tuyến video trực tuyến hoạt động như thế nào?
Phát trực tuyến video trực tuyến gửi video đến thiết bị của bạn dưới dạng một chuỗi các segment ngắn được đánh số tuần tự qua HTTPS thông thường, được hướng dẫn bởi một manifest văn bản nhỏ mà trình phát tải xuống đầu tiên. Manifest liệt kê mọi biến thể chất lượng có sẵn và URL của mỗi segment. Trình phát của bạn chọn một biến thể, lấy từng vài segment một lần từ một node CDN biên gần bạn, giải mã chúng bằng tăng tốc phần cứng, và vẽ các khung hình lên màn hình. Toàn bộ vòng lặp — lấy, giải mã, vẽ — lặp lại liên tục cho toàn bộ video.
Sự khác biệt giữa phát trực tuyến và tải xuống là gì?
Tải xuống lưu toàn bộ tệp về thiết bị của bạn trước khi bạn xem; phát trực tuyến tải xuống các segment ngắn vừa kịp lúc để phát chúng và loại bỏ từng segment khi segment tiếp theo đang trên đường đến. Bạn không bao giờ có toàn bộ tệp. Phát trực tuyến cũng cho phép trình phát chuyển đổi chất lượng giữa chừng bằng cách chọn các segment khác nhau từ các biến thể khác nhau, và cho phép dịch vụ ngừng phục vụ bạn ngay lập tức khi phiên kết thúc. Một tệp đã tải xuống hoạt động ngoại tuyến mãi mãi; một phiên phát trực tuyến chỉ hoạt động khi byte tiếp tục đến.
Tại sao video đôi khi bị đệm ngay cả trên internet nhanh?
Đệm xảy ra bất cứ khi nào bộ đệm của trình phát cạn nhanh hơn so với segment đến. Băng thông đỉnh nhanh không đảm bảo lưu lượng ổn định — tắc nghẽn tại các điểm peering, nhiễu Wi-Fi, hoặc một node CDN biên thiếu cache có thể làm tăng đột biến thời gian tải xuống của một segment đơn lẻ vượt quá thời lượng của nó. Bậc thang mã hóa cũng quan trọng: nếu một dịch vụ chỉ cung cấp biến thể 1080p ở 8 Mbps và đường truyền của bạn tạm thời giảm xuống dưới mức đó, trình phát phải giảm xuống 720p hoặc chờ. Đệm là trình phát đang xin thời gian để nạp lại, không phải là phán xét về tốc độ đường truyền của bạn.
Tại sao tôi không thể nhấp chuột phải và lưu một video phát trực tuyến?
Bởi vì không có tệp đơn lẻ nào để lưu. Trang đưa cho trình phát một URL manifest — thường là .m3u8 hoặc .mpd — và tệp đó chỉ là một danh sách các URL segment. Nhấp chuột phải lưu manifest, không phải video. Để xây dựng lại một tệp có thể xem được, bạn cần lấy mọi segment theo thứ tự, giải mã bất kỳ segment nào được mã hóa bằng AES-128 hoặc khóa được bọc DRM, và remux các luồng âm thanh và video vào một container MP4 hoặc MKV duy nhất. Đó là một quy trình nhiều bước mà các trình duyệt không cung cấp.
Phát trực tuyến có dùng máy chủ đặc biệt không?
Không. Phát trực tuyến thích ứng hiện đại chạy hoàn toàn qua HTTPS — cùng giao thức phục vụ các trang HTML và JPEG. Segment và manifest chỉ là các tệp trên CDN, có thể cache ở biên như bất kỳ tài sản tĩnh nào khác. Các giao thức cũ như RTMP, RTSP, và MMS có cần các máy chủ và cổng chuyên dụng, nhưng HLS và DASH chủ ý sử dụng HTTP thông thường để chúng hoạt động qua tường lửa, mở rộng quy mô trên hạ tầng CDN hiện có, và hưởng lợi từ những cải tiến trong HTTP/2 và HTTP/3 mà không cần thay đổi giao thức.
Sự khác biệt giữa phát trực tiếp và video theo yêu cầu là gì?
Cả hai đều dùng cùng các giao thức và định dạng segment. Sự khác biệt nằm ở manifest. Một manifest video theo yêu cầu liệt kê mọi segment từ đầu đến cuối và tuyên bố luồng là hữu hạn — HLS dùng thẻ EXT-X-ENDLIST cho điều này. Một manifest trực tiếp chỉ liệt kê các segment đã xuất bản đến hiện tại, bỏ qua điểm đánh dấu kết thúc, và được trình phát lấy lại sau mỗi vài giây để phát hiện các mục mới. Độ trễ trên luồng trực tiếp dao động từ 30 giây cho HLS truyền thống đến dưới 3 giây cho HLS độ trễ thấp hoặc DASH độ trễ thấp.
Chất lượng video chuyển đổi tự động như thế nào?
Các luồng hiện đại gửi cùng nội dung ở nhiều bitrate — 1080p, 720p, 480p, v.v. — mỗi cái là một tập segment riêng. Sau mỗi lần tải xuống segment, trình phát so sánh thời gian tải xuống mất bao lâu so với thời gian thực mà nó tiêu thụ, tính toán băng thông hiệu quả. Nếu xu hướng đi xuống, segment tiếp theo được yêu cầu từ một biến thể thấp hơn; nếu nó đi lên và bộ đệm khỏe, trình phát leo trở lại. Vì các segment chia sẻ ranh giới được căn chỉnh giữa các biến thể, việc chuyển đổi diễn ra sạch sẽ giữa các segment.
Phát trực tuyến có hợp pháp không?
Xem một luồng mà bạn có quyền xem — một dịch vụ bạn đăng ký, một video được cấp phép tự do, chương trình phát sóng của riêng bạn — là hoàn toàn hợp pháp. Tải xuống luồng thì phức tạp hơn. Lưu nội dung bạn sở hữu hoặc tài liệu được cấp phép tự do thường không sao. Tải xuống các luồng thương mại được bảo vệ bởi DRM thường vi phạm điều khoản dịch vụ của nền tảng và có thể kích hoạt các luật chống phá vỡ như DMCA §1201 tại Hoa Kỳ. Luôn kiểm tra luật pháp tại khu vực của bạn và các điều khoản bạn đã đồng ý khi đăng ký.