RtmpServerInputSettings interface

Settings to control how RTMP streams can be included as sources in your media workflow see: NorskInput.rtmpServer()

Signature:

export interface RtmpServerInputSettings extends SourceNodeSettings<RtmpServerInputNode>, StreamStatisticsMixin

Events

Property Type Description

onConnection?

( connectionId: string, app: string, url: string, remoteHost: string) ⇒ { accept: true; } | { accept: false; reason?: string; }

(Optional) On connect callback, use to accept/reject connections given app/url in use

onConnectionHealth?

(health: RtmpConnectionHealth) ⇒ void

(Optional) Called periodically with per-connection health (realtime tracking, stall age, transport stats). Measurements only — you decide the policy.

onConnectionStatusChange?

( connectionId: string, status: RtmpServerInputStatus, streamKeys: { audioStreamKey: StreamKeyPB; videoStreamKey: StreamKeyPB; }[], health?: InputHealthStatus) ⇒ void

(Optional) Called when the connection status has changed (e.g. when the RTMP connection drops)

onStream?

( connectionId: string, app: string, url: string, streamId: number, publishingName: string) ⇒ OnStreamResult

(Optional) On stream callback, set up the stream keys for a given stream or reject the stream

Properties

Property Type Description

healthSampling?

HealthSamplingSettings

(Optional) Per-connection health sampling. Emits periodic InputConnectionHealth events via . On by default; set enabled: false to disable or intervalSeconds to tune the cadence.

healthThresholds?

HealthThresholdsSettings | "recommended"

(Optional) Opt-in thresholds that make the engine emit degraded / recovered on from the measured health. Unset = off; pass "recommended" for sensible defaults. See HealthThresholdsSettings.

mediaTimeoutMs?

number

(Optional) When set, a connection that stops delivering media (audio and video) for this many milliseconds is torn down, even if it keeps sending non-media RTMP control traffic. Catches a wedged/dead publisher whose control bytes would otherwise keep the connection alive indefinitely. Unset = disabled.

onConnectionBytesRead?

( connectionId: string, bytesRead: bigint) ⇒ void

(Optional)

onConnectionError?

( connectionId: string, error: RtmpError_UnsupportedVideo | RtmpError_UnsupportedAudio | RtmpError_InvalidStreamResponse) ⇒ void

(Optional)

port?

number

(Optional) The port the RTMP server should listen on

receiveTimeoutMs?

number

(Optional) Byte-level idle read timeout: a connection that sends no bytes at all for this many milliseconds is dropped. Distinct from , which catches a peer still sending RTMP control bytes but no media. Unset = the 5 second protocol default.

ssl?

boolean

(Optional)

sslOptions?

{ certFile?: string; keyFile?: string; }

(Optional)

timeDomain?

TimeDomain

(Optional) Optional time-domain configuration. When set, the input is placed into a named coordinator and is timestamp-aligned with all other inputs sharing the same domain id within this Norsk instance. Omit for the default (uncoordinated) behaviour.