RTMP-Server
Verwenden Sie RTMP-Server, um OBS, Encoder und Gast-Publisher an stabilen RTMP-Ingest-Endpunkten zu empfangen. Kontrollieren Sie die Veröffentlichung und den Wiedergabezugriff, und überprüfen Sie dann die Live-Bitrate und die Verbindungsdaten.
Geeignet, wennOBS, ein RTMP-Encoder oder ein Gast-Publisher benötigt eine stabile Push-URL, Zugriffskontrolle und Live-Verbindungsstatistiken.
Anderes Modul verwenden, wennVerwenden Sie SRT-Server für SRT-Transport und Failover oder Streams für einzelne Identitäten innerhalb eines vorhandenen Servers.
/api/rtmp-servers/createVoraussetzungen
Alle Verwaltungsmethoden erfordern einen gültigen x-access-token. Reservieren Sie einen erreichbaren Listener-Port und legen Sie die Stream-Steuerung und Zugriffsregeln des Servers fest, bevor Sie Verbindungsdetails weitergeben.
Funktionen
createundupdatekonfigurieren den Listen-Port, den Player-Puffer und die Stream-Zugriffsrichtlinie.getAll,getCountundgetByIdinspizieren Server und erlaubte Stream-Einträge.startundstopsteuern den RTMP-Listener.getStatisticsmeldet Eingabe- und Ausgabebitrate, die Anzahl der Publisher und Receiver sowie verfügbare Angaben zu Clientadresse, Region und Anwendung.getStatisticHistorygibt die verfügbare aktuelle Statistikhistorie zurück.removelöscht den Server.
Beispiel-Workflow
- Erstellen Sie den RTMP-Server mit seinem Listen-Port und Player-Puffer.
- Wählen Sie einen Stream-Key- oder IP-basierten Zugriff oder erlauben Sie Gastverbindungen nur, wenn der Workflow dies erfordert.
- Starten Sie den Listener und geben Sie jedem Publisher die gewünschten Verbindungsdetails.
- Rufen Sie
getStatisticsauf, um Bitrate, Rollen und den Verbindungsursprung zu überprüfen. - Verbinden Sie das Ingest mit einem Aufnahme-, Restream- oder Webplayer.
Typische Anwendungsfälle
- Empfangen Sie wiederkehrende OBS- oder Encoder-Contribution-Streams an einem stabilen Endpunkt.
- Erlauben Sie zugelassenen Gast-Publishern und -Receivern, im Rahmen der gewählten Zugriffsrichtlinie eigene Stream-Keys zu erstellen.
- Überwachen Sie Kunden- oder Veranstaltungsortverbindungen nach Bitrate, Rolle, Adresse und Region.
- Stellen Sie einen RTMP-Contribution-Feed als HLS- oder DASH-Browser-Wiedergabe bereit.
Einschränkungen und Fehlerbehebung
Der Port muss frei und erreichbar sein. Zugangsregeln, Stream-Schlüssel und Publisher- oder Receiver-Rollen müssen mit der Verbindung übereinstimmen. Aktuelle Statistiken sind Betriebsdaten und kein dauerhafter Analysespeicher; exportieren Sie sie, wenn eine längere Aufbewahrung oder Warnung erforderlich ist.
Nächste Schritte
Prüfen Sie einen Publisher mit getStatistics und verbinden Sie den Server anschließend mit Restreams, Aufzeichnungen oder Webplayern.
RTMP-Publisher annehmen und Live-Bitrate prüfen
Stellen Sie einen RTMP-Einstiegspunkt mit der benötigten Zugriffsrichtlinie bereit, starten Sie ihn und lesen Sie aktuelle sowie letzte Prozessstatistiken derselben Ressource.
- RTMP-Ingest erstellenWählen Sie Listen-Port, Puffer und offenen, Stream-ID- oder IP-Zugriff.
POST /api/rtmp-servers/create - Server startenAktivieren Sie den Einstiegspunkt vor der Verbindung von OBS, Encoder oder Publisher.
POST /api/rtmp-servers/start - Live-Statistik lesenPrüfen Sie aktuelle Bitrate und Verbindungsdaten; verwenden Sie die Historie für letzte Samples.
POST /api/rtmp-servers/getStatistics
Eine erfolgreiche Create-Antwort bestätigt die Konfiguration, nicht den Medienzustand. Starten Sie die Ressource und prüfen Sie ihre Laufzeitstatistik, bevor Sie Produktionsverkehr senden.
Gastzugriff für RTMP-Publishing und -Empfang ausgeben
Erstellen Sie einen temporär offenen Server für frei gewählte Gast-Stream-Keys oder explizite Publisher-/Receiver-Datensätze für kontrollierte Keys bzw. feste Hosts und prüfen Sie Verbindungen in der Live-Statistik.
- Offenen oder kontrollierten Ingest erstellenWählen Sie Allow-all-, Stream-Key- oder IP-Steuerung und fügen Sie bei benötigten access_settings Publisher- und Receiver-Rollen hinzu.
POST /api/rtmp-servers/create - Befüllte Zugriffsliste lesenVerwenden Sie getById, da die Create-Antwort verknüpfte Zugriffsdaten möglicherweise nicht befüllt.
POST /api/rtmp-servers/getById - Publisher und Receiver prüfenBestätigen Sie aktuelle Bitrate, Rollenzahlen, Client-Adressen und geografische Anreicherung für die erwarteten Gäste.
POST /api/rtmp-servers/getStatistics
CONTROL_ACCESS_ALLOW_ALL lässt Gäste mit einem gewählten Stream-Key verbinden; es ist keine Authentifizierung. Bevorzugen Sie in Produktion CONTROL_ACCESS_STREAM_ID oder CONTROL_ACCESS_IP_ADDRESS mit rollenspezifischen access_settings und beenden Sie temporären Gastzugriff nach dem Event.
Erstellen Sie einen RTMP-Ingest-Server mit Listener-Port, Player-Puffer, Aktivstatus und optionalen Zugriffsregeln für Stream-Keys oder IP-Adressen. Senden Sie das API-Token im x-access-token-Header.
server_buflen wird in Sekunden gemessen. Der Standard ist 5, und akzeptierte Werte sind 1 bis 120.
Wenn Sie stream_control_type und access_settings mitsenden, erstellt Callaba die Zugriffsregeln zusammen mit dem Server. Die Erstellungsantwort kann trotzdem access: [] enthalten; rufen Sie getById auf, um die ausgefüllte Zugriffsliste zu lesen.
Anfragebeispiele
Wählen Sie eine Voreinstellung für offenen Ingest, explizite Stream-Keys oder feste IP-Adressen. Für eine operatorgesteuerte Bereitstellung steht außerdem ein Beispiel unter vMix Script bereit.
Typische Anwendungsfälle
- Stellen Sie OBS oder einem anderen Software-Encoder einen stabilen RTMP-Contribution-Endpunkt bereit.
- Beschränken Sie den Zugriff von Partnern oder Studios mit Stream-Keys oder einer IP-Allowlist.
- Erstellen Sie einen Ingest-Endpunkt, der die nachgelagerte Browser-Wiedergabe über HLS oder DASH ermöglicht.
Verwenden Sie dieses Muster, wenn Publisher und Receiver sich mit expliziten RTMP-Stream-Keys anstelle von offenem Ingest authentifizieren sollen. Es spiegelt die Dashboard-Voreinstellung wider, mit je einem Publisher- und Receiver-Key.
Verwenden Sie dieses Muster, wenn die RTMP-Peers als feste Hosts bekannt sind. Die Dashboard-Voreinstellung erstellt Publisher- und Receiver-Regeln, die anhand des Hosts statt der Stream-ID greifen.
Dashboard-Bezeichnung: Name.
Das Formular ist standardmäßig Live.
Der aktuell validierte API-Vertrag akzeptiert SERVER_TYPE_RTMP.
Dashboard-Bezeichnung: Einmal erstellt aktivieren.
„Aktiviert“ beschreibt den Serverzustand. Durch Ausschalten werden alle Publisher und Receiver, die mit dem RTMP-Server verbunden sind, getrennt.
Dashboard-Bezeichnung: Port.
Das Dashboard beginnt mit 1945. Die REST API akzeptiert Ports von 1 bis 65535. Wählen Sie einen freien Port, den Publisher und Zuschauer erreichen können.
Dashboard-Bezeichnung: Pufferlänge (s).
Dieser Wert wird in Sekunden konfiguriert. Das Dashboard beginnt mit 5; der zulässige Bereich reicht von 1 bis 120.
Diese Einstellung steuert, wie viele Mediendaten der Player vor dem Wiedergabestart puffert.
Dashboard-Bereich: Erlaubte Streams.
Steuert, ob der RTMP-Server eingehende Publisher und Receiver durch explizite Stream-Keys oder durch IP-Allowlist validiert. Der Erstellungsablauf verwendet derzeit Werte wie CONTROL_ACCESS_STREAM_ID und CONTROL_ACCESS_IP_ADDRESS.
Optionaler Satz von Zugriffsregeln, die zusammen mit dem Server erstellt werden können.
Für den Stream-Key-Modus enthält jedes Element in der Regel stream_id und role_name. Für den IP-basierten Modus verwendet jedes Element host und role_name.
Ressourcen-ID, die beim Erstellen oder Auflisten des RTMP-Servers zurückgegeben wird.
Kurzform für _id.
Name, der für den RTMP-Server gespeichert ist.
Die API gibt SERVER_TYPE_RTMP zurück.
RTMP-Listener-Port, den die API zurückgibt.
Konfigurierte RTMP-Pufferlänge.
Ein aktuelles Status-Flag, das auf dem Serverobjekt gespeichert ist.
Portzuweisung, die dem RTMP-Listener zugeordnet ist.
Erstellungszeitstempel.
Zeitstempel der letzten Änderung.
Zugriffssteuerungsmodus, der auf dem RTMP-Server gespeichert ist, sofern vorhanden.
Die Antwort von create gibt dies derzeit als leeres Array zurück, auch wenn access_settings übermittelt wurden. Verwenden Sie getById zum Abrufen der vollständig aufgelösten Zugriffseinträge.
Bei erfolgreicher Ausführung enthält die Antwort success: true.