Anmerkung der Redaktion: Das Folgende ist ein gesponserter Gast-Beitrag von Luke Curley, einem der Entwickler von Media over QUIC. Die unten geäußerten Ansichten, technischen Perspektiven und Meinungen sind ausschließlich seine eigenen und sind unabhängig von den Ansichten, Produktangeboten und technischen Spezifikationen von Fastly.
Hallo Fastly-Fans.
Ich bin Luke, alias @kixelated, auch bekannt als einer der Entwickler von Media over QUIC. Fastly gefällt meine MoQ-Blogposts und es hat mich gesponsert, noch mehr davon zu schreiben. Aus irgendeinem Grund …
Der Clou ist, dass es zwei Kopien dieses Blogposts gibt:
Dieser normale Post über MoQ und die Formel 1.
Ein völlig verrückter Post über Lightning McQueen.
Wählen Sie Ihr Gift. Wir werden die zahlreichen Möglichkeiten kennenlernen, wie Sie MoQ auf der Überholspur nutzen können. So oder so erhalten Sie ein schlecht nachgezeichnetes Bild eines Autos. Zumindest ist es nicht KI-generiert.

Der Stand des Rennens
Nehmen wir an, Sie sind ein großer Formel-1-Fan. Ein RIESIGER Fan, aber diese kleine Sache namens verfügbares Einkommen hindert Sie daran, zu jedem Rennen zu gehen.
Früher oder später werden Sie das Rennen von Ihrem Wohnzimmer aus verfolgen wollen. Wir brauchen eine Möglichkeit, das Rennen per Livestream über das Internet direkt auf Ihre Bildschirme zu bringen.
Die Antwort im letzten Jahrzehnt war HLS/DASH. Nehmen Sie einen Medienstream, unterteilen Sie ihn in 0,5 s bis 4 s lange Segmente und stellen Sie diese über HTTP bereit. Es ist langweilig, aber es funktioniert, und Fastly macht das gut (übrigens gesponserte Schleichwerbung).
Das Problem ist, dass wir an eine Latenzgrenze stoßen:
Das Leeren von Medien in Batches erhöht die Latenz (0,5 s bis 4 s).
Netzwerküberlastung verursacht Head-of-Line-Blocking und Puffern.
Jede Sekunde des Pufferns bedeutet noch mehr Latenz.
Diese Latenzgrenze ist der Grund, warum ich MoQ entwickelt habe, als ich bei Twitch war. Das Ziel war es, Livestreams interaktiver (und weniger langweilig) zu machen. Frames streamen und gelegentlich verwerfen, anstatt zu blockieren.
Keine Anzahl an LL-Präfixen oder ULTRA-LOW-LATENCY-Marketing kann dies beheben. Wir benötigen umgehend ein neues Protokoll, um Head-of-Line-Blocking zu vermeiden.
MoQ für die Fans
Zuerst möchte ich den Elefanten im Raum ansprechen. Ich habe in der Vergangenheit bereits erklärt, dass Sie MoQ für hochwertige Inhalte nicht benötigen.
Und es ist wahr. Wenn Sie jeden Frame eines Livestreams sehen möchten, bringt MoQ kaum Vorteile. Sie fahren deutlich besser damit, HLS/DASH mit einem großen Puffer zu verwenden, um Netzwerkschwankungen auszugleichen. Ähnlich wie YouTube Videominuten im Voraus herunterlädt.
Ja klar, Warten wird immer zu einer besseren Bildqualität führen. Die Hypothese ist jedoch, dass einige Nutzer eine niedrigere Latenz auf Kosten der Qualität bevorzugen.

Oft besteht der Nervenkitzel beim Ansehen eines Livestreams darin, LIVE Teil der Geschichte zu sein, und nicht darin, jede Millisekunde von Runde 392 zu sehen. Das ist der Grund, warum Twitch überhaupt existiert, die Interaktivität ist wichtiger als die Qualität.
Vielleicht wettet der Nutzer auf das Rennen, postet in den sozialen Medien oder möchte einfach nur der Erste sein, der es erfährt. Es ist ein schlechtes Gefühl, auf dem letzten Platz zu sein. Zu wissen, dass Sie sich immer noch in Runde 392 befinden, während Ihr Nachbar schon in Runde 393 ist.
Wie auch immer, dies wäre kein sonderlich technischer Blog-Post, wenn ich nicht erklären würde, wie es funktioniert. MoQ kann neuere Inhalte gegenüber älteren Inhalten priorisieren (in Abhängigkeitsreihenfolge). So kann jeder Zuschauer selbst wählen, ob es eine Lücke in der Mitte oder eine Lücke am Ende gibt.
Hier gibt es absolut einen Kompromiss. Aber das ist auch das Schöne an MoQ: Es ist ein konfigurierbarer Latenzregler, den man höher oder niedriger drehen kann.

HINWEIS: MoQ kann die Qualität/Latenz bieten, die Sie von HLS/DASH erwarten. Wir ermöglichen lediglich eine niedrigere Mindestlatenz.
MoQ für Autos
Während ich MoQ ursprünglich für die Fans entwickelt habe, bestehen Unternehmen darauf, es auf den Autos einzusetzen. Oder den Drohnen. Oder den Booten.
Eine der Herausforderungen beim Livestreaming besteht darin, die Inhalte vom Fahrzeug zu übertragen. Mobilfunk- und Satellitennetzwerke sind ein Chaos. Ich schaue eigentlich kein F1, aber wenn ich Ausschnitte davon sehe, sind die Kamera-Feeds aus den Autos schrecklich.
Ich bin ein Videostar, kein Radiostar, aber ich vermute, dass es wahrscheinlich am Networking liegt. Es wird Funklöcher oder Störungen oder was auch immer rund um die Strecke geben. Eine Realität der Signalübertragung ist, dass man mit Phasen hoher, niedriger und keiner Bandbreite umgehen muss.
Der Feed von einem F1-Wagen wird so etwas wie RTP über UDP verwenden. Es gibt viele, viele verschiedene Ansätze, aber in der Regel setzt ein RTP-Publisher für einen Frame eine Frist von ~100 ms, bevor er für immer verworfen wird. Eine kleine Signalstörung führt also zu Artefakten, Tearing oder eingefrorenem Video.
Aber MoQ gibt nicht auf.
Wie bereits erwähnt, priorisiert MoQ stattdessen die Übertragung der neueren Daten (in Abhängigkeitsreihenfolge). Die alten Daten werden nicht verworfen, sondern im RAM in eine Warteschlange eingereiht (bis zu einer TTL). Wenn sich die Bandbreite erholt, können wir altes Material nachladen, anstatt es für immer zu verlieren.

Jeder MoQ-Abonnent entscheidet unabhängig, wie lange auf den jeweiligen Frame gewartet werden soll:
Der Livestream wartet möglicherweise bis zu 1 Sekunde
Das Instant-Relay wartet möglicherweise bis zu 10 Sekunden
Die VOD-Aufzeichnung wartet möglicherweise bis zu 1 Minute.
All diese zusätzliche Zeit bedeutet mehr Zeit für das Eintreffen alter Frames. Der Echtzeit-Feed ist möglicherweise extrem verlustbehaftet, aber das VOD ist einwandfrei.
MoQ für die Roboter
Menschen sind nicht die Einzigen, die Livestreams benötigen. Auftritt der Roboter. Sie byten.
Es stellt sich heraus, dass MoQ nicht nur für Medien funktioniert:
Der Tachometer? Ein Livestream
Das Lenkrad? Ein Livestream
Der G-Kraft-Sensor? Ob Sie es glauben oder nicht, ein Livestream
Ganz im Ernst, an Medien ist nichts Besonderes. Es sind einfach delta-kodierte Daten. Sie können viele Dinge delta-kodieren, sogar JSON.
Netzwerke sind endlich, daher teilen wir Medien in Stücke auf. Jeder einzelne Track, jede Gruppe, jeder Frame und jedes Paket könnte verworfen werden, ohne den Medienstream zu beenden. Die Realität ist, dass manche Bytes einfach weniger wertvoll als andere sind.
Der schwierige Teil besteht darin, alles wieder zusammenzusetzen. Deshalb verwenden wir Zeitstempel; sie geben an, wann Dinge relativ zu anderen Dingen geschehen sind. Sogar Metadaten werden mit einem Zeitstempel versehen, damit sie Audio/Video-Frames zugeordnet werden können.
Sie können, und sollten, die rote Pille nehmen und MoQ für ALLES verwenden. Eine einzelne kooperative QUIC-Verbindung mit: „Kontrollen > Audio > Metadaten > Video“
INTERESSANTES DETAIL: MoQ wird aus der Ferne eingesetzt, um Drohnen über Starlink zu steuern. Nicht nur für den Kamera-Feed, sondern auch für die Steuerung!
Und ja, das klingt einfach, ist aber etwas, das WebRTC völlig vermasselt. Sie müssen eine separate Verbindung für Metadaten verwenden, und Zeitstempel werden im Browser nicht verfügbar gemacht.
MoQ für die Strecke
Wie sich herausstellt, gibt es an einer Rennstrecke SEHR VIELE Videokameras. Und es gibt SEHR VIELE Zuschauer, die sie sehen wollen.
Wir wollen natürlich nicht, dass sich Zuschauer direkt mit jeder Kamera verbinden. Diese arme Videokamera könnte auf keinen Fall 100.000 Kopien desselben Feeds übertragen. Wir möchten, dass Broadcast-Studios diese Input-Feeds übernehmen und zu einem syndizierten Feed für die Distribution zusammenführen.
Aber was ist, wenn mehrere Sendestudios dasselbe Videomaterial haben wollen? Satellitenübertragungswagen sind teuer und verfügen über ein begrenztes Bandbreitenbudget. Wir wollen weder mehrere Kopien desselben Videomaterials übertragen noch Videomaterial übertragen, das niemand haben möchte.
Hier glänzt MoQ.
moq-relay ist ein einfacher Proxy, der 1 Publisher mit N Abonnenten (pro Broadcast/Track) verbindet. Wenn moq-relay-Instanzen sich miteinander verbinden, bilden sie automatisch einen Cluster. Sie können sie selbst hosten (alles ist Open Source) oder ein CDN dafür bezahlen, sie für Sie zu hosten.
moq-relay übernimmt Erkennung, Steuerung und Proxying. Zum Beispiel:
Jede Kamera verbindet sich mit einem selbstgehosteten moq-relay unter
192.168.420.69.moq-relay wird mit
--cluster-connect https://cdn.moq.dev/f1ausgeführt.Studio-Clients (oder ein Relay!) verbinden sich mit
https://cdn.moq.dev/f1.
Wie von Zauberhand sind alle Kamera-Feeds an jedem Relay automatisch verfügbar und werden bei Bedarf automatisch über einen Proxy weitergeleitet. Und unabhängig von der Anzahl der nachgelagerten Abonnenten wird zwischen den einzelnen moq-relay-Instanzen immer nur eine Kopie übertragen.
Das ist extrem wichtig, wenn das Internet am Veranstaltungsort unzuverlässig ist und teure Satellitenübertragungswagen im Spiel sind. Betreiben Sie einige moq-relay-Instanzen an jeder Rennstrecke, fassen Sie alle Feeds automatisch zusammen und veröffentlichen Sie diese über ein CDN. Kinderleicht!

Und es gibt kein Limit für die Anzahl der Verbindungen, die Sie herstellen können. moq-lite nutzt bei einem Gleichstand die Verbindung mit dem kürzesten Pfad. Vielleicht läuft eine Verbindung über Ethernet, während die andere über Satellit läuft; lassen Sie Ihrer Fantasie freien Lauf.
Fazit
Media over QUIC bietet eine Vielzahl interessanter Anwendungsfälle, selbst über Medien hinaus. Es ist die Zukunft des Livestreamings, und Sie sollten dabei sein. Vroom vroom.
Nochmals vielen Dank an Fastly für das Sponsoring dieses Posts. Das Unternehmen sagte mir einfach, ich solle etwas über MoQ schreiben, und das habe ich getan. HAFTUNGSAUSSCHLUSS: Ich schaue nicht mal F1, lul.
Geschrieben von @kixelated. Senden Sie mir gerne eine E-Mail oder schauen Sie auf moq.dev vorbei, um mehr über MoQ zu erfahren.


