media server logo
Dokumentationsnavigation ein- oder ausblenden
Callaba-Startseite

Streams

Verwenden Sie Streams, um benannte Publisher- und Empfängerverbindungen für SRT- oder RTMP-Endpunkte zu erstellen. Jeder Datensatz gibt Anwendungen eine stabile Verbindungsidentität und wiederverwendbare Medieneinstellungen.

FunktionBenannte Medienverbindung erstellen

Geeignet, wennJeder Publisher oder Receiver benötigt eine eigene Identität auf einem vorhandenen SRT- oder RTMP-Server.

Anderes Modul verwenden, wennVerwenden Sie SRT-Server oder RTMP-Server, um den eigentlichen Ingest-Endpunkt zu erstellen.

1Publisher oder Receiver wählen2Endpunkt festlegen3Verbindung verwenden
POST /api/streams/create
10 Endpunkte

Voraussetzungen

Alle Methoden erfordern einen gültigen x-access-token. Erstellen Sie zuerst den zugehörigen SRT- oder RTMP-Server und verwenden Sie konsistente Server- und Stream-Kennungen.

Funktionen

  • create, update, getAll, getCount und getById verwalten Verbindungseinträge.
  • start und stop steuern unterstützte Stream-Lifecycle-Aktionen.
  • getStreamInfo liest Verbindungsinformationen.
  • setStreamInfo wendet unterstützte Stream-Informationen an.
  • remove löscht einen Stream-Eintrag.

Beispiel-Workflow

  1. Erstellen Sie einen Publisher-Eintrag für den vorgesehenen SRT- oder RTMP-Server.
  2. Weisen Sie seine Rolle, stream_id, Hostdetails und erforderliche Audioeinstellungen zu.
  3. Geben Sie die generierten Verbindungsdetails an den Publisher weiter.
  4. Verwenden Sie getStreamInfo während der Einrichtung und Fehlerbehebung.

Typische Anwendungsfälle

  • Stellen Sie jedem Remote-Kamerateam eine eigene Verbindung bereit.
  • Trennen Sie Publisher- und Receiver-Identitäten auf einem gemeinsam genutzten Ingest-Server.
  • Speichern Sie Audiokanaleinstellungen für wiederholbare Contribution-Feeds.

Einschränkungen und Fehlerbehebung

Doppelte oder nicht übereinstimmende Stream-Kennungen können die erwartete Verbindung verhindern. Ein Stream-Eintrag hängt von seinem übergeordneten Server ab und kann einen nicht erreichbaren Publisher nicht verfügbar machen. Geben Sie Zugangsdaten oder uneingeschränkte Verbindungsdetails nur an die vorgesehenen Teilnehmer weiter.

Nächste Schritte

Verbinden Sie den Publisher oder Receiver und prüfen Sie anschließend die Laufzeitstatistiken des übergeordneten SRT- oder RTMP-Servers.

REST-Lösungsrezept

Eine wiederverwendbare Stream-Quelle registrieren und betreiben

Erstellen Sie Identität und Verbindung einmal, starten Sie die Quelle bei Bedarf und lesen Sie ihre Informationen für die Downstream-Automatisierung.

  1. Stream erstellenSpeichern Sie die geprüfte Quellenidentität und Verbindung.POST /api/streams/create
  2. Quelle startenStarten Sie sie vor dem Anbinden nachgelagerter Module.POST /api/streams/start
  3. Stream-Informationen lesenVerwenden Sie aktuelle Stream-Metadaten im Steuerungs-Workflow.POST /api/streams/getStreamInfo

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.

POST
/api/streams/create
API-Token erforderlich

Erstellen Sie eine verwaltete Stream-Identität für eine SRT- oder RTMP-Transportressource. Der Eintrag speichert Name, Publisher- oder Receiver-Rolle, Stream-ID, optionalen Host, verknüpfte Ressource und optionale Audio-Metadaten.

Für die Bereitstellung aus einem Operator-Workflow steht ein Beispiel unter vMix Script bereit.

Anfragebeispiele

Wählen Sie die Voreinstellung für einen SRT-Publisher, einen SRT-Receiver, einen RTMP-Publisher oder einen Stream mit gespeichertem Audiolayout.

Typische Anwendungsfälle

  • Benennen Sie mehrere Publisher-Streams, die sich einen SRT-Listener teilen.
  • Verwenden Sie eine stabile Receiver-Identität für gerouteten oder abgerufenen Datenverkehr.
  • Speichern Sie Kanalnamen, Layouts oder Track-Bedeutung mit dem Stream.
SRT-Publisher-Stream

Verwenden Sie dies, wenn ein SRT-Listener einen benannten Publisher-Stream hostet, den Betreiber als eigenständige Ressource behandeln sollen.

SRT-Publisher-Stream
Code kopieren
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Main stage publisher",
"role_name": "publisher",
"stream_id": "publisher/main-stage/srt-main",
"entity_id": "680400000000000000000001",
"module_name": "MODULE_SRT_SERVERS",
"active": true
}'
SRT-Receiver-Stream

Verwenden Sie dies, wenn ein Receiver- oder Return-Feed seine eigene Stream-Identität und optionale Host-Bindung beibehalten soll.

SRT-Receiver-Stream
Code kopieren
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Remote return receiver",
"role_name": "receiver",
"stream_id": "receiver/main-stage/return-feed",
"host": "198.51.100.24",
"entity_id": "680400000000000000000001",
"module_name": "MODULE_SRT_SERVERS",
"active": true
}'
RTMP-Publisher-Stream

Verwenden Sie dies, wenn die zugrunde liegende Transportressource ein RTMP-Server und kein SRT-Listener ist.

RTMP-Publisher-Stream
Code kopieren
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "RTMP primary publish",
"role_name": "publisher",
"stream_id": "studio/live/program",
"entity_id": "680500000000000000000001",
"module_name": "MODULE_RTMP_SERVERS",
"active": true
}'
Stream mit gespeichertem Audio-Layout

Verwenden Sie dies, wenn Kanallayout und Kanalnamen nach der Analyse im Stream-Eintrag gespeichert werden sollen.

Stream mit gespeichertem Audio-Layout
Code kopieren
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Commentary audio stream",
"role_name": "publisher",
"stream_id": "publisher/commentary/audio-main",
"entity_id": "680400000000000000000001",
"module_name": "MODULE_SRT_SERVERS",
"audio_settings": {
"streams": [
{
"id": 0,
"name": "Commentary",
"channel_layout": "mono",
"channels": [
{
"id": "FC",
"name": "Commentary"
}
]
}
]
},
"active": true
}'
Parameter im Request-Body
Identität
name
string
Direktlink kopieren

Dashboard-Bezeichnung: Name.

Lesbarer Name des gespeicherten Stream-Eintrags.

role_name
string
Direktlink kopieren

Dashboard-Bezeichnung: Role.

Typische Produktwerte sind publisher, receiver, pusher und puller.

stream_id
string
Direktlink kopieren

Stabile Stream-Kennung, die über der unterstützenden Transporteinheit gespeichert ist.

host
string
Direktlink kopieren

Optionale Hostbindung, die verwendet wird, wenn die Stream-Identität an einen konkreten Remote-Peer gebunden bleiben soll.

Zugeordnete Ressource
entity_id
string
Direktlink kopieren

Kennung der zugrunde liegenden Transportressource, beispielsweise ein SRT-Server oder RTMP-Server.

module_name
string
Direktlink kopieren

In der Praxis ist dies meist MODULE_SRT_SERVERS oder MODULE_RTMP_SERVERS.

Metadaten
audio_settings
object
Direktlink kopieren

Optional gespeichertes Audiolayout mit benannten Tracks und Kanälen.

Laufzeit
active
boolean
Direktlink kopieren

Dashboard-Bezeichnung: Einmal erstellt aktivieren.

Steuert, ob der Stream-Eintrag direkt nach der Bereitstellung aktiv sein soll.

Stream erstellen
Code kopieren
curl --request POST \
--url http://localhost/api/streams/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Main stage publisher",
"role_name": "publisher",
"stream_id": "publisher/main-stage/srt-main",
"entity_id": "680400000000000000000001",
"module_name": "MODULE_SRT_SERVERS",
"active": true
}'
Antwort
Identität
_id / id / name / role_name / stream_id / host
mixed
Direktlink kopieren

Bezeichner und die gespeicherten Stream-Identitätsfelder.

Zugeordnete Ressource
entity_id / entityModel / module_name
mixed
Direktlink kopieren

Verweis auf das Transportobjekt, das den Stream bereitstellt.

Metadaten
stream_meta_data / audio_settings
mixed
Direktlink kopieren

Gespeichertes Analyseergebnis, Codec-Notizen und optionale Kanal-Mapping-Metadaten.

Laufzeit
active / created / modified
mixed
Direktlink kopieren

Laufzeit-Flag und Backend-verwaltete Zeitstempel.

Betriebsergebnis
success
boolean
Direktlink kopieren

Erfolgreiche Antworten auf Stream-Modelle zeigen success: true als virtuelles Feld.

Antwort: Stream erstellen
JSON
Code kopieren
{
"_id": "680600000000000000000001",
"id": "680600000000000000000001",
"name": "Main stage publisher",
"role_name": "publisher",
"host": "",
"stream_id": "publisher/main-stage/srt-main",
"entity_id": "680400000000000000000001",
"entityModel": "ServerModel",
"module_name": "MODULE_SRT_SERVERS",
"stream_meta_data": {
"codec_name": "h264",
"fps": "30/1"
},
"audio_settings": {
"streams": [
{
"id": 0,
"name": "Track-0",
"channel_layout": "stereo",
"channels": [
{
"id": "FL",
"name": "Left"
},
{
"id": "FR",
"name": "Right"
}
]
}
]
},
"created": "2026-03-24T08:45:00.000Z",
"modified": "2026-03-24T08:45:00.000Z",
"active": true,
"success": true
}
POST
/api/streams/getCount
API-Token erforderlich
POST
/api/streams/getAll
API-Token erforderlich
POST
/api/streams/getById
API-Token erforderlich
POST
/api/streams/update
API-Token erforderlich
POST
/api/streams/setStreamInfo
API-Token erforderlich
DELETE
/api/streams/remove
API-Token erforderlich
POST
/api/streams/start
API-Token erforderlich
POST
/api/streams/stop
API-Token erforderlich
POST
/api/streams/getStreamInfo
API-Token erforderlich