media server logo
Dokumentationsnavigation ein- oder ausblenden
Callaba-Startseite

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.

FunktionRTMP-Contribution-Stream empfangen

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.

1RTMP-Publisher verbinden2Zugriff steuern3Routen oder wiedergeben
POST /api/rtmp-servers/create
10 Endpunkte

Voraussetzungen

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

  • create und update konfigurieren den Listen-Port, den Player-Puffer und die Stream-Zugriffsrichtlinie.
  • getAll, getCount und getById inspizieren Server und erlaubte Stream-Einträge.
  • start und stop steuern den RTMP-Listener.
  • getStatistics meldet Eingabe- und Ausgabebitrate, die Anzahl der Publisher und Receiver sowie verfügbare Angaben zu Clientadresse, Region und Anwendung.
  • getStatisticHistory gibt die verfügbare aktuelle Statistikhistorie zurück.
  • remove löscht den Server.

Beispiel-Workflow

  1. Erstellen Sie den RTMP-Server mit seinem Listen-Port und Player-Puffer.
  2. Wählen Sie einen Stream-Key- oder IP-basierten Zugriff oder erlauben Sie Gastverbindungen nur, wenn der Workflow dies erfordert.
  3. Starten Sie den Listener und geben Sie jedem Publisher die gewünschten Verbindungsdetails.
  4. Rufen Sie getStatistics auf, um Bitrate, Rollen und den Verbindungsursprung zu überprüfen.
  5. 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.

REST-Lösungsrezept

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.

  1. RTMP-Ingest erstellenWählen Sie Listen-Port, Puffer und offenen, Stream-ID- oder IP-Zugriff.POST /api/rtmp-servers/create
  2. Server startenAktivieren Sie den Einstiegspunkt vor der Verbindung von OBS, Encoder oder Publisher.POST /api/rtmp-servers/start
  3. 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.

REST-Lösungsrezept

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.

  1. 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
  2. Befüllte Zugriffsliste lesenVerwenden Sie getById, da die Create-Antwort verknüpfte Zugriffsdaten möglicherweise nicht befüllt.POST /api/rtmp-servers/getById
  3. 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.

POST
/api/rtmp-servers/create
API-Token erforderlich

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.
Nur spezifizierte Stream-Keys zulassen

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.

Nur spezifizierte Stream-Keys zulassen
Code kopieren
curl --request POST \
--url http://localhost/api/rtmp-servers/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"server_name": "Live Protected",
"server_type": "SERVER_TYPE_RTMP",
"server_port": 1945,
"server_buflen": 5,
"server_active": true,
"stream_control_type": "CONTROL_ACCESS_STREAM_ID",
"access_settings": [
{
"stream_id": "rtmp-stream-01",
"role_name": "publisher"
},
{
"stream_id": "rtmp-stream-01",
"role_name": "receiver"
}
]
}'
Nur angegebene IP-Adressen zulassen

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.

Nur angegebene IP-Adressen zulassen
Code kopieren
curl --request POST \
--url http://localhost/api/rtmp-servers/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"server_name": "Live Allowlisted",
"server_type": "SERVER_TYPE_RTMP",
"server_port": 1945,
"server_buflen": 5,
"server_active": true,
"stream_control_type": "CONTROL_ACCESS_IP_ADDRESS",
"access_settings": [
{
"host": "127.0.0.1",
"role_name": "publisher"
},
{
"host": "127.0.0.1",
"role_name": "receiver"
}
]
}'
Parameter im Request-Body
Grundeinstellungen
server_name
string
Direktlink kopieren

Dashboard-Bezeichnung: Name.

Das Formular ist standardmäßig Live.

server_type
string
Direktlink kopieren

Der aktuell validierte API-Vertrag akzeptiert SERVER_TYPE_RTMP.

server_active
boolean
Direktlink kopieren

Dashboard-Bezeichnung: Einmal erstellt aktivieren.

„Aktiviert“ beschreibt den Serverzustand. Durch Ausschalten werden alle Publisher und Receiver, die mit dem RTMP-Server verbunden sind, getrennt.

Laufzeiteinstellungen
server_port
integer
Direktlink kopieren

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.

server_buflen
integer
Direktlink kopieren

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.

Zugriffskontrolle
stream_control_type
string
Direktlink kopieren

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.

access_settings
array
Direktlink kopieren

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.

RTMP-Server erstellen
Code kopieren
curl --request POST \
--url http://localhost/api/rtmp-servers/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"server_name": "Live",
"server_type": "SERVER_TYPE_RTMP",
"server_port": 1945,
"server_buflen": 5,
"server_active": true
}'
Antwort
Identität und Laufzeit
_id
string
Direktlink kopieren

Ressourcen-ID, die beim Erstellen oder Auflisten des RTMP-Servers zurückgegeben wird.

id
string
Direktlink kopieren

Kurzform für _id.

server_name
string
Direktlink kopieren

Name, der für den RTMP-Server gespeichert ist.

server_type
string
Direktlink kopieren

Die API gibt SERVER_TYPE_RTMP zurück.

server_port
string
Direktlink kopieren

RTMP-Listener-Port, den die API zurückgibt.

server_buflen
integer
Direktlink kopieren

Konfigurierte RTMP-Pufferlänge.

server_active
boolean
Direktlink kopieren

Ein aktuelles Status-Flag, das auf dem Serverobjekt gespeichert ist.

server_port_id
string
Direktlink kopieren

Portzuweisung, die dem RTMP-Listener zugeordnet ist.

server_created
string
Direktlink kopieren

Erstellungszeitstempel.

server_modified
string
Direktlink kopieren

Zeitstempel der letzten Änderung.

Zugriffskontrolle
stream_control_type
string
Direktlink kopieren

Zugriffssteuerungsmodus, der auf dem RTMP-Server gespeichert ist, sofern vorhanden.

access
array
Direktlink kopieren

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.

Betriebsergebnis
success
boolean
Direktlink kopieren

Bei erfolgreicher Ausführung enthält die Antwort success: true.

Antwort: RTMP-Server erstellen
JSON
Code kopieren
{
"_id": "69c1fb0128c95839e0e022d5",
"__v": 0,
"access": [],
"server_active": true,
"server_buflen": 5,
"server_created": "2026-03-24T02:46:25.044Z",
"server_name": "Docs RTMP Server",
"server_port": "1945",
"server_type": "SERVER_TYPE_RTMP",
"server_user_id": "69360341db559495f643de6a",
"server_port_id": "69c1fb0128c95839e0e022d7",
"server_modified": "2026-03-24T02:46:25.056Z",
"id": "69c1fb0128c95839e0e022d5",
"success": true
}
POST
/api/rtmp-servers/getCount
API-Token erforderlich
POST
/api/rtmp-servers/getAll
API-Token erforderlich
POST
/api/rtmp-servers/getById
API-Token erforderlich
POST
/api/rtmp-servers/getStatistics
API-Token erforderlich
GET
/api/rtmp-servers/:serverPort/getStatisticHistory
API-Token erforderlich
POST
/api/rtmp-servers/update
API-Token erforderlich
POST
/api/rtmp-servers/start
API-Token erforderlich
POST
/api/rtmp-servers/stop
API-Token erforderlich
DELETE
/api/rtmp-servers/remove
API-Token erforderlich