media server logo
Dokumentationsnavigation ein- oder ausblenden
Callaba-Startseite

NDI-Adapter

Verwenden Sie NDI-Adapter, um eine SRT-, RTMP- oder Videoanrufquelle als benannte NDI-Ausgabe für einen Switcher, ein Grafiksystem, einen Multiviewer oder einen Kontrollraum zu veröffentlichen.

FunktionQuelle als NDI-Ausgabe veröffentlichen

Geeignet, wennEine SRT-, RTMP- oder Videoanrufquelle soll als benannte NDI-Ausgabe erscheinen.

Anderes Modul verwenden, wennVerwenden Sie Erkannte NDI-Geräte, wenn die Quelle bereits im NDI-Netzwerk vorhanden ist.

1Quelle auswählen2NDI-Ausgabe benennen3Im Produktionssystem verwenden
POST /api/restream/create
9 Endpunkte

Voraussetzungen

Alle Methoden erfordern einen gültigen x-access-token. Konfigurieren Sie zuerst die NDI-Vernetzung, erstellen Sie die vorgelagerte SRT-, RTMP- oder Videoanrufquelle und behalten Sie ihre Quell-ID bei.

Funktionen

  • create und update wählen die Eingabe aus und weisen den NDI-Gerätnamen zu.
  • getAll, getCount und getById prüfen NDI-Adapter.
  • start und stop steuern die NDI-Ausgabe.
  • getStat überprüft den laufenden Prozess.
  • remove löscht einen Adapter.

Beispiel-Workflow

{
  "restream_name": "Remote camera to NDI",
  "input": {
    "input_type": "INPUT_TYPE_SRT_SOFTWARE",
    "input_module_id": "SRT_SERVER_ID"
  },
  "output": {
    "output_type": "OUTPUT_TYPE_NDI_DEVICE",
    "output_settings": {
      "ndi_device_name": "Remote Camera 1"
    }
  },
  "module_name": "MODULE_NDI_ADAPTERS",
  "active": true
}

Erstellen Sie den Adapter, starten Sie ihn, bestätigen Sie die Laufzeitstatistik und wählen Sie dann Remote Camera 1 auf dem empfangenden NDI-System aus.

Typische Anwendungsfälle

  • Bringen Sie eine SRT-Feldkamera in einen NDI-basierten Kontrollraum.
  • Zeigen Sie einen RTMP-Standort-Feed an einer NDI-Grafik-Workstation.
  • Veröffentlichen Sie einen Remote-Video-Gast als individuell wählbare NDI-Quelle.

Einschränkungen und Fehlerbehebung

Die Eingaberessource muss vorhanden sein und ein nutzbares Mediensignal liefern. Verwenden Sie stabile, eindeutige Gerätenamen, damit Operatoren die Quellen sicher erkennen. Ein gespeicherter Adapter läuft nicht automatisch; prüfen Sie getStat, bevor Sie ihn auf Sendung verwenden.

Nächste Schritte

Bestätigen Sie die Ausgabe auf dem empfangenden NDI-System und verbinden Sie sie dann mit dem erforderlichen Schalt-, Überwachungs- oder Aufzeichnungsworkflow.

REST-Lösungsrezept

Eine NDI-Quelle in einen Ausgabe-Workflow überführen

Erstellen Sie einen Adapter von einer geprüften NDI-Quelle zum benötigten Ausgang, starten Sie ihn und prüfen Sie den Prozess.

  1. Bridge erstellenWählen Sie NDI-Eingang sowie Protokoll und Verarbeitung des Ziels.POST /api/restream/create
  2. Adapter startenStarten Sie nach Verfügbarkeit von NDI-Quelle und Ziel.POST /api/restream/start
  3. Prozess prüfenLesen Sie die Laufzeitstatistik vor der Nutzung des Ausgangs.POST /api/restream/getStat

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.

Modulübergreifender Workflow

NDI-Discovery konfigurieren, Netzwerksicht prüfen und einen NDI-Ausgang veröffentlichen

Wenden Sie die Discovery-Konfiguration der Instanz an, bestätigen Sie die erwarteten NDI-Geräte und überführen Sie anschließend eine unterstützte verwaltete Quelle in einen benannten NDI-Ausgang.

  1. NDI-Netzwerkeinstellungen anwendenSetzen Sie Maschinenname, Discovery-Server, explizite Quellen-IPs oder die geprüfte vollständige JSON-Konfiguration.POST /api/devices/updateNDIConfiguration
  2. Geräteinventar prüfenListen Sie die aktuelle Netzwerksicht auf und bestätigen Sie erwartete Namen und Adressen.POST /api/devices/getAll
  3. Discovery-Aktivität prüfenBestätigen Sie die aktuelle Aktivität des gewählten Eintrags, bevor Sie sich auf den Netzwerkpfad verlassen.POST /api/devices/getStat
  4. NDI-Publisher erstellenWählen Sie einen unterstützten verwalteten Eingang und konfigurieren Sie Namen und Stream-Steuerung für OUTPUT_TYPE_NDI_DEVICE.POST /api/restream/create
  5. NDI-Ausgabe startenStarten Sie den Adapter, wenn verwaltete Quelle und NDI-Zielnetz verfügbar sind.POST /api/restream/start
  6. Publisher-Prozess prüfenPrüfen Sie Bitrate, FPS, Geschwindigkeit und Fortschritt vor der Übergabe des NDI-Namens.POST /api/restream/getStat

Ein Eintrag unter den erkannten Geräten belegt die Netzwerksicht; seine ID ist nicht der Adapter-Eingang. Die veröffentlichten Adapter-Beispiele akzeptieren verwaltetes SRT, RTMP GoPro oder Konferenzteilnehmer und veröffentlichen OUTPUT_TYPE_NDI_DEVICE.

POST
/api/restream/create
API-Token erforderlich

Veröffentlichen Sie mit dieser Methode eine verwaltete Quelle als NDI-Gerät im Netzwerk, damit sie in Bildmischern, Grafiksystemen und anderen Produktions-Clients verfügbar ist.

Die gespeicherte NDI-Bridge verwendet die Felder eines Restream-Jobs mit einer NDI-Geräteausgabe und module_name: MODULE_NDI_ADAPTERS. Für operatorgesteuerte Starts steht ein Beispiel für vMix Script bereit.

Verwalteter Ingest zu NDI

Verwenden Sie diese Voreinstellung, wenn ein verwalteter SRT-Server als benannte Cloud-NDI-Ausgabe bereitgestellt werden soll.

SRT-Server zum NDI-Gerät

Dies ist die direkteste Brücke zwischen einem vorhandenen SRT-Ingest-Endpunkt und einer NDI-Ausgabe.

SRT-Server zum NDI-Gerät
Code kopieren
curl --request POST \
--url http://localhost/api/restream/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"restream_name": "Camera 1 to Cloud NDI via SRT",
"input": {
"input_type": "INPUT_TYPE_SRT_SOFTWARE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"input_module_id": "66015d2997300f9385d32c00",
"input_stream_url": "",
"input_stream_listen_port": {},
"input_settings": {},
"input_stream_id": "",
"entity_name": "Camera 1 to Cloud NDI via SRT",
"module_name": "MODULE_RESTREAM"
},
"output": {
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"output_stream_url": "",
"output_stream_listen_port": {},
"output_settings": {
"ndi_device_name": "Cloud NDI Camera 1",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"output_stream_key": "",
"entity_name": "Camera 1 to Cloud NDI via SRT",
"module_name": "MODULE_RESTREAM"
},
"module_name": "MODULE_NDI_ADAPTERS",
"active": true
}'
RTMP-Server zum NDI-Gerät

Dies ist nützlich für Hardware- oder Softwarequellen, die bereits per RTMP in der Plattform ankommen.

RTMP-Server zum NDI-Gerät
Code kopieren
curl --request POST \
--url http://localhost/api/restream/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"restream_name": "GoPro RTMP to Cloud NDI",
"input": {
"input_type": "INPUT_TYPE_RTMP_GOPRO",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"input_module_id": "66015d2997300f9385d32c10",
"input_stream_url": "",
"input_stream_listen_port": {},
"input_settings": {},
"input_stream_id": "",
"entity_name": "GoPro RTMP to Cloud NDI",
"module_name": "MODULE_RESTREAM"
},
"output": {
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"output_stream_url": "",
"output_stream_listen_port": {},
"output_settings": {
"ndi_device_name": "Cloud NDI GoPro",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"output_stream_key": "",
"entity_name": "GoPro RTMP to Cloud NDI",
"module_name": "MODULE_RESTREAM"
},
"module_name": "MODULE_NDI_ADAPTERS",
"active": true
}'
Echtzeit-Teilnehmer an NDI

Verwenden Sie diese Voreinstellung, wenn ein Teilnehmer-Feed aus einem Videoanruf in eine NDI-fähige Produktionsumgebung zurückgeführt werden soll.

Konferenzteilnehmer zum NDI-Gerät

Dies ist die konferenzseitige Variante des gleichen Adaptermusters.

Konferenzteilnehmer zum NDI-Gerät
Code kopieren
curl --request POST \
--url http://localhost/api/restream/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"restream_name": "Speaker feed to Cloud NDI",
"input": {
"input_type": "INPUT_TYPE_MODULE_CONFERENCES_PARTICIPANT",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"input_module_id": "66015d2997300f9385d32c20",
"input_stream_url": "",
"input_stream_listen_port": {},
"input_settings": {},
"input_stream_id": "",
"entity_name": "Speaker feed to Cloud NDI",
"module_name": "MODULE_RESTREAM"
},
"output": {
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"output_stream_url": "",
"output_stream_listen_port": {},
"output_settings": {
"ndi_device_name": "Cloud NDI Speaker",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"output_stream_key": "",
"entity_name": "Speaker feed to Cloud NDI",
"module_name": "MODULE_RESTREAM"
},
"module_name": "MODULE_NDI_ADAPTERS",
"active": true
}'
Parameter im Request-Body
Identität
restream_name
string
Direktlink kopieren

Dashboard-Bezeichnung: Adaptername.

Lesbarer Name des NDI-Adapterjobs.

Quelle
input.input_type
string
Direktlink kopieren

Dashboard-Bezeichnung: Quelle.

Tatsächlich unterstützte Laufzeitfamilien umfassen verwaltete SRT-Server-Eingänge, verwaltete RTMP-Server-Eingänge und Eingänge von Konferenzteilnehmern.

input.input_module_id
string
Direktlink kopieren

Kennung der ausgewählten Quellressource im Erstellungsformular.

Ziel
output.output_type
string
Direktlink kopieren

Dashboard-Bezeichnung: Zielausgabe.

Dieses Modul verbindet die Ausgabeseite mit OUTPUT_TYPE_NDI_DEVICE.

output.output_settings.ndi_device_name
string
Direktlink kopieren

Dashboard-Bezeichnung: NDI®-Gerätename.

Name des zu erstellenden Cloud-NDI-Ausgabegeräts.

output.output_settings.timestamp_offset
integer
Direktlink kopieren

Dashboard-Bezeichnung: Zeitstempelversatz (ns).

Optionale Zeitstempelverschiebung in Nanosekunden.

output.output_settings.av_stream_control_mode
string
Direktlink kopieren

Dashboard-Bezeichnung: Audio-/Video-Steuerung.

Steuert, ob der Adapter Audio, Video oder beides veröffentlichen soll.

Laufzeit
module_name
string
Direktlink kopieren

Die Benutzeroberfläche speichert diesen Job als MODULE_NDI_ADAPTERS, obwohl sie die Restream-Backend-Pfade verwendet.

active
boolean
Direktlink kopieren

Dashboard-Bezeichnung: Einmal erstellt aktivieren.

Steuert, ob der Adapter direkt aktiv sein soll.

NDI-Adapter erstellen
Code kopieren
curl --request POST \
--url http://localhost/api/restream/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"restream_name": "Camera 1 to Cloud NDI via SRT",
"input": {
"input_type": "INPUT_TYPE_SRT_SOFTWARE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"input_module_id": "66015d2997300f9385d32c00",
"input_stream_url": "",
"input_stream_listen_port": {},
"input_settings": {},
"input_stream_id": "",
"entity_name": "Camera 1 to Cloud NDI via SRT",
"module_name": "MODULE_RESTREAM"
},
"output": {
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"application": "IO_APPLICATION_CALLABA_CLOUD_INGRESS_API",
"output_stream_url": "",
"output_stream_listen_port": {},
"output_settings": {
"ndi_device_name": "Cloud NDI Camera 1",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"output_stream_key": "",
"entity_name": "Camera 1 to Cloud NDI via SRT",
"module_name": "MODULE_RESTREAM"
},
"module_name": "MODULE_NDI_ADAPTERS",
"active": true
}'
Antwort
Identität
_id / id / restream_name
mixed
Direktlink kopieren

Kennungen und der gespeicherte Adaptername.

Quelle
input[]
array
Direktlink kopieren

Gespeicherte Quelldefinition des Adapters.

Ziel
output[]
array
Direktlink kopieren

Gespeicherte NDI-Ausgabedefinition des Adapters.

Laufzeit
module_name / active / created / modified
mixed
Direktlink kopieren

Modulmarker, aktiver Zustand und Backend-verwaltete Zeitstempel.

Betriebsergebnis
success
boolean
Direktlink kopieren

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

Antwort: NDI-Adapter erstellen
JSON
Code kopieren
{
"_id": "67f200000000000000000001",
"id": "67f200000000000000000001",
"restream_name": "Camera 1 to Cloud NDI via SRT",
"input": [
{
"_id": "67f200000000000000000010",
"id": "67f200000000000000000010",
"input_type": "INPUT_TYPE_SRT_SOFTWARE",
"input_module_id": "66015d2997300f9385d32c00",
"module_name": "MODULE_RESTREAM"
}
],
"output": [
{
"_id": "67f200000000000000000020",
"id": "67f200000000000000000020",
"output_type": "OUTPUT_TYPE_NDI_DEVICE",
"output_settings": {
"ndi_device_name": "Cloud NDI Camera 1",
"timestamp_offset": 0,
"av_stream_control_mode": "AV_STREAM_CONTROL_VIDEO_AUDIO"
},
"module_name": "MODULE_RESTREAM"
}
],
"module_name": "MODULE_NDI_ADAPTERS",
"active": true,
"created": "2026-03-24T11:00:00.000Z",
"modified": "2026-03-24T11:00:00.000Z",
"success": true
}
POST
/api/restream/getCount
API-Token erforderlich
POST
/api/restream/getAll
API-Token erforderlich
POST
/api/restream/getById
API-Token erforderlich
POST
/api/restream/update
API-Token erforderlich
POST
/api/restream/start
API-Token erforderlich
POST
/api/restream/stop
API-Token erforderlich
DELETE
/api/restream/remove
API-Token erforderlich
POST
/api/restream/getStat
API-Token erforderlich