Đối với 5% độc giả đã biết về Media over Quic, bạn gần như chắc chắn có ý kiến của riêng bạn về câu hỏi này, vì vậy đừng quên bỏ qua bài viết và nhảy thẳng vào bình luận để giải thích lý do tại sao tôi sai. Đối với 95% còn lại, bạn có thể như thế này ngay bây giờ: Đừng lo lắng bạn bè của tôi, chúng tôi sẽ đi vào Quic, làm thế nào bạn gửi phương tiện truyền thông qua nó, và làm thế nào nó khác với việc đưa RTC vào Web. WebRTC là gì? Đầu tiên, chúng ta hãy thực hiện một bản cập nhật nhanh về WebRTC. WebRTC là API đằng sau hầu hết các ứng dụng hội nghị video trên web. nó cũng được sử dụng cho một loạt các trường hợp sử dụng khác liên quan đến streaming video thời gian thực. Để minh họa điều này, hãy xem xét một ứng dụng webinar: Tạo một ứng dụng webinar Giả sử bạn muốn xây dựng một ứng dụng web để lưu trữ các hội thảo web. Bạn cần một máy chủ để có thể chia sẻ video và âm thanh webcam của họ, và có khả năng chia sẻ màn hình trong thời gian thực. Bạn cũng cần người tham gia để có thể tiêu thụ những luồng video từ máy chủ, và có khả năng chia sẻ video webcam và âm thanh của riêng họ để đặt câu hỏi và / hoặc để tương tác nói chung. Làm thế nào WebRTC cho phép webinar Giải pháp tiêu chuẩn để xây dựng ứng dụng webinar của chúng tôi sẽ là sử dụng WebRTC, đó là một API Web được thiết kế chủ yếu để tạo điều kiện cho các ứng dụng hội nghị video. Trong các ứng dụng WebRTC, mỗi người tham gia tải lên âm thanh và video của họ dưới dạng luồng trong thời gian thực, trong hầu hết các trường hợp đến một máy chủ trung tâm được gọi là một Selective forwarding đơn vị Mỗi người tham gia mở một kết nối với máy chủ, lấy dòng webcam địa phương của họ, đàm phán với máy chủ để phối hợp về sự lựa chọn codec, tỷ lệ bit, v.v., và sau đó bắt đầu phát sóng và đăng ký dòng từ máy chủ. Trong code nó sẽ trông như thế này: // SFU WebRTC: Single connection to server async function joinWebinar() { // 1. Get your webcam const localStream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true }); // 2. Create ONE peer connection (to the server, not to each participant) const peerConnection = new RTCPeerConnection({ iceServers: [{ urls: ['stun:stun.example.com'] } }); // 3. Add your local stream to the connection for (let track of localStream.getTracks()) { peerConnection.addTrack(track, localStream); } // 4. Exchange connection details with the server const offer = await peerConnection.createOffer(); const answer = await signalingServer.send({ offer }); await peerConnection.setLocalDescription(offer); await peerConnection.setRemoteDescription(answer); // 5. When the server sends you other participants' streams, display them peerConnection.ontrack = (event) => { const participantId = event.streams[0].id; displayRemoteVideo(participantId, event.streams[0]); }; } Máy chủ WebRTC Máy chủ không chỉ phối hợp các kết nối giữa những người tham gia, mà còn cho phép chuyển tiếp chọn lọc các luồng giữa những người tham gia. Đối với một hội thảo trực tuyến với 100 người tham gia, điều này có nghĩa là mỗi người tham gia không chia sẻ luồng webcam của họ 99 lần khác nhau, họ chỉ cần tải 1 luồng lên máy chủ và nó được chuyển tiếp cho tất cả mọi người. Mỗi người trong số 100 người tham gia cũng không cần phải đăng ký 99 nguồn cấp dữ liệu video khác, ứng dụng có thể áp dụng logic kinh doanh để mỗi người tham gia chỉ đăng ký một tiểu tập các nguồn cấp dữ liệu có sẵn (như có lẽ mọi người đều nhận được webcam và chia sẻ màn hình của máy chủ và 5 nguồn cấp dữ liệu ngẫu nhiên của người tham gia khác), giảm băng thông cho tất cả mọi người. WebRTC trong thực tế WebRTC được xây dựng cho hội nghị video và các trường hợp sử dụng liền kề như ví dụ webinar của chúng tôi, vì vậy nó đã trở thành phương pháp thực tế để thực hiện trao đổi video thời gian thực ngay cả đối với các nền tảng không phải là trình duyệt như Android & iOS. Những thách thức chính đối với WebRTC bao gồm: Scalability - Server-side forwarding of many simultaneous video streams requires significant CPU and bandwidth, making it increasingly expensive to scale beyond a certain point (usually thousands) Control - WebRTC was built primarily with video conferencing in mind, and so while it is highly optimized for that use case, it lacks fine-grained control over media encoding & delivery (codecs, strings, packet-level control) that are relevant in other use cases like remote control or AI video pipelines. Media over Quic là gì? Media over Quic (MoQ) là một giao thức mới để phát trực tuyến video thời gian thực... giống như WebRTC. và Media over Quic cho phép chúng tôi xây dựng các ứng dụng video thời gian thực như ứng dụng webinar của chúng tôi, giống như WebRTC... Vâng, vậy nhưng nếu WebRTC đã tồn tại và hoạt động tốt, tại sao các công ty như và Tất cả đột ngột làm việc trên một giao thức mới? CloudFlare Mục tiêu Đầu tiên chúng ta hãy nói về Quick Hầu như bất kỳ giao tiếp bình thường nào bạn có thể xử lý với tư cách là một nhà phát triển web có hình thức yêu cầu HTTPS, liên quan đến một số bước quay trở lại giữa một mạng và máy chủ để thiết lập kết nối. Những yêu cầu HTTP này, và các API như Websockets và đôi khi WebRTC, sử dụng một giao thức được gọi là TCP, một giao thức để trao đổi dữ liệu giữa một mạng và một máy chủ, nơi các gói được gửi theo thứ tự. Nếu một gói bị mất, các gói tiếp theo được giữ lại, điều này giữ trật tự, nhưng điều này có thể dẫn đến "chặn đầu dòng" QUIC là một giao thức thay thế, và hoạt động giống như chuyển phát nhanh ưu tiên tốc độ, nó có thể thả các gói ít quan trọng hơn (như một khung video) nhưng nó có nghĩa là để có được phần còn lại của giao hàng của bạn thông qua nhanh hơn. Một số sự khác biệt giữa QUIC và TCP/HTTP thông thường Kết nối QUIC yêu cầu ít cài đặt hơn QUIC có thể thả các gói riêng lẻ một cách thông minh thay vì làm chậm toàn bộ kết nối QUIC có thể duy trì kết nối khi chuyển đổi giữa các mạng, chẳng hạn như chuyển từ WIFI sang kết nối di động QUIC do đó là một giao thức mạng hữu ích, đặc biệt thích hợp cho streaming video, mặc dù về mặt lý thuyết bạn có thể gửi bất kỳ dữ liệu nào qua QUIC. Bây giờ chúng ta có, QUIC, hãy gửi một số phương tiện truyền thông về nó Ý tưởng đằng sau Media over Quic là, như bạn có thể đã đoán, để gửi Media qua kết nối QUIC. Đặc biệt, Media over Quic là một giao thức chính thức trên QUIC. Media over Quic hoạt động như một hệ thống pub/sub nơi một gửi các luồng phương tiện truyền thông được mã hóa đến a (chủ yếu là một CDN), và Nhận các luồng từ các relay: publisher relay subscribers Phương tiện truyền thông trên Quic relay là nội dung vô thức, họ không biết những gì đang xảy ra trên mạng, cho dù đó là video, âm thanh, văn bản hoặc chỉ là mã nhị phân ngẫu nhiên. Một khía cạnh quan trọng khác là Media over Quic relays có thể được liên kết với nhau, vì vậy một số thuê bao có thể nhận được dữ liệu đã đi qua chỉ 1 relay, và những người khác có thể nhận được dữ liệu đã đi qua 5 relay. Media over Quic relay cũng không cần phải duy trì trạng thái của tổng thể "phát sóng", chúng chỉ hoạt động như các ống dẫn dữ liệu mà không biết có bao nhiêu nhà xuất bản và người đăng ký hoặc thời gian phiên đã hoạt động. Đây là những tính năng chính cho phép Media over Quic chạy thông qua , cho phép phát trực tuyến theo thời gian thực cho hàng triệu người xem cùng một lúc, điều không thể với WebRTC. CDN Ví dụ về Pseudocode Để xem một luồng, nó Media over Quic sẽ trông giống như thế này async function watchWebinarViaQuic() { // 1. Connect to the relay const connection = await Moq.connect("https://relay.moq.some-cdn.com"); // 2. Subscribe to the broadcast const broadcast = connection.consume("my-webinar"); // 3. Subscribe to the video and audio tracks const videoTrack = await broadcast.subscribe("video"); const audioTrack = await broadcast.subscribe("audio"); // 4. Decode and display/play the streams decodeAndDisplayVideo(videoTrack); decodeAndPlayAudio(audioTrack); } Để phát sóng một stream sẽ trông như thế này: async function joinWebinarViaQuic() { // 1. Get your webcam const stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true }); const videoTrack = stream.getVideoTracks()[0]; const audioTrack = stream.getAudioTracks()[0]; // 2. Connect to a MoQ relay (instead of connecting to an SFU) const connection = await Moq.connect("https://relay.moq.some-cdn.com"); // 3. Create a broadcast (namespace for your streams) const broadcast = new Moq.Broadcast(); connection.publish("my-webinar", broadcast); // 4. Get video and audio tracks from the relay const videoMoqTrack = await broadcast.requested('video'); const audioMoqTrack = await broadcast.requested('audio'); // 5. Stream your camera to the relay encodeAndStreamVideo(videoTrack, videoMoqTrack); encodeAndStreamAudio(audioTrack, audioMoqTrack); } Trên thực tế, mã hóa / giải mã và hiển thị video liên quan đến một điều hoàn toàn khác gọi là Nhưng cũng có những Điều này xử lý... Webcodec Thư viện Streams vs kết nối Sự khác biệt kiến trúc cơ bản giữa WebRTC và Media over Quic là WebRTC hoạt động như một loạt các kết nối trạng thái hoạt động, trong khi MoQ hoạt động như một loạt các luồng độc lập song song. Trong WebRTC, các kết nối về bản chất là hai chiều (hoặc giữa các đồng nghiệp hoặc từ máy khách đến máy chủ), trong khi trong MoQ hoạt động với các luồng độc lập song song. Nhưng tại sao lại là MoQ? Một số công ty và nhà phát triển rất phấn khích về MoQ vì nó có những lợi thế cụ thể so với WebRTC (và các công nghệ video web khác). MoQ có thể cung cấp cùng một loại trải nghiệm video thời gian thực như phần mềm hội nghị video, nhưng vì các luồng được gửi qua CDN, một người có webcam có thể phát trực tuyến cho hàng triệu người, điều này sẽ không thể với WebRTC. Scale: QUIC cho phép phát trực tuyến đáng tin cậy hơn, cho phép kết nối tồn tại ngay cả khi chuyển đổi mạng (ví dụ: di động sang WIFI), và cũng cho phép thả khung / gói để đảm bảo giao hàng theo thời gian thực. Efficient transport Bởi vì mô hình cơ sở hạ tầng rất đơn giản, nó đơn giản hóa rất nhiều stack mạng trong khi đồng thời cũng cung cấp nhiều kiểm soát cấp thấp hơn trên video mã hóa và giải mã, đó là quan trọng đối với một số ứng dụng. Simple model Phương tiện truyền thông về Quic trong thực tế Tính đến tháng 1 năm 2026, Media over Quic vẫn còn ở giai đoạn rất sớm, và dựa vào một số thành phần vẫn đang được phát triển: WebTransport - WebAPI cho phép kết nối QUIC được hỗ trợ bởi ~80% các trình duyệt, nhưng chưa được hỗ trợ trên Safari Thư viện: Các thư viện cốt lõi cho Media over Quic chỉ tồn tại cho Rust (máy chủ) và JS (khách hàng), và chưa có SDK di động Relay: Một số nhà cung cấp CDN đang tạo ra các relay MoQ, và Cloudflare đã có một, nhưng họ vẫn còn trong “beta”, và phương pháp đáng tin cậy nhất hiện nay là lưu trữ của riêng bạn Media over Quic có đủ công cụ và hỗ trợ cho những người áp dụng sớm để bắt đầu xây dựng với nó, nhưng nó vẫn đòi hỏi rất nhiều điều chỉnh và triển khai 'DIY', và vẫn còn quá sớm cho một trải nghiệm nhà phát triển liền mạch. Các nhà phát triển (bao gồm cả tôi!) đang làm việc trên các thư viện cốt lõi cho Media qua Quic, và các công ty đang phát triển các giải pháp chuyển tiếp / được lưu trữ, vì vậy mong đợi MoQ trở nên ổn định hơn và sản xuất sẵn sàng trong những tháng/năm tới. Liệu nó có thể thay thế WebRTC? Đối với những người trong không gian video thời gian thực, Media over Quic đã là một chủ đề nóng, với rất nhiều cuộc thảo luận về việc liệu Media over Quic sẽ thay thế WebRTC hay không. Đối với 5% độc giả đã biết về MoQ trước khi đến bài viết này, bạn có thể đã đến bài viết này với một số ý kiến về câu trả lời, vì vậy hãy bình luận hoặc đăng phản đối của bạn, tôi có thể sử dụng SEO. Đối với 5% còn lại của bạn đã làm điều đó thông qua toàn bộ bài viết (kudos!). bạn có thể không có một con ngựa trong cuộc đua này, nhưng tôi muốn chỉ ra rằng bất kể, nếu bạn làm việc trong phát triển web, nó có lẽ là một điều tốt để biết về MoQ và rằng nó là một tiêu chuẩn mới và sắp tới cho truyền thông thời gian thực. Tôi đã bắt đầu giúp đỡ với sự phát triển trên các thư viện MoQ không phải vì tôi có bất kỳ quan tâm hoặc mong muốn đặc biệt để thay thế WebRTC, mà vì tôi thích và kiểm soát cấp độ thấp, và thật tuyệt khi có được trên tầng trệt của một giao thức mới. nói rằng, một số liên hệ chuyên nghiệp gần gũi nhất của tôi là các chuyên gia WebRTC (Tôi trước đây đã chạy một mà một bộ lọc AI SDK nhắm mục tiêu vào các sản phẩm WebRTC) và như một nhà phát triển, chỉ cần nhìn vào tài liệu MoQ nó là rõ ràng rằng nó vẫn còn quá thô và sớm để sử dụng rộng rãi. Webcodec khởi nghiệp Liệu nó có thể thay thế WebRTC? Có lẽ WebRTC có một hệ sinh thái được thiết lập tốt, và đã giải quyết một vấn đề mà trước đây không có một giải pháp tốt. không giống như WebRTC, MoQ không cạnh tranh với "không có gì", nó đang cạnh tranh với một giao thức được thiết lập, được hỗ trợ tốt. Điều đó nói rằng, MoQ có lợi thế thực sự so với WebRTC và các công nghệ phát trực tuyến khác như , và vì vậy đây có thể là một số trường hợp sử dụng nơi lợi thế của MoQ sẽ cung cấp một trường hợp hấp dẫn cho những người áp dụng sớm: HLS/DASH trực tuyến Too big for WebRTC, to small for HLS/DASH Điểm ngọt ngào cho những người áp dụng sớm có thể là các loại ứng dụng không được phục vụ tốt bởi WebRTC hoặc HLS / DASH (không thời gian thực, nhưng đặc biệt là quy mô lớn) Một số ví dụ có thể bao gồm: Phần mềm hội thảo web, nơi các hội thảo web cần tương tác theo thời gian thực nhưng cũng cần phải mở rộng đến hàng ngàn hoặc hàng chục ngàn người tham gia Phát sóng các sự kiện ảo nơi người phát thanh thường phát sóng ít=>nhiều, nhưng thường liên quan đến câu hỏi và trả lời tương tác Các công cụ phát trực tiếp dựa trên trình duyệt, phát video từ trình duyệt đến máy chủ và những người tham gia khác, đồng thời phát trực tiếp các nền tảng truyền thông xã hội như Facebook Like hoặc YouTube Live. More control and reliability than WebRTC Media over Quic cũng sẽ hữu ích trong các kịch bản yêu cầu kết nối video mạnh mẽ hoặc kiểm soát cấp độ thấp của việc phân phối video, chẳng hạn như trong các kịch bản với nguồn cấp dữ liệu camera từ xa (các camera an ninh, máy bay không người lái, phương tiện điều khiển từ xa) hoặc trong đường ống dẫn video AI thời gian thực. WebRTC thường được sử dụng trong các kịch bản này, nhưng trong những trường hợp này, lợi ích quy mô của MoQ là không liên quan, lợi thế chính sẽ từ kết nối mạnh mẽ hơn của HTTP3/Quic và điều khiển khung cấp thấp mà làm cho MoQ một lựa chọn hấp dẫn. For everything else Đối với mọi thứ khác, có của WebRTC. Thẻ Mastercard Nếu bạn đang xây dựng hội nghị video cookie-cutter tiêu chuẩn, WebRTC là công nghệ rõ ràng tốt hơn và có thể sẽ không có trường hợp sử dụng mà MoQ có ý nghĩa cho đến khi / trừ khi hệ sinh thái MoQ đạt đến mức độ ổn định và trưởng thành của WebRTC (có thể? nhưng ngay cả sau đó, nó có thể mất một thời gian). More Tài nguyên Nếu bạn tò mò về Media over Quic, WebRTC hoặc chỉ trực tuyến phương tiện truyền thông thời gian thực nói chung, đây là một vài tài nguyên: Media over Quic Nếu bạn muốn tìm hiểu thêm về Media over Quic, bạn có thể đào sâu hơn vào Trang web chính thức của MoQ WebCodecsFundamentals, một sách giáo khoa mã nguồn mở với các ví dụ về mã Sự bất đồng của MoQ WebRTC Có rất nhiều hướng dẫn về WebRTC ( , ) và bạn cũng có thể nghe một vài chuyên gia WebRTC khác nói về MoQ so với WebRTC trên Ngoài ra còn có một cộng đồng tuyệt vời cho các nhà phát triển WebRTC được gọi là . Trang web.dev MDN WebRTCchacks Pion