Zum Inhalt springen
Castreon
Auslieferung

WebRTC — Wiedergabe und Live-Übertragung im Browser

Aktualisiert am 05 Okt 2026

WebRTC spielt einen Kanal direkt im Browser ab — ohne App, ohne Plugin — mit einer viel geringeren Verzögerung als HLS. Castreon liefert Ihnen eine fertige Player-Seite, den Code zum Einbetten in Ihre Website und eine standardisierte WHEP-Adresse für eigene Player. Hat das Profil mehrere Qualitäten, erhält jeder Zuschauer die, die zu seiner Verbindung passt.

Es geht auch umgekehrt: Ein Kanal kann eine Live-Übertragung über WebRTC empfangen (WHIP) — aus OBS, aus anderer WHIP-Software oder direkt aus dem Browser, mit einer Kamera oder einem geteilten Bildschirm.

Verfügbar ab Castreon 1.0.4 im Enterprise-Plan.

Wiedergabe für einen Kanal einschalten

  1. Öffnen Sie den Kanal → Bearbeiten → Ausgang hinzufügen und wählen Sie bei Typ die Option WebRTC.
  2. Legen Sie optional Maximale Zuschauer pro Kanal fest (0 = keine Grenze).
  3. Hat das Profil mindestens zwei H.264-Qualitäten, lassen Sie Mehrere Qualitäten im Player (neben Aktiv) eingeschaltet — siehe unten. Ist die Option aus oder hat das Profil nur eine Qualität, wählen Sie die Gesendete Qualität.
  4. Speichern Sie. Die WebRTC-Adressen erscheinen auf der Kanalseite unter Auslieferung.

Solange niemand zuschaut, läuft nichts: WebRTC startet mit dem ersten Zuschauer und stoppt 30 Sekunden nach dem letzten.

Die Adressen

Für einen Kanal mit dem Kurznamen kanal1:

Zeile in Auslieferung Adresse Für
WebRTC · player http://<domain>/whep/kanal1/player alle — öffnet sich in jedem aktuellen Browser
WebRTC · iframe der Code, der den Player in eine Webseite einbettet Ihre Website
WebRTC · WHEP http://<domain>/whep/kanal1 Ihr eigener WebRTC-Player oder Ihre App (WHEP-Standard)

<domain> ist die Öffentliche Domain unter Einstellungen → Instanz — siehe M3U-Export und öffentliche Domain. Haben Sie einen Token für Player gesetzt, fügt das Panel ihn für Operatoren und Administratoren bereits in die Adressen ein, und der Player gibt ihn selbst weiter. Es gelten dieselben Erlaubten Adressen wie für HLS.

Der Player startet ohne Ton, weil Browser die automatische Wiedergabe nur stumm erlauben; der Zuschauer schaltet den Ton mit Sound on ein.

Mehrere Qualitäten im Player

Mit einem Profil, das mindestens zwei H.264-Qualitäten hat — zum Beispiel die Vorlage ABR-Leiter (mehrere Qualitäten): 1080p, 720p und 480p —, erhält jeder Zuschauer eine davon:

  • Automatisch: Castreon misst die Verbindung jedes Zuschauers fortlaufend. Trägt die Verbindung die aktuelle Qualität nicht mehr, geht es eine Stufe nach unten; nach einer stabilen Phase versucht es die Qualität darüber. Hält ein Versuch nicht, geht es zurück und wartet länger bis zum nächsten.
  • Von Hand: Der Player hat oben rechts ein Qualitätsmenü (Auto, 1080p, 720p, 480p, jeweils mit Bitrate). Eine dort gewählte Qualität bleibt, bis der Zuschauer wieder Auto wählt.

Der Wechsel erfolgt beim nächsten Keyframe des Profils (höchstens einige Sekunden), ohne gestörtes Bild. Die Qualitäten sind die, die das Profil ohnehin kodiert — es wird nichts zusätzlich kodiert; verwendet werden nur die H.264-Qualitäten. Andere WHEP-Player erhalten die automatische Auswahl ebenfalls; ein Player, der keine Angaben zu seiner Verbindung liefert, bleibt bei einer mittleren Qualität (der besten bis etwa 3,5 Mb/s).

Ändern Sie das Profil oder die Option, während jemand zuschaut, verbinden sich die Player innerhalb weniger Sekunden selbst neu, mit den neuen Qualitäten.

Server-Einstellungen

Einstellungen → WebRTC:

  • Port (UDP + TCP) — leer bedeutet 33478; ein Port für alle Zuschauer und Übertragungen. Öffnen Sie ihn in der Firewall für UDP und TCP — das Panel zeigt den genauen Befehl, zum Beispiel ufw allow 33478/udp && ufw allow 33478/tcp.
  • Öffentliche IP — nur wenn der Server hinter einem 1:1-NAT steht (manche Clouds geben dem Server eine private Adresse). Lassen Sie das Feld leer, wenn die öffentliche Adresse direkt auf dem Server liegt.
  • Maximale Zuschauer pro Server — 0 bedeutet keine Grenze; gilt sofort.

Port und öffentliche IP gelten nach einem Neustart des Dienstes (sudo systemctl restart castreon). Wenn ein Neustart nötig ist, zeigt das Panel es an.

Verzögerung und Bild

  • Bei einer Quelle, die kontinuierlich ankommt (UDP, SRT, RIST, DVB, WHIP), beträgt die Verzögerung etwa ein bis zwei Sekunden.
  • Bei einer HLS- oder DASH-Quelle kommt das Signal in Segmenten von einigen Sekunden. Castreon hält das Bild kurz zurück und sendet es gleichmäßig, die Verzögerung beträgt daher einige Sekunden. Direkt nach dem Start kann es einen einzigen kurzen Aussetzer geben, während Castreon die Quelle misst; danach läuft das Bild flüssig.
  • Browser spielen H.264 ohne B-Frames ab. Ist der Kanal bereits von Castreon in H.264 kodiert, wird das Bild unverändert kopiert. Andernfalls (Passthrough, HEVC) wandelt Castreon es für Browser um — rechnen Sie mit etwa ein bis zwei Prozessorkernen pro Full-HD-Kanal. Mehrere Qualitäten im Player werden immer kopiert.
  • Der Ton wird in Opus umgewandelt, das Format von WebRTC.

Live-Quelle: Übertragung aus OBS oder aus dem Browser (WHIP)

Quelle hinzufügen

  1. Öffnen Sie den Kanal → Bearbeiten → Quelle hinzufügen und wählen Sie WebRTC (WHIP).
  2. Speichern Sie. Castreon erzeugt die WHIP-Adresse (http://<domain>/whip/kanal1) und einen Stream-Schlüssel. Beide erscheinen im Editor, mit Kopier-Knopf.

Der Schlüssel wirkt wie ein Passwort: Wer ihn hat, kann auf dem Kanal senden. Neuer Schlüssel erzeugt einen anderen — nach dem Speichern funktioniert der alte nicht mehr. Konten, die den Kanal nur ansehen dürfen, sehen den Schlüssel maskiert.

Die Übertragung wird zur Quelle des Kanals wie jede andere: Profil, Ausgänge und Failover funktionieren gleich. Solange niemand sendet, hat die WHIP-Quelle kein Signal: Der Kanal wartet und übernimmt die Übertragung wenige Sekunden nach ihrem Start. Mit einer Ersatzquelle spielt der Kanal in der Zwischenzeit die Ersatzquelle und kehrt bei der nächsten Prüfung der Hauptquelle (Failover-Einstellungen des Kanals) zur Übertragung zurück. Ein Kanal hat eine WHIP-Quelle und jeweils eine Übertragung — eine neue Übertragung ersetzt die vorherige. Eine Übertragung, die 20 Sekunden lang nichts sendet, wird geschlossen.

Aus OBS (ab Version 30)

Settings → Stream: Service = WHIP, Server = die WHIP-Adresse, Bearer Token = der Stream-Schlüssel. Verwenden Sie unter Output einen H.264-Encoder und ein Keyframe-Intervall von 2 Sekunden. Castreon übernimmt das H.264-Bild unverändert und wandelt den Opus-Ton für den Kanal in AAC um.

Andere Software, die über WHIP senden kann, wird genauso eingerichtet: die WHIP-Adresse und der Schlüssel als Bearer-Token.

Aus dem Browser

Auf der Kanalseite zeigt die Karte WebRTC-Quelle (WHIP), ob eine Übertragung ankommt, von welcher Adresse und aus welcher Software, sowie Bild und Ton. Aus dem Browser senden öffnet ein Fenster, in dem Sie die Quelle (Kamera und Mikrofon oder ein geteilter Bildschirm) und die Qualität (720p oder 1080p) wählen, dann Übertragung starten. Lassen Sie das Fenster geöffnet, solange Sie senden — wenn Sie es schließen, endet die Übertragung.

Browser erlauben Kamera und Bildschirm nur auf einer HTTPS-Seite (oder auf localhost, zum Beispiel über einen SSH-Tunnel) — siehe nächster Abschnitt. Browser, die kein H.264 senden können, senden VP8; Castreon wandelt es in H.264 um, was Prozessorzeit kostet.

HTTPS für das Panel

Castreon stellt das Panel über einfaches HTTP bereit. Für HTTPS setzen Sie einen Webserver mit Zertifikat davor. Am einfachsten ist Caddy, der sich das Zertifikat selbst besorgt — /etc/caddy/Caddyfile:

tv.example.com {
    reverse_proxy 127.0.0.1:33400
}

Mit nginx verwenden Sie proxy_pass http://127.0.0.1:33400; und proxy_buffering off; (das Panel erhält Live-Aktualisierungen). Setzen Sie danach die Öffentliche Domain unter Einstellungen → Instanz auf https://tv.example.com, damit die Adressen unter Auslieferung und die WHIP-Adresse ebenfalls HTTPS verwenden. Bild und Ton von WebRTC laufen weiterhin direkt über den WebRTC-Port, nicht über den Webserver.

Auf der Kanalseite

Solange jemand zuschaut, zeigt die Karte WebRTC die Zuschauer und die Grenze, ob das Bild kopiert oder umgewandelt wird, die Qualitäten (mit gemessener Bitrate und der Zahl der Zuschauer pro Qualität), den Puffer (wie lange Castreon das Bild hält, um es gleichmäßig zu senden), die gesendete Menge, die Kurzen Aussetzer und die Liste der Zuschauer — mit der Qualität, die jeder erhält, ob sie automatisch oder im Player gewählt wurde, und der geschätzten Bandbreite.

Für das Monitoring veröffentlicht /metrics auch die WebRTC-Metriken (castreon_webrtc_…) — siehe Metriken und Grafana. Die automatische Prüfung unter Einstellungen → Support warnt Sie, wenn der WebRTC-Port nicht geöffnet werden konnte oder ein Kanal sein Bild nicht über WebRTC senden kann — siehe Automatische Prüfung und Diagnosebericht.

Wenn es nicht funktioniert

  • Der Player versucht immer wieder, sich zu verbinden — der Port ist in der Firewall geschlossen (er muss für UDP und TCP offen sein), oder der Server steht hinter einem NAT und die Öffentliche IP ist nicht gesetzt.
  • Der Player zeigt „WebRTC is available on the Enterprise plan“ — die Lizenz des Servers enthält kein WebRTC.
  • Der Player zeigt „channel is not running — retrying…“ — der Kanal konnte nicht starten; prüfen Sie, ob er aktiv ist und seine Quelle funktioniert (WebRTC startet ihn bei Bedarf).
  • Das Bild stockt ab und zu — die Quelle kommt unregelmäßig. Nach dem ersten Aussetzer vergrößert Castreon seine Reserve selbst; wenn Kurze Aussetzer weiter steigt, prüfen Sie die Quelle.
  • Der Player hat kein Qualitätsmenü — das Profil hat nur eine H.264-Qualität, oder Mehrere Qualitäten im Player ist ausgeschaltet.
  • OBS kann sich nicht verbinden — prüfen Sie die WHIP-Adresse und den Schlüssel (nach Neuer Schlüssel und Speichern gilt nur noch der neue) und ob der WebRTC-Port für UDP und TCP offen ist.
  • Senden aus dem Browser verlangt HTTPS — öffnen Sie das Panel über HTTPS (siehe oben) oder über einen SSH-Tunnel auf localhost.

Datenschutz

Cookies & lokaler Speicher

Unbedingt erforderliche Cookies sind immer aktiv. Statistik und Marketing nutzen Dienste von Google und starten nur, wenn Sie zustimmen — bis dahin wird nichts an Google übertragen. Sie können Ihre Einwilligung hier jederzeit widerrufen.

Unbedingt erforderlich

Ohne sie funktionieren Anmeldung, Formulare und die gewählte Sprache nicht. Sie erfordern keine Einwilligung (§ 25 Abs. 2 Nr. 2 TDDDG).

Immer aktiv
Name Zweck Dauer Art
castreon-session Hält Ihre Sitzung: Anmeldung und gewählte Sprache 2 Stunden, bei jedem Aufruf verlängert Cookie
XSRF-TOKEN Schützt Formulare vor gefälschten Anfragen 2 Stunden, bei jedem Aufruf verlängert Cookie
remember_web_… Nur wenn Sie bei der Anmeldung „Angemeldet bleiben“ wählen Bis zur Abmeldung, max. 400 Tage Cookie
__cf_bm Cloudflare: unterscheidet Besucher von Bots, nur wenn der Datenverkehr geprüft wird 30 Minuten Cookie · Cloudflare
castreon:consent Speichert Ihre Cookie-Auswahl 12 Monate Lokaler Speicher
theme Darstellung des Kundenkontos: hell, dunkel oder System Bis Sie sie ändern Lokaler Speicher

Statistik

Google Analytics 4 (Google Ireland Ltd.): welche Seiten besucht werden, woher Besuche kommen und mit welchem Gerätetyp — mit pseudonymen Kennungen, ohne Speicherung der IP-Adresse. Hilft uns, die Website zu verbessern.

Name Zweck Dauer Art
_ga Google Analytics: erkennt den Besucher wieder (pseudonyme Kennung) 13 Monate Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: speichert den Sitzungsstatus 13 Monate Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): misst, ob Besuche über Google-Anzeigen zu einem Test oder Tarif führen, und ermöglicht die Anzeige von Castreon-Werbung auf anderen Websites (Remarketing).

Name Zweck Dauer Art
_gcl_au, _gcl_aw Google Ads: verknüpft den Besuch mit dem Anzeigenklick (Conversions) 90 Tage Cookie · Google Ads
IDE, test_cookie Google Ads: Remarketing und Anzeigenmessung, auf Google-Domains (doubleclick.net) Bis zu 13 Monate Cookie · Google (Drittanbieter)