Para el 5% de los lectores que ya saben sobre Media over Quic, casi seguramente tiene su propia opinión sobre esta cuestión, así que siéntese libre de saltar el artículo y saltar directamente a los comentarios para explicar por qué estoy equivocado. Para el otro 95%, probablemente estés así en este momento: No te preocupes, amigos míos, vamos a entrar en Quic, cómo envías medios a través de él, y cómo eso es diferente de poner RTC en la Web. ¿Qué es WebRTC? En primer lugar, vamos a hacer un rápido repaso en WebRTC. WebRTC es la API detrás de la mayoría de las aplicaciones de videoconferencia en la web. También se utiliza para un montón de otros casos de uso que involucran streaming de vídeo en tiempo real. Para ilustrar esto, considere una aplicación de webinar: Crear una aplicación webinar Supongamos que quería construir una aplicación web para alojar seminarios web. Necesitaría un anfitrión para poder compartir su vídeo y audio de webcam, y potencialmente una pantalla compartida en tiempo real. También necesitaría que los participantes puedan consumir esos flujos de vídeo del anfitrión, y potencialmente compartir su propio vídeo y audio de webcam para hacer preguntas y / o para la interactividad general. Cómo WebRTC permite webinars La solución estándar para construir nuestra aplicación de webinar sería usar WebRTC, que es una API Web diseñada principalmente para facilitar las aplicaciones de videoconferencia.En las aplicaciones de WebRTC, cada participante sube su audio y vídeo como flujos en tiempo real, en la mayoría de los casos a un servidor central llamado Unidad de envío selectivo Cada participante abre una conexión al servidor, toma su propio flujo de webcam local, negocia con el servidor para coordinar la elección del codec, la tasa de bits, etc., y luego comienza a transmitir y suscribirse a los flujos del servidor. En el código se vería algo así: // 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]); }; } Servicio WebRTC El servidor no solo coordina las conexiones entre los participantes, sino que también permite la transmisión selectiva de flujos entre los participantes. Para un webinar con 100 participantes, esto significa que cada participante no está compartiendo su flujo de webcam 99 veces diferentes, solo cargan 1 flujo al servidor y que se transmite a todos. Cada uno de los 100 participantes también no necesita suscribirse a otros 99 flujos de vídeo, la aplicación puede aplicar la lógica empresarial para que cada participante solo se suscriba a un subconjunto de flujos disponibles (como tal vez todo el mundo obtenga la webcam del anfitrión y la pantalla compartida, y 5 los flujos aleatorios de otros participantes), reduciendo el ancho de banda para todos. WebRTC en la práctica WebRTC fue construido para videoconferencias y casos de uso adyacentes como nuestro ejemplo de webinar, por lo que se ha convertido en el método defacto para hacer el intercambio de vídeo en tiempo real incluso para plataformas no navegadores como Android & iOS. Los principales desafíos para WebRTC incluyen 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. ¿Qué es Media Over Quic? Media over Quic (MoQ) es un nuevo protocolo para la transmisión de video en tiempo real... tipo de WebRTC. y Media over Quic nos permite construir aplicaciones de video en tiempo real como nuestra aplicación de webinar, tipo de WebRTC... Bueno, así que si WebRTC ya existe y funciona bien, ¿por qué las empresas como y ¿Todo el trabajo repentino en un nuevo protocolo? CloudFlare Meta Primero hablemos de QUIC Casi cualquier comunicación normal que usted pueda tratar como desarrollador web toma la forma de una solicitud HTTPS, que implica una serie de pasos hacia adelante y hacia atrás entre una red y un servidor para establecer la conexión. Estas solicitudes HTTP, y APIs como Websockets y a veces WebRTC, utilizan un protocolo llamado TCP, un protocolo para el intercambio de datos entre una red y un servidor, donde los paquetes se envían en orden. Si un paquete se pierde, los paquetes posteriores se mantienen, lo que conserva el orden, pero que puede conducir a "bloqueo de cabeza de línea" QUIC es un protocolo alternativo, y actúa más como un corredor rápido que prioriza la velocidad, puede dejar caer paquetes menos importantes (como un cuadro de vídeo) pero significa obtener el resto de su entrega más rápido. Algunas diferencias entre QUIC y TCP/HTTP normal Las conexiones QUIC requieren menos configuración QUIC puede descargar paquetes individuales de manera inteligente en lugar de ralentizar toda la conexión QUIC puede mantener una conexión cuando se cambia entre redes, como cambiar de WIFI a una conexión celular QUIC es, por lo tanto, un protocolo de red útil que es particularmente adecuado para la transmisión de vídeo, aunque en teoría se puede enviar cualquier dato a través de QUIC. Ahora que tenemos, QUIC, enviemos algunos medios sobre ello La idea detrás de Media over Quic es, como probablemente ya hayas adivinado, enviar Media sobre conexiones QUIC. En concreto, Media over Quic es un protocolo formalizado sobre QUIC. Media over Quic funciona como un sistema de pub/sub donde a Envía flujos de medios codificados a (es decir, un CDN) y Obtenga estos flujos del relay: publisher relay subscribers Los medios de comunicación sobre los relés Quic son agnósticos de contenido, no saben lo que está sucediendo en la red, ya sea vídeo, audio, texto o simplemente código binario aleatorio. Otro aspecto clave es que los relés Media over Quic pueden ser encadenados juntos, por lo que algunos suscriptores pueden recibir datos que han pasado por solo 1 relé, y otros pueden recibir datos que han pasado por 5 relés. Media over Quic relays también no necesitan mantener el estado de la "emisión" general, simplemente actúan como tubos de datos sin ser conscientes de cuántos editores y suscriptores hay o cuánto tiempo ha estado activa la sesión. Estas son las características clave que permiten que Media over Quic se ejecute a través de , que permite la transmisión en tiempo real a millones de espectadores simultáneamente, algo que no es posible con WebRTC. CDNs Ejemplos de Pseudocode Para ver un flujo, el Media over Quic se vería algo así 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); } Para transmitir un flujo se vería algo así: 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); } En realidad, codificar / decodificar y mostrar vídeo implica algo completamente diferente llamado Pero también hay El manejo de eso... Webcodecs bibliotecas Flujos vs Conexiones La diferencia arquitectónica fundamental entre WebRTC y Media over Quic es que WebRTC opera como una serie de conexiones activas de estado, mientras que MoQ actúa como una serie de flujos independientes y paralelos. En WebRTC las conexiones son inherentemente bidireccionales (ya sea entre pares o de cliente a servidor), mientras que en MoQ las operaciones con flujos unidireccionales independientes paralelos. Bueno, pero ¿por qué MoQ? Un número de empresas y desarrolladores están entusiasmados con MoQ porque tiene ventajas concretas en comparación con WebRTC (y otras tecnologías de vídeo web). MoQ puede proporcionar el mismo tipo de experiencia de vídeo en tiempo real que el software de videoconferencia, pero debido a que los flujos se envían a través de CDN, una persona con una webcam puede transmitir a millones de personas, lo que sería imposible con WebRTC Scale: QUIC permite una transmisión más fiable, permitiendo que las conexiones persistan incluso cuando se cambia de red (por ejemplo, móvil a WIFI), y también permite descargar marcos/paquetes para garantizar la entrega en tiempo real. Efficient transport Debido a que el modelo de infraestructura es tan simple, simplifica enormemente la pila de redes al tiempo que también proporciona más control de bajo nivel sobre la codificación y decodificación de vídeo, lo que es importante para algunas aplicaciones. Simple model Medios de comunicación sobre Quic en la práctica A partir de enero de 2026, Media over Quic todavía está en una etapa muy temprana, y depende de varios componentes que aún están siendo desarrollados: WebTransport - la WebAPI que permite las conexiones QUIC es soportada por ~80% de los navegadores, pero aún no es soportada en Safari Bibliotecas: Las bibliotecas básicas para Media over Quic solo existen para Rust (servidor) y JS (cliente), y no hay SDKs móviles todavía Relays: Varios proveedores de CDN están creando relays MoQ, y Cloudflare ya tiene uno, pero todavía están en "beta", y el método más confiable en este momento es alojar su propio. Media over Quic tiene suficientes herramientas y soporte para que los primeros adoptantes comiencen a construir con ella, pero todavía requiere muchas adaptaciones y implementaciones de 'DIY', y aún es demasiado pronto para una experiencia de desarrollador suave. Los desarrolladores (incluido yo!) están trabajando en las bibliotecas centrales para Media over Quic, y las empresas están desarrollando relés / soluciones alojadas, por lo que esperan que MoQ se vuelva más estable y la producción listo en los próximos meses / años. ¿Sustituirá a WebRTC? Para las personas en el espacio de vídeo en tiempo real, Media over Quic ha sido un tema caliente, con mucha discusión sobre si Media over Quic reemplazará a WebRTC. Al 5% de los lectores ya sabían sobre MoQ antes de llegar a este artículo, probablemente ya hayas llegado a este artículo con algún tipo de opinión sobre la respuesta, así que no dudes en comentar o publicar tu contraargumento, podría usar el SEO. Para el otro 5% de ustedes que lo hicieron a través de todo el artículo (kudos!).Usted puede no tener un caballo en esta carrera, pero quiero señalar que independientemente, si usted trabaja en el desarrollo web, es probablemente una buena cosa ser consciente de MoQ y que es un nuevo estándar para la transmisión de medios en tiempo real. He comenzado a ayudar con el desarrollo en las bibliotecas de MoQ no porque tenga algún interés o deseo particular en reemplazar a WebRTC, sino porque me gusta. y control de bajo nivel, y es cool para llegar al piso de fondo de un nuevo protocolo. Dicho esto, algunos de mis contactos profesionales más cercanos son expertos de WebRTC (había dirigido anteriormente un que un SDK de IA filtra dirigido a los productos de WebRTC) y como desarrollador, sólo mirando la documentación de MoQ está claro que todavía es demasiado crudo y temprano para un uso generalizado. Webcodecs Inicio ¿Sustituirá a WebRTC? Quizás WebRTC tiene un ecosistema bien establecido, y resolvió un problema que anteriormente no tenía una buena solución. A diferencia de WebRTC, MoQ no está compitiendo con "nada", está compitiendo con un protocolo establecido y bien soportado. Dicho esto, MoQ tiene beneficios reales sobre WebRTC y otras tecnologías de transmisión como , y así aquí son probablemente algunos casos de uso donde las ventajas de MoQ proporcionarían un caso convincente para los adoptantes tempranos: HLS/DASH en streaming Too big for WebRTC, to small for HLS/DASH El punto dulce para los primeros adoptantes probablemente serían las categorías de aplicaciones que no son bien servidas ni por WebRTC ni por HLS/DASH (no en tiempo real, pero es particularmente de gran escala). Algunos ejemplos pueden incluir: Software de webinar, donde los webinars necesitan interacción en tiempo real pero que también necesita escalar a miles o decenas de miles de participantes Transmisión de eventos virtuales donde los altavoces suelen transmitir pocos=>muchos, pero que a menudo involucran Q&A interactivos Las herramientas de streaming en directo basadas en el navegador, que transmiten vídeo desde los navegadores a los servidores y otros participantes, mientras transmiten simultáneamente a plataformas de redes sociales como Facebook Like o YouTube en directo. More control and reliability than WebRTC Media over Quic también sería útil en escenarios donde se requieren conexiones de vídeo robustas o control de bajo nivel de entrega de vídeo, como en escenarios con feeds de cámaras remotas (cámaras de seguridad, drones, vehículos operados remotamente) o en tuberías de vídeo de IA en tiempo real. WebRTC se utiliza a menudo en estos escenarios, pero en estos casos, el beneficio de escala de MoQ es irrelevante, las ventajas primarias serían de una conectividad más robusta de HTTP3/Quic y control de marco de bajo nivel que hacen de MoQ una opción atractiva. For everything else Para todo lo demás hay El WebRTC. Mastercard Si está construyendo la videoconferencia estándar de corte de cookies, WebRTC es la tecnología claramente mejor y probablemente no habrá un caso de uso donde MoQ tenga sentido hasta / a menos que el ecosistema MoQ alcance el nivel de estabilidad y madurez de WebRTC (posiblemente? pero incluso entonces, podría tomar un tiempo). Más recursos Si usted es curioso sobre Media over Quic, WebRTC o simplemente streaming de medios en tiempo real en general, aquí están algunos recursos: Media over Quic Si quieres saber más sobre Media over Quic, puedes profundizar en El sitio web oficial de MoQ. WebCodecsFundamentals, un libro de texto de código abierto con ejemplos de código La discordia de MoQ WebRTC Hay muchos tutoriales sobre WebRTC ( , de ) y también puede escuchar a algunos otros expertos WebRTC hablando sobre MoQ vs WebRTC en También hay una gran comunidad de discordia para los desarrolladores WebRTC llamados . La web.dev MDN WebRDHacks Pionero