- Für FFmpeg wurde offiziell ein WHIP(WebRTC-HTTP Ingestion Protocol)-Muxer hinzugefügt, der ultraniedriges Streaming mit weniger als 1 Sekunde Latenz direkt unterstützt
- In diesem Commit wurden Benennung und Struktur des WHIP-Muxers überarbeitet, außerdem wurden SSL-/DTLS-/RTC-Fehlermeldungen und Logs verbessert
- Wichtige Protokollparameter wie DTLS-Kurven/Profile, RTP-Payloads, ICE STUN usw. wurden an die Chrome-Definitionen angepasst, und Magic Numbers wurden in Makros und Funktionen ausgelagert
- DTLS-Handshake und ICE-Verarbeitung wurden in einer Funktion zusammengeführt und optimiert, wodurch sich Leistung und Stabilität deutlich verbessern
- Fehler bei Audio- und Video-Transkodierung (
h264_mp4toannexb, OPUS-Zeitstempel, Marker-Setzung usw.) wurden behoben, was die Kompatibilität mit standardmäßigen WebRTC-Umgebungen erhöht
- Die Abhängigkeit von OpenSSL wurde klarer definiert, sodass WHIP nur bei aktiviertem DTLS-Support gebaut wird
- Mit FFmpeg allein wird der Aufbau einer WebRTC-basierten Broadcast- und Echtzeit-Streaming-Umgebung einfacher, und die Eigenschaften ultraniedriger Latenz können gegenüber Legacy-Protokollen wie RTMP besser genutzt werden
avformat/whip: Unterstützung für den FFmpeg-WHIP-Muxer hinzugefügt
Zusammenfassung der wichtigsten Änderungen
- Offizielle Einführung eines Muxers auf Basis von WHIP Version 3, inklusive Überarbeitung interner Bezeichnungen und Strukturen
- Der Log-Kontext und die Fehlermeldungen für SSL, DTLS und RTC sind deutlich klarer geworden
- Hartkodierte Magic Numbers wurden in Makros und separate Funktionen ausgelagert, was die Wartbarkeit verbessert
- Listen für DTLS-Kurven, SRTP-Profilnamen und weitere Punkte wurden an die FFmpeg- und OpenSSL-Standards angepasst
- ICE-STUN-Magic-Number und RTP-Payload-Typen wurden so aktualisiert, dass sie mit dem Standard des Chrome-Browsers übereinstimmen
- Probleme bei der Medienverarbeitung wie Audio-Frame-Größe, H.264-MP4→AnnexB-Konvertierung und OPUS-Zeitstempel wurden behoben
- Die Logik für DTLS-Handshake und ICE-Verarbeitung wurde zur einfacheren Verwaltung in einer einzigen Funktion zusammengeführt
- Die Bedingungen für DTLS-Support auf OpenSSL-Basis wurden klarer definiert, wodurch sich Build-Fehler und Kompatibilität verbessern
- Interne TLS-/DTLS-Strukturen wie SRTP, BIO-Callbacks sowie die Initialisierung von CA-Schlüsseln/Zertifikaten wurden zusammengeführt
- Insgesamt 13 Dateien wurden geändert oder neu hinzugefügt, darunter die neue Datei
whip.c
Hintergrund und Bedeutung
- WHIP ist ein HTTP-basiertes Standardprotokoll für die Stream-Einspeisung auf WebRTC-Basis und essenziell für Live-Streaming mit ultraniedriger Latenz
- Bisher waren für WebRTC-Encoding und -Übertragung mit FFmpeg separate Tools oder komplexe Relay-Konfigurationen nötig, doch mit diesem Merge ist nun WHIP-Streaming per einzelnem FFmpeg-Befehl möglich
- Das ist ein technischer Wendepunkt, um in Bereichen wie Echtzeit-Broadcasting, Live-Commerce und Videokonferenzen direkt mit dem modernen WebRTC-Ökosystem zu interagieren
1 Kommentare
Hacker-News-Kommentare
--without-whipgibt, um das Feature bei Bedarf komplett aus dem Build auszuschließen; das wäre aus dieser Sicht optimal../configure-Optionen zu finden.--enable-muxer=whipund--enable-opensslsind.