Bagi 5% daripada pembaca yang sudah tahu tentang Media over Quic, anda hampir pasti mempunyai pendapat anda sendiri mengenai soalan ini, jadi bebas untuk melepaskan artikel dan melompat terus ke komen untuk menjelaskan mengapa saya salah. Untuk 95% yang lain, anda mungkin seperti ini pada masa ini: Jangan risau kawan-kawan saya, kami akan mendapatkan ke dalam Quic, bagaimana anda menghantar Media di atasnya, dan bagaimana ia berbeza daripada meletakkan RTC di Web. Apa itu WebRTC? Pertama, mari kita buat ulasan cepat pada WebRTC. WebRTC adalah API di sebalik kebanyakan aplikasi persidangan video di web. Ia juga digunakan untuk banyak kes penggunaan lain yang melibatkan streaming video masa nyata. Untuk menggambarkan ini, pertimbangkan permohonan webinar: Membangunkan aplikasi webinar Katakanlah anda ingin membina aplikasi web untuk menganjurkan webinar. anda memerlukan tuan rumah untuk dapat berkongsi video dan audio webcam mereka, dan berpotensi berkongsi skrin dalam masa nyata. Anda juga perlu peserta untuk dapat mengkonsumsi aliran video daripada tuan rumah, dan berpotensi berkongsi video webcam dan audio mereka sendiri untuk mengajukan soalan dan / atau untuk interaktiviti umum. Bagaimana WebRTC membolehkan webinar Penyelesaian standard untuk membina aplikasi webinar kami ialah menggunakan WebRTC, yang merupakan API Web yang direka terutama untuk memudahkan aplikasi persidangan video. Dalam aplikasi WebRTC, setiap peserta memuat naik audio dan video mereka sebagai aliran dalam masa nyata, dalam kebanyakan kes ke pelayan pusat yang dipanggil Unit Pengedaran Selektif Setiap peserta membuka sambungan ke pelayan, mengambil aliran webcam tempatan mereka sendiri, berunding dengan pelayan untuk mengoordinasikan pilihan kodek, kadar bit, dan lain-lain, dan kemudian mula menyiarkan dan berlangganan aliran dari pelayan. Dalam kod, ia akan kelihatan seperti ini: // 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]); }; } Perkhidmatan WebRTC Pelayan bukan sahaja mengoordinasikan sambungan antara peserta, tetapi juga membolehkan pemindahan aliran secara selektif antara peserta. Untuk webinar dengan 100 peserta, ini bermakna bahawa setiap peserta tidak berkongsi aliran webcam mereka 99 kali yang berbeza, mereka hanya memuat naik 1 aliran ke pelayan dan yang dihantar ke semua orang. Setiap daripada 100 peserta juga tidak perlu langganan kepada 99 aliran video lain, aplikasi ini boleh menggunakan logik perniagaan supaya setiap peserta hanya langganan kepada subset aliran yang tersedia (seperti mungkin semua orang mendapat webcam tuan rumah dan perkongsian skrin, dan 5 aliran peserta lain secara rawak), mengurangkan lebar bandwidth untuk semua orang. WebRTC dalam amalan WebRTC telah dibina untuk persidangan video dan kes penggunaan bersebelahan seperti contoh webinar kami, jadi ia telah menjadi kaedah defacto untuk melakukan pertukaran video masa nyata walaupun untuk platform bukan pelayar seperti Android & iOS. Cabaran utama untuk WebRTC termasuk 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. Apa yang Media Over Quic? Media over Quic (MoQ) adalah protokol baru untuk streaming video masa nyata ... sejenis seperti WebRTC. dan Media over Quic membolehkan kita membina aplikasi video masa nyata seperti aplikasi webinar kami, sejenis seperti WebRTC... Ok, jadi jika WebRTC sudah wujud dan berfungsi dengan baik, mengapa syarikat-syarikat seperti dan semua yang tiba-tiba bekerja pada protokol baru? awanflare sasaran Mari kita bercakap mengenai Quick Hampir mana-mana komunikasi biasa yang anda boleh berurusan dengan sebagai pengembang web mengambil bentuk permintaan HTTPS, yang melibatkan beberapa langkah ke belakang dan ke hadapan antara rangkaian dan pelayan untuk menubuhkan sambungan. Permintaan HTTP ini, dan API seperti Websockets dan kadang-kadang WebRTC, menggunakan protokol yang dipanggil TCP, protokol untuk pertukaran data antara rangkaian dan pelayan, di mana paket dihantar dalam urutan. Jika satu pakej hilang, pakej seterusnya ditahan, yang mengekalkan perintah, tetapi yang boleh membawa kepada "head of line blocking" QUIC adalah protokol alternatif, dan bertindak lebih seperti penghantaran cepat yang memberi keutamaan kepada kelajuan, ia boleh kehilangan pakej yang kurang penting (seperti bingkai video) tetapi ia bermakna mendapatkan sisa penghantaran anda lebih cepat. Perbezaan antara QUIC dan TCP/HTTP Sambungan QUIC memerlukan setup yang kurang QUIC boleh melepaskan paket individu dengan bijak alih-alih memperlahankan keseluruhan sambungan QUIC boleh mengekalkan sambungan apabila beralih antara rangkaian, seperti beralih daripada WIFI kepada sambungan seluler Oleh itu, QUIC adalah protokol rangkaian yang berguna yang sangat sesuai untuk streaming video, walaupun secara teori anda boleh menghantar apa-apa data melalui QUIC. Sekarang bahawa kita mempunyai, QUIC, mari kita hantar beberapa Media di atasnya Idea di sebalik Media over Quic ialah, seperti yang anda mungkin telah menebak, untuk menghantar Media melalui sambungan QUIC. Walau bagaimanapun, Media over Quic ialah protokol yang diformalkan di atas QUIC. Media over Quic berfungsi sebagai sistem pub/sub di mana a menghantar aliran media yang dikodkan kepada a (Pada dasarnya sebuah CDN), dan Dapatkan aliran-aliran ini daripada relay: publisher relay subscribers Media di atas relay Quic adalah agnostik kandungan, mereka tidak tahu apa yang berlaku di seluruh rangkaian, sama ada ia video, audio, teks atau hanya kod binari acak. Aspek penting lain ialah Media over Quic relay boleh disatukan bersama-sama, supaya sesetengah pelanggan mungkin menerima data yang telah melalui hanya 1 relay, dan yang lain mungkin menerima data yang telah melalui 5 relay. Media over Quic relay juga tidak perlu mengekalkan keadaan keseluruhan "penyiaran", mereka hanya bertindak sebagai data-pipes tanpa mengetahui berapa banyak penerbit dan pelanggan ada atau berapa lama sesi telah aktif. Ini adalah ciri-ciri utama yang membolehkan Media over Quic berjalan melalui , yang membolehkan streaming masa nyata kepada berjuta-juta penonton pada masa yang sama, sesuatu yang tidak mungkin dengan WebRTC. CDNs Contoh Pseudocode Untuk menonton aliran, it Media over Quic akan kelihatan seperti ini 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); } Untuk menyiarkan aliran akan kelihatan seperti ini: 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); } Sebenarnya pengkodean / decoding dan memaparkan video melibatkan perkara yang sama sekali lain yang dipanggil Tetapi terdapat juga yang menangani perkara itu.. WebKodek Perpustakaan Rujukan vs Sambungan Perbezaan arsitektur asas antara WebRTC dan Media over Quic ialah WebRTC berfungsi sebagai satu siri sambungan stateful aktif, manakala MoQ bertindak sebagai satu siri aliran paralel yang bebas. Dalam WebRTC, sambungan bersifat bidirektif (baik antara rakan sebaya atau dari klien ke pelayan) manakala dalam MoQ operasi dengan aliran unidirektif yang berasingan. Ok, tapi kenapa moq? Sesetengah syarikat dan pengembang bersemangat tentang MoQ kerana ia mempunyai kelebihan konkrit berbanding WebRTC (dan teknologi video web lain). MoQ boleh menyampaikan jenis pengalaman video masa nyata yang sama seperti perisian persidangan video, tetapi kerana aliran dihantar melalui CDN, satu orang dengan webcam boleh streaming kepada berjuta-juta orang, yang tidak mungkin dengan WebRTC Scale: QUIC membolehkan penyiaran yang lebih boleh dipercayai, membolehkan sambungan berterusan walaupun semasa beralih ke rangkaian (contohnya, mudah alih ke WIFI), dan juga membolehkan bingkai/paket drop untuk memastikan penghantaran masa nyata. Efficient transport Kerana model infrastruktur begitu mudah, ia sangat menyederhanakan tumpukan rangkaian sambil juga menyediakan kawalan tahap rendah lebih atas pengkodean video dan decoding, yang penting untuk sesetengah aplikasi. Simple model Media tentang Quic dalam amalan Pada Januari 2026, Media over Quic masih dalam peringkat awal, dan bergantung kepada beberapa komponen yang masih sedang dibangunkan: WebTransport - WebAPI yang membolehkan sambungan QUIC disokong oleh ~80% pelayar, tetapi belum disokong pada Safari Perpustakaan: Perpustakaan teras untuk Media over Quic hanya wujud untuk Rust (server) dan JS (klien), dan tiada SDK mudah alih Relay: Beberapa pembekal CDN sedang mencipta relay MoQ, dan Cloudflare sudah mempunyai satu, tetapi mereka masih dalam "beta", dan kaedah yang paling boleh dipercayai pada masa ini ialah hosting anda sendiri. Media over Quic mempunyai cukup alat dan sokongan untuk penerima awal untuk mula membina dengan ia, tetapi ia masih memerlukan banyak penyesuaian dan pelaksanaan 'DIY', dan masih terlalu awal untuk pengalaman pengembang yang lancar. Pengembang (termasuk saya!) sedang bekerja pada perpustakaan teras untuk Media over Quic, dan syarikat sedang membangunkan penyelesaian relay / dihoskan, jadi harapkan MoQ menjadi lebih stabil & pengeluaran bersedia dalam bulan-bulan/tahun akan datang. Adakah ia akan menggantikan WebRTC? Bagi orang-orang dalam ruang video masa nyata, Media over Quic telah menjadi topik panas, dengan banyak perbincangan mengenai sama ada Media over Quic akan menggantikan WebRTC. Untuk 5% daripada pembaca yang sudah tahu tentang MoQ sebelum datang ke artikel ini, anda mungkin sudah datang ke artikel ini dengan beberapa pendapat mengenai jawapan, jadi jangan ragu untuk mengomentari atau memposting kontraargumen anda, saya boleh menggunakan SEO. Bagi 5% yang lain daripada anda yang melakukannya melalui seluruh artikel (kudos!). anda mungkin tidak mempunyai kuda dalam perlumbaan ini, tetapi saya ingin menunjukkan bahawa tidak kira, jika anda melakukan kerja dalam pembangunan web, ia mungkin perkara yang baik untuk menyedari MoQ dan bahawa ia adalah standard baru dan akan datang untuk streaming media masa nyata. Saya mula membantu dengan pembangunan perpustakaan MoQ bukan kerana saya mempunyai minat tertentu atau keinginan untuk menggantikan WebRTC, tetapi kerana saya suka dan kawalan peringkat rendah, dan ia sejuk untuk mendapatkan di lantai atas protokol baru. yang dikatakan, sesetengah kenalan profesional terdekat saya adalah pakar WebRTC (Saya sebelumnya menjalankan yang AI menapis SDK yang ditujukan kepada produk WebRTC) dan sebagai pengembang, hanya melihat dokumen MoQ ia jelas bahawa ia masih terlalu mentah dan awal untuk digunakan secara meluas. WebKodek Permulaan Adakah ia akan menggantikan WebRTC? Mungkin WebRTC mempunyai ekosistem yang mapan, dan menyelesaikan masalah yang sebelum ini tidak mempunyai penyelesaian yang baik. berbeza dengan WebRTC, MoQ tidak bersaing dengan "tiada apa-apa", ia bersaing dengan protokol yang ditubuhkan dan disokong dengan baik. Yang dikatakan, MoQ mempunyai faedah sebenar berbanding WebRTC dan teknologi streaming lain seperti , dan jadi di sini adalah mungkin beberapa kes penggunaan di mana kelebihan MoQ akan menyediakan kes yang menarik untuk penerima awal: HLS dan Dash Streaming Too big for WebRTC, to small for HLS/DASH Titik manis untuk penerima awal mungkin kategori aplikasi yang tidak dilayani baik oleh WebRTC atau oleh HLS / DASH (tidak dalam masa nyata, tetapi mempunyai skala yang tinggi) Beberapa contoh mungkin termasuk: Perisian webinar, di mana webinar memerlukan interaktiviti masa nyata tetapi juga perlu meluas kepada beribu-ribu atau puluhan ribu peserta Menyiarkan acara maya di mana penutur biasanya menyiarkan sedikit=>banyak, tetapi yang sering melibatkan Q&A interaktif Alat-alat streaming secara langsung berasaskan pelayar, yang menyiarkan video dari pelayar ke pelayan dan peserta lain, manakala secara bersamaan menyiarkan platform media sosial seperti Facebook Like atau YouTube Live. More control and reliability than WebRTC Media over Quic juga akan berguna dalam senario di mana sambungan video yang kukuh atau kawalan tahap rendah penghantaran video diperlukan, seperti dalam senario dengan aliran kamera jauh (kamera keselamatan, drone, kenderaan beroperasi jauh) atau dalam paip video AI masa nyata. WebRTC sering digunakan dalam senario ini, tetapi dalam kes-kes ini, faedah skala MoQ tidak relevan, kelebihan utama adalah daripada sambungan yang lebih kukuh HTTP3/Quic dan kawalan kerangka peringkat rendah yang menjadikan MoQ pilihan yang menarik. For everything else Untuk semua yang lain terdapat daripada webRTC. Kartu Mastercard Jika anda membina persidangan video cookie-cutter standard, WebRTC adalah teknologi yang lebih baik dan mungkin tidak akan ada kes penggunaan di mana MoQ bermakna sehingga / kecuali ekosistem MoQ mencapai tahap kestabilan dan kematangan WebRTC (mungkin? tetapi walaupun kemudian, ia mungkin mengambil masa). Lebih banyak sumber Jika anda penasaran tentang Media over Quic, WebRTC atau hanya siaran media masa nyata secara amnya, di sini adalah beberapa sumber: Media over Quic Jika anda ingin mengetahui lebih lanjut mengenai Media over Quic, anda boleh menggali lebih dalam di Laman web rasmi MoQ. WebCodecsFundamentals, buku teks sumber terbuka dengan contoh kod Perbezaan MoQ WebRTC Terdapat banyak tutorial tentang WebRTC ( daripada ) dan anda juga boleh mendengar beberapa pakar WebRTC lain bercakap tentang MoQ vs WebRTC pada Terdapat juga komuniti yang hebat untuk pengembang WebRTC yang dipanggil . Laman web.dev MDN WebRangkaian Pion