For de 5% af læsere, der allerede kender til Media over Quic, har du næsten helt sikkert din egen mening om dette spørgsmål, så føl dig fri til at hoppe over artiklen og hoppe direkte til kommentarerne for at forklare, hvorfor jeg tager fejl. For de andre 95%, er du sandsynligvis sådan lige nu: For ikke at bekymre sig mine venner, vil vi komme ind i Quic, hvordan du sender Media over det, og hvordan det er anderledes end at sætte RTC på nettet. Hvad er WebRTC? Først, lad os gøre en hurtig recap på WebRTC. WebRTC er API'en bag de fleste videokonferenceapplikationer på internettet. Det er også brugt til en masse andre brugssager, der involverer streaming af video i realtid. For at illustrere dette, overveje en webinar ansøgning: Lad os bygge en webinar app Lad os sige, at du ønskede at opbygge en webapplikation til at være vært for webinarer.Du har brug for en vært for at kunne dele deres webcam video og lyd, og potentielt en skærmdeling i realtid. Du har også brug for deltagere til at kunne forbruge disse video streams fra værten, og potentielt dele deres egen webcam video og lyd til at stille spørgsmål og / eller for generel interaktivitet. Hvordan WebRTC muliggør webinarer Den standardløsning for at opbygge vores webinar app ville være at bruge WebRTC, som er en Web API designet primært til at lette videokonferencing applikationer. Selektiv sendingsenhed Hver deltager åbner en forbindelse til serveren, griber deres egen lokale webcam stream, forhandle med serveren for at koordinere på codec valg, bitrate osv., og derefter begynde at udsende til og abonnere streams fra serveren. I koden ville det se sådan ud: // 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]); }; } WebRTC servere Serveren koordinerer ikke kun forbindelser mellem deltagerne, men muliggør også selektiv videresendelse af streams mellem deltagerne. For et webinar med 100 deltagere betyder det, at hver deltager ikke deler deres webcam stream 99 forskellige gange, de bare uploade 1 stream til serveren, og det bliver videresendt rundt til alle. Hver af de 100 deltagere behøver ikke også at abonnere på 99 andre videofeeds, applikationen kan anvende forretningslogik, så hver deltager kun abonnerer på et delsæt af tilgængelige feeds (som måske alle får værtens webcam og skærmdeling, og 5 tilfældige andre deltageres feeds), hvilket reducerer båndbredden for alle. WebRTC i praksis WebRTC blev bygget til videokonferencer og tilstødende brugssager som vores webinar eksempel, så det er blevet den defacto metode til at gøre real-time video udveksling selv for ikke-browser platforme som Android & iOS. De vigtigste udfordringer for WebRTC omfatter 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. Hvad er Media over Quic? Media over Quic (MoQ) er en ny protokol til streaming af video i realtid ... slags som WebRTC. og Media over Quic giver os mulighed for at opbygge realtids-videoapplikationer som vores webinar-app, slags som WebRTC... Okay, så hvis WebRTC allerede eksisterer og fungerer bare fint, hvorfor er virksomheder som og Alt det pludselige arbejde på en ny protokol? Cloudflare Målet Lad os først tale om QUIC Næsten enhver normal kommunikation, du kan beskæftige dig med som webudvikler, tager form af en HTTPS-anmodning, som involverer en række frem og tilbage trin mellem et netværk og en server for at oprette forbindelsen. Disse HTTP-forespørgsler og API'er som Websockets og nogle gange WebRTC bruger en protokol kaldet TCP, en protokol til udveksling af data mellem et netværk og en server, hvor pakker sendes i rækkefølge. Hvis en pakke går tabt, holdes efterfølgende pakker op, hvilket bevarer orden, men som kan føre til "head of line blokering" QUIC er en alternativ protokol, og fungerer mere som hurtig kurer, der prioriterer hastighed, det kan droppe mindre vigtige pakker (som en video frame), men det betyder at få resten af din levering gennem hurtigere. Nogle forskelle mellem QUIC og normal TCP/HTTP QUIC-forbindelser kræver mindre installation QUIC kan droppe individuelle pakker intelligent i stedet for at bremse hele forbindelsen QUIC kan opretholde en forbindelse, når du skifter mellem netværk, for eksempel skifte fra WIFI til en mobilforbindelse QUIC er derfor en nyttig netværksprotokol, der er særligt velegnet til streaming video, selv om du i teorien kan sende data over QUIC. Nu hvor vi har, QUIC, lad os sende nogle medier over det Ideen bag Media over Quic er, som du sikkert allerede har gættet, at sende Media over QUIC-forbindelser. Medier over Quic er en formaliseret protokol på toppen af QUIC. Media over Quic fungerer som et pub/sub-system, hvor en sender streams af kodede medier til a (i det væsentlige en CDN), og Få disse streams fra relæet: publisher relay subscribers Medier over Quic-relæer er indholdagnostiske, de ved ikke, hvad der foregår på tværs af netværket, om det er video, lyd, tekst eller bare tilfældig binær kode. Et andet vigtigt aspekt er, at Media over Quic relæer kan kædes sammen, så nogle abonnenter kan modtage data, der er gået gennem kun 1 relæ, og andre kan modtage data, der er gået gennem 5 relæer. Media over Quic-relæer behøver heller ikke at opretholde tilstanden af den samlede "udsendelse", de fungerer bare som data-pipes uden at være opmærksomme på, hvor mange udgivere og abonnenter der er, eller hvor længe sessionen har været aktiv. Disse er nøglefunktioner, der gør det muligt at køre Media over Quic gennem , som muliggør streaming i realtid til millioner af seere på samme tid, noget som ikke er muligt med WebRTC. CDNs Eksempler på pseudokoder For at se en stream, det Media over Quic ville se noget som dette 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); } At sende en stream ville se sådan ud: 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); } Faktisk kodning / dekodning og visning af video involverer en helt anden ting kaldet Men der er også Det håndterer den... Webkoder Bibliotekerne Streams vs forbindelser Den grundlæggende arkitektoniske forskel mellem WebRTC og Media over Quic er, at WebRTC fungerer som en række aktive statlige forbindelser, mens MoQ fungerer som en række uafhængige, parallelle strømme. I WebRTC forbindelser er iboende bidirektionelle (enten mellem jævnaldrende eller fra klient til server), mens i MoQ operationer med parallelle uafhængige envejsstrømme. Okay, men hvorfor MoQ? En række virksomheder og udviklere er begejstrede for MoQ, fordi det har konkrete fordele i forhold til WebRTC (og andre webvideo teknologier). MoQ kan levere den samme slags videooplevelse i realtid som videokonferencingsoftware, men fordi streams sendes over CDN'er, kan en person med et webcam streame til millioner af mennesker, hvilket ville være umuligt med WebRTC Scale: QUIC muliggør mere pålidelig streaming, hvilket gør det muligt for forbindelser at fortsætte, selv når du skifter over netværk (f.eks. mobil til WIFI), og også giver mulighed for at droppe rammer / pakker for at sikre realtidslevering. Efficient transport Fordi infrastrukturmodellen er så enkel, forenkler den meget netværksstacken, samtidig med at den giver mere lavt niveau kontrol over video kodning og dekodning, hvilket er vigtigt for nogle applikationer. Simple model Medier om Quic i praksis Fra januar 2026 er Media over Quic stadig på et meget tidligt stadium og er afhængig af flere komponenter, der stadig udvikles: WebTransport - WebAPI, der muliggør QUIC-forbindelser, understøttes af ~80% af browsere, men ikke endnu understøttet på Safari Biblioteker: Kernebibliotekerne for Media over Quic findes kun for Rust (server) og JS (klient), og der er endnu ingen mobile SDK'er Relæer: Flere CDN-udbydere skaber MoQ-relæer, og Cloudflare har allerede en, men de er stadig i "beta", og den mest pålidelige metode lige nu er hosting din egen Media over Quic har nok værktøj og støtte til tidlige adoptere til at begynde at bygge med det, men det kræver stadig en masse "DIY" tilpasninger og implementeringer, og det er stadig for tidligt for en sømløs udvikleroplevelse. Udviklere (herunder mig!) arbejder på de centrale biblioteker for Media over Quic, og virksomheder udvikler relæer/hostede løsninger, så forvent MoQ at blive mere stabil og produktion klar i de kommende måneder/år. Vil det erstatte WebRTC? For folk i real-time video rum, Media over Quic har været et varmt emne, med en masse diskussion om, hvorvidt Media over Quic vil erstatte WebRTC. jeg personligt finder både hype og counter-hype lidt meget, fordi Media over Quic ikke er modnet til det punkt, hvor det er fair at sammenligne det med WebRTC. Til de 5% af læsere, der allerede vidste om MoQ, før du kommer til denne artikel, har du sandsynligvis allerede kommet ind i denne artikel med en slags mening om svaret, så føl dig velkommen til at kommentere eller skrive dit modargument, jeg kunne bruge SEO. For de andre 5% af jer, der gjorde det gennem hele artiklen (kudos!).Du har måske ikke en hest i dette løb, men jeg vil gerne påpege, at uanset, hvis du gør arbejde i webudvikling, er det sandsynligvis en god ting at være opmærksom på MoQ og at det er en ny op og komme standard for real-time media streaming. Jeg er begyndt at hjælpe med udvikling på MoQ biblioteker ikke fordi jeg har nogen særlig interesse eller ønske om at erstatte WebRTC, men snarere fordi jeg kan lide det. og lavt niveau kontrol, og det er cool at komme på stueetagen af en ny protokol. Det sagde, nogle af mine nærmeste professionelle kontakter er WebRTC eksperter (jeg tidligere kørte en som et AI-filter SDK målrettet WebRTC-produkter) og som udvikler, bare ser på MoQ-dokumentationen, er det klart, at det stadig er for rå og tidligt til udbredt brug. Webkoder Startup af Vil det erstatte WebRTC? Måske WebRTC har et veletableret økosystem, og løste et problem, der ikke tidligere havde en god løsning. i modsætning til WebRTC konkurrerer MoQ ikke med "noget", det konkurrerer med en etableret, velunderstøttet protokol. Det sagde, MoQ har reelle fordele over WebRTC og andre streaming teknologier som , og så her er sandsynligvis nogle brugssager, hvor MoQ's fordele ville give et overbevisende tilfælde for tidlige adoptere: HLS og Dash streaming Too big for WebRTC, to small for HLS/DASH Det søde sted for tidlige vedtagere ville sandsynligvis være applikationskategorier, der ikke er godt betjent enten af WebRTC eller af HLS / DASH (ikke i realtid, men gør især høj skala) Nogle eksempler kan være: Webinar-software, hvor webinarer har brug for realtidsinteraktivitet, men som også skaleres til tusindvis eller titusinder af deltagere Broadcasting virtuelle begivenheder, hvor højttalere typisk streame få=>mange, men som ofte involverer interaktive Q&A Browser-baserede live streaming-værktøjer, der streamer video fra browsere til servere og andre deltagere, mens de samtidig streamer sociale medieplatforme som Facebook eller YouTube live More control and reliability than WebRTC Media over Quic ville også være nyttigt i scenarier, hvor robuste videoforbindelser eller lavt niveau kontrol af video levering er påkrævet, såsom i scenarier med fjernkamera feed (sikkerhedskameraer, droner, fjernbetjente køretøjer) eller i real-time AI video pipelines. WebRTC bruges ofte i disse scenarier, men i disse tilfælde er skalafordelen ved MoQ irrelevant, de primære fordele ville være fra mere robust konnektivitet af HTTP3/Quic og lavt niveau frame control, der gør MoQ en attraktiv mulighed. For everything else For alt andet er der af WebRTC. af Mastercard Hvis du bygger standard cookie-cutter videokonference, WebRTC er den klart bedre teknologi, og der vil sandsynligvis ikke være et brugssag, hvor MoQ giver mening, indtil / medmindre MoQ økosystemet når niveauet af stabilitet og modenhed af WebRTC (muligvis? men selv da, det kan tage et stykke tid). Flere ressourcer Hvis du er nysgerrig om Media over Quic, WebRTC eller bare real-time media streaming generelt, her er et par ressourcer: Media over Quic Hvis du vil vide mere om Media over Quic, kan du grave dybere på Den officielle hjemmeside for MoQ. WebCodecsFundamentals, en open source lærebog med eksempler på kode MoQ uenighed WebRTC Der er mange tutorials om WebRTC ( , der ) og du kan også høre et par andre WebRTC eksperter taler om MoQ vs WebRTC på Der er også en stor diskord fællesskab for WebRTC udviklere kaldet . Hjemmeside.dev MDN Webrtræk Pioner