ElvClient/LiveStream

Methods for Live Stream creation and management

Source:

Methods

static AuditStream({
objectIdoptional,
versionHashoptional,
saltoptional,
samplesoptional,
authorizationTokenoptional
})
→ Promise.<Object>

Audit the specified live stream against several content fabric nodes

Returns: Response describing audit results
Parameters:
Name Type Attributes Description
objectId string <optional>

Object ID of the live stream

versionHash string <optional>

Version hash of the live stream -- if not specified, latest version is returned

salt string <optional>

base64-encoded byte sequence for salting the audit hash

samples Array.<number> <optional>

list of percentages (0.0 - <1.0) used for sampling the content part list, up to 3

authorizationToken string <optional>

Additional authorization token for this request

Source:

static OutputsCreate({
libraryIdoptional,
objectId,
streamObjectIdoptional,
nameoptional,
descriptionoptional,
nodeIdsoptional,
geosoptional,
passphraseoptional,
stripRtpoptional,
srtConfigoptional
})
→ Promise.<Object>

Create a new live output.

At the current version of the live outputs API an output will be pinned to a node, by either:

  • specifying the node directly in 'nodeIds'
  • specifying an 'elvgeo' and use fabric config 'live_egress' services to pick a node ID

Note: Output creation and modification is transactional. To create multiple outputs in a single transaction, use EditContentObject to open a write token, call CallBitcodeMethod for each output, then finalize with FinalizeContentObject. This method handles a single output end-to-end.

Returns: The created output
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the outputs settings object

streamObjectId string <optional>

Object ID of the input stream to use as the output source

name string <optional>

Display name for the output

description string <optional>

Description of the output

nodeIds Array.<string> <optional>

Explicit node ID(s) for SRT delivery (max 1)

geos Array.<string> <optional>

Geo regions for SRT delivery (max 1) — used to resolve a node from live_egress endpoints

passphrase string <optional>

SRT passphrase for encrypted delivery

stripRtp boolean <optional>

Whether to strip RTP headers (default: false)

srtConfig Object <optional>

Additional SRT connection configuration (see openapi-bitcode.html#tocssrtconnectionconfig)

Source:

static OutputsDelete({
libraryIdoptional,
objectId,
outputId
})
→ Promise.<Object>

Delete a live output.

Returns: Response from the delete call
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the output settings object

outputId string

ID of the output to delete

Source:

static OutputsDeleteBatch({
libraryIdoptional,
objectId,
outputs
})
→ Promise.<Object>

Delete multiple live outputs in a single operation.

Returns: Response from the delete call
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the output settings object

outputs Array.<string>

List of output IDs to delete

Source:

static OutputsList({
libraryIdoptional,
objectId,
includeStateoptional
})
→ Promise.<Object.<string, LiveOutput>>

List all live outputs for a stream object, optionally including live state.

Returns: Map of output IDs to LiveOutput objects, each optionally with a state field
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the output settings object

includeState boolean <optional>

If true, also retrieve live state from each output's egress node (default: true)

Source:

static OutputsListItem({
libraryIdoptional,
objectId,
outputId,
includeStateoptional
})
→ Promise.<LiveOutput>

Get the configuration of a single live output by ID, optionally including live state.

Returns: Output config, optionally with a state field containing client_stats and srt_stats
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the output settings object

outputId string

ID of the output to retrieve

includeState boolean <optional>

If true, also retrieve live state from the output's egress node (default: true)

Source:

static OutputsModify({
libraryIdoptional,
objectId,
outputId,
output,
writeTokenoptional,
finalizeoptional
})
→ Promise.<Object>

Modify an existing live output.

Note: Supply all fields when modifying an output — read the current output first, then apply changes.

Note: Output modification is transactional. To modify multiple outputs in a single transaction, use EditContentObject to open a write token, call CallBitcodeMethod for each output, then finalize with FinalizeContentObject. This method handles a single output end-to-end.

Returns: The modified output
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the output settings object

outputId string

ID of the output to modify

output LiveOutput

Full output object to PUT (read the current output first, apply changes, then pass the result)

writeToken string <optional>

Write token to use. If not provided, a new edit will be opened.

finalize boolean <optional>

If true, finalize after modifying (default: true)

Source:

static OutputsModifyBatch({
libraryIdoptional,
objectId,
outputs
})
→ Promise.<Object>

Modify multiple live outputs in a single transaction.

Takes a map of output IDs to partial output configurations. Routes to any eligible live egress node, opens a write token, posts the map to live/outputs, then finalizes.

Example: { "out001": { "enabled": false, "input": { "stream": "iq__..." }, "name": "A03" }, "out002": { "enabled": true } }

Returns: The response from the bitcode call
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the output settings object

outputs Object.<string, LiveOutput>

Map of output IDs to output configurations

Source:

static OutputsState({
libraryIdoptional,
objectId,
outputId,
nodeIdoptional,
includeStateoptional
})
→ Promise.<LiveOutput>

Get the configuration of a specific live output, optionally including live state. Retrieves the output config from a live egress node. If includeState is true, also queries the output's specific egress node for live client and SRT stats.

Returns: Output config, optionally with a state field containing client_stats and srt_stats
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the output settings object

outputId string

ID of the output to retrieve state for

nodeId string <optional>

Node ID to query for state. If not provided, it will be retrieved from the output's config.

includeState boolean <optional>

If true, also retrieve live state from the output's egress node (default: true)

Source:

static OutputsStop({
libraryIdoptional,
objectId,
outputId
})
→ Promise.<Object>

Stop a live output.

Returns: Response from the stop call
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the output settings object. If not provided, it will be retrieved automatically.

objectId string

Object ID of the output settings object

outputId string

ID of the output to stop

Source:

static StreamAddWatermark({
libraryIdoptional,
objectId,
writeTokenoptional,
simpleWatermark,
imageWatermark,
forensicWatermark,
finalizeoptional
})
→ Promise.<Object>

Create a watermark for a live stream

Returns: The finalize response
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the live stream

objectId string

Object ID of the live stream

writeToken string <optional>

Write token of the draft

simpleWatermark Object

Text watermark

imageWatermark Object

Image watermark

forensicWatermark Object

Forensic watermark

finalize boolean <optional>

If enabled, target object will be finalized after adding watermark Watermark examples:

Simple Watermark: { "font_color": "", "font_relative_height": 0, "shadow": false, "template": "", "timecode": "", "timecode_rate": 0, "x": "", "y": "" }

Image watermark: { "image": "", "align_h": "", "align_v": "", "target_video_height": 0, "wm_enabled": false }

Forensic watermark: { "algo": 6, "forensic_duration": 0, "forensic_start": "", "image_a": <path_to_image>, "image_b": <path_to_image>, "is_stub": true, "payload_bit_nb": 23, "wm_enabled": true }

Source:

static StreamApplyProfile({
profileSlugoptional,
profileoptional,
objectId,
streamWriteTokenoptional,
siteWriteTokenoptional,
finalizeoptional
})
→ Promise.<({config: Object}|{streamWriteToken: string, siteWriteToken: string})>

Apply a live recording config profile to a stream, writing the merged configuration to the stream's live_recording_config and updating the profile's stream index on the site object. Handles switching profiles by unassigning the previous profile from the index. Use this for CLI workflows. For app workflows managing the config edit separately, use StreamAssignProfile directly.

Returns: The merged config if finalized, otherwise the open write tokens
Parameters:
Name Type Attributes Description
profileSlug string <optional>

Slug of the profile to apply. Required if profile is not provided.

profile Object <optional>

Profile object to apply. Required if profileSlug is not provided. If both are provided, profile is used and profileSlug is derived from profile.name.

objectId string

Object ID of the stream to apply the profile to

streamWriteToken string <optional>

Write token for the stream object. If not provided, a new edit will be opened.

siteWriteToken string <optional>

Write token for the site object. If not provided, a new edit will be opened.

finalize boolean <optional>

If enabled, both the stream and site objects will be finalized (default: true)

Source:

static StreamAssignProfile({
profileSlug,
streamObjectId,
writeTokenoptional,
finalizeoptional
})
→ Promise.<void>

Assign a live recording config profile to a stream by adding the stream to the profile's stream index on the site object. If the stream is already assigned, this is a no-op.

Parameters:
Name Type Attributes Description
profileSlug string

Slug of the profile to assign

streamObjectId string

Object ID of the stream to assign the profile to

writeToken string <optional>

Write token for the site object. If not provided, a new edit will be opened and finalized.

finalize boolean <optional>

If enabled, the site object will be finalized after the assignment (default: true)

Source:

static StreamConfig({
name,
liveRecordingConfigoptional,
inputStreamInfooptional,
writeTokenoptional,
finalizeoptional
})
→ Promise.<Object>

Configure the stream based on built-in logic and optional custom settings.

Returns: The status response for the stream
Parameters:
Name Type Attributes Description
name string

Object ID or name of the live stream object

liveRecordingConfig LiveRecordingConfig <optional>

Configuration profile for the live stream including recording, playout, and transcoding settings

inputStreamInfo InputStreamInfo <optional>

Simplified probe metadata

writeToken string <optional>

Write token of the draft

finalize boolean <optional>

If enabled, target object will be finalized after configuring

Source:

static StreamConfigProfile({
profileName,
profileSlug
})
→ Promise.<Object>

Get a specific live recording config profile's specifications by name.

Returns: The specifications for the requested profile
Parameters:
Name Type Description
profileName string

Name of the profile to retrieve

profileSlug string

Slug of the profile to retrieve

Source:

static StreamConfigProfiles() → Promise.<Object>

Get all available live recording config profiles from the live stream site configuration. Ladder profiles define settings for configuring live streams including recording config, playout config, and recording params.

Returns: Object containing all live recording config profiles
Source:

static StreamCreate({
libraryId,
objectIdoptional,
url,
finalizeoptional,
liveRecordingConfigoptional,
optionsoptional
})
→ Promise.<Object>

Create a live stream object

Returns: Object containing objectId, libraryId, writeToken, and hash if finalized
Parameters:
Name Type Attributes Description
libraryId string

ID of the library for the new live stream object

objectId string <optional>

ID of the object

url string

Source stream URL

finalize boolean <optional>

If enabled, object will be finalized after creation (default: true)

liveRecordingConfig LiveRecordingConfig <optional>

Configuration profile for the live stream including recording, playout, and transcoding settings

options Object <optional>

Additional options for customizing a live stream

Properties
Name Type Attributes Description
name string <optional>

Name of the live stream

displayTitle string <optional>

Display title for the live stream

description string <optional>

Description for the live stream

accessGroups Array.<string> <optional>

Access group addresses to receive 'manage' permissions

permission string <optional>

Permission level to set on the object

linkToSite boolean <optional>

If enabled, will create a link in the live stream site

initializeDrm boolean <optional>

If enabled, will initialize DRM for the object

ingressNodeId string <optional>

ID of the ingress node used for stream allocation (required for non-public nodes)

Source:

static StreamInitialize({
name,
drmoptional,
formatoptional,
writeTokenoptional,
finalizeoptional
})
→ Promise.<Object>

Initialize the stream object

Returns: The name, object ID, and state of the stream
Parameters:
Name Type Attributes Description
name string

Object ID or name of the live stream object

drm boolean <optional>

If specified, playout will be DRM protected

format string <optional>

Specify the list of playout formats and DRM to support, comma-separated (hls-clear, hls-aes128, hls-sample-aes, hls-fairplay)

writeToken string <optional>

Write token of the draft

finalize boolean <optional>

If enabled, target object will be finalized after configuration

Source:

static StreamInsertion({
name,
insertionTime,
sinceStartoptional,
durationoptional,
targetHash,
removeoptional
})
→ Promise.<Object>

Add a content insertion entry

Returns: Insertions, as well as any errors from bad insertions
Parameters:
Name Type Attributes Description
name string

Object ID or name of the live stream object

insertionTime number

Time in seconds (float)

sinceStart boolean <optional>

If specified, time specified will be elapsed seconds since stream start, otherwise, time will be elapsed since epoch

duration number <optional>

Time in seconds (float). Default: 20.0

targetHash string

The target content object hash (playable)

remove boolean <optional>

If specified, will remove the inseration at the exact 'time' (instead of adding)

Source:

static StreamLinkToSite({objectId}) → Promise.<void>

Link a live stream object to a site by adding it to the site's live_streams metadata. Creates a fabric link to the stream object with proper ordering.

Parameters:
Name Type Description
objectId string

Object ID of the live stream to link to the site

Source:

static StreamListUrls({siteIdoptional}) → Promise.<Object>

List the pre-allocated URLs for a site

Returns: The list of stream URLs
Parameters:
Name Type Attributes Description
siteId string <optional>

ID of the live stream site object

Source:

static StreamRemoveLinkToSite({
objectIdoptional,
slugoptional,
siteObjectIdoptional,
siteLibraryIdoptional,
writeTokenoptional,
finalizeoptional
})
→ Promise.<void>

Unlink a live stream object from a site by removing it from the site's live_streams metadata.

Parameters:
Name Type Attributes Description
objectId string <optional>

Object ID of the live stream to link to the site

slug string <optional>

Slug of the object

siteObjectId string <optional>

Object ID of the site (defaults to rootStore.dataStore.siteId)

siteLibraryId string <optional>

Library ID of the site (defaults to rootStore.dataStore.siteLibraryId)

writeToken string <optional>

Write token for the draft object. If not provided, a new edit will be opened and finalized.

finalize boolean <optional>

If enabled, the site object will be finalized after the removal (default: true)

Source:

static StreamRemoveWatermark({
libraryIdoptional,
objectId,
writeTokenoptional,
types,
finalizeoptional
})
→ Promise.<Object>

Remove a watermark for a live stream

Returns: The finalize response
Parameters:
Name Type Attributes Description
libraryId string <optional>

Library ID of the live stream

objectId string

Object ID of the live stream

writeToken string <optional>

Write token of the draft

types Array.<string>

Specify which type of watermark to remove. Possible values:

  • "image"
  • "text"
  • "forensic"
finalize boolean <optional>

If enabled, target object will be finalized after removing watermark

Source:

static StreamSaveConfigProfile({
files,
profileMetadataoptional
})
→ Promise.<void>

Save a live recording config profile to the live stream site object. Uploads any provided profile files or profile metadata and creates a metadata link to the profile. One must be specified. The argument profileMetadata takes precendence if both are provided.

Parameters:
Name Type Attributes Description
files FileList | Array.<File>=

Profile files to upload to the site object

profileMetadata Object <optional>

Metadata for the profile

Source:

static StreamSetOfferingAndDRM({
name,
typeAbrMasteroptional,
typeLiveStreamoptional,
drmoptional,
formatoptional,
writeTokenoptional
})
→ Promise.<Object>

Create a dummy VoD offering and initialize DRM keys.

Returns: The name, object ID, and state of the stream
Parameters:
Name Type Attributes Description
name string

Object ID or name of the live stream object

typeAbrMaster string <optional>

Content type hash

typeLiveStream string <optional>

Content type hash

drm boolean <optional>

If specified, DRM will be applied to the stream

format string <optional>

A list of playout formats and DRM to support, comma-separated (hls-clear, hls-aes128, hls-sample-aes, hls-fairplay). If specified, this will take precedence over the drm value

writeToken string <optional>

Write token of the draft

Source:

static StreamSiteSettings({
resolveIncludeSourceoptional,
resolveLinksoptional,
resolveIgnoreErrorsoptional
})
→ Promise.<Object>

Load live stream data from site object

Parameters:
Name Type Attributes Description
resolveIncludeSource boolean <optional>

If specified, resolved links will include the hash of the link at the root of the metadata

resolveLinks boolean <optional>

If specified, links in the metadata will be resolved

resolveIgnoreErrors boolean <optional>

If specified, link errors within the requested metadata will not cause the entire response to result in an error

Source:

static StreamStartOrStopOrReset({
name,
op
})
→ Promise.<Object>

Start, stop or reset a stream within the current session (current edge write token)

Returns: The status response for the stream
Parameters:
Name Type Description
name string

Object ID or name of the live stream object

op string

The operation to perform. Possible values: 'start' 'reset' - Stops current LRO recording and starts a new one. Does not create a new edge write token (just creates a new recording period in the existing edge write token)

  • 'stop'
Source:

static StreamStartRecording({
name,
startoptional
})
→ Promise.<Object>

Create a new edge write token

Returns: The status response for the object
Parameters:
Name Type Attributes Description
name string

Object ID or name of the live stream object

start boolean <optional>

If specified, will start the stream after creation

Source:

static StreamStatus({
name,
showParamsoptional
})
→ Promise.<Object>

Retrieve the status of the current live stream session

Returns: The status response for the object, as well as logs, warnings and errors from the master initialization
Parameters:
Name Type Attributes Description
name string

Object ID or name of the live stream object

showParams boolean <optional>

If specified, will return recording_params with status States: unconfigured - no live_recording_config uninitialized - no live_recording config generated inactive - live_recording config initialized but no 'edge write token' stopped - edge-write-token but not started starting - LRO running but no source data yet running - stream is running and producing output stalled - LRO running but no source data (so not producing output)

Source:

static StreamStopRecording({name}) → Promise.<Object>

Close the edge write token and make the stream object inactive.

Returns: The finalize response for the stream object
Parameters:
Name Type Description
name string

Object ID or name of the live stream object

Source:

static StreamUnassignProfile({
profileSlug,
streamObjectId,
writeTokenoptional,
finalizeoptional
})
→ Promise.<void>

Unassign a live recording config profile from a stream by removing the stream from the profile's stream index on the site object.

Parameters:
Name Type Attributes Description
profileSlug string

Slug of the profile to unassign

streamObjectId string

Object ID of the stream to remove from the profile

writeToken string <optional>

Write token for the site object. If not provided, a new edit will be opened and finalized.

finalize boolean <optional>

If enabled, the site object will be finalized after the unassignment (default: true)

Source:

static StreamUpdateConfig({
libraryId,
objectId,
commitMessage,
writeTokenoptional,
liveRecordingConfig,
overrideSettingsoptional,
finalizeoptional
})
→ Promise.<({writeToken: string}|void)>

Update the live recording configuration of a stream object.

Returns: The write token if finalize is false, otherwise void
Parameters:
Name Type Attributes Description
libraryId string

Library ID of the stream object

objectId string

Object ID of the stream

commitMessage string

Message to include about this commit

writeToken string <optional>

Write token for the stream object. If not provided, a new edit will be opened.

liveRecordingConfig LiveRecordingConfig

The live recording configuration to write

overrideSettings Object <optional>

Partial LiveRecordingConfig deep-merged over liveRecordingConfig

finalize boolean <optional>

If enabled, the stream object will be finalized after the update (default: true)

Source:

async, inner FileInfo(
path,
fileList
)
→ Promise.<Array.<Object>>

Converts a list of File objects into an array of file info objects suitable for upload.

Returns: Array of file info objects with path, type, size, mime_type, and data
Parameters:
Name Type Description
path string

The destination path prefix for the files

fileList FileList | Array.<File>

The list of File objects to process

Source:

async, inner RetrieveOutputNodeId(
client,
nodeIdsoptional,
geosoptional
)
→ Promise.<string>

Resolve a node ID for live egress output. If nodeIds is provided, uses the first element directly. Otherwise, calls the /config API (optionally filtered by geo) to get live_egress endpoints, then resolves the first endpoint to a node ID via SpaceNodes.

Returns: A node ID for the output
Parameters:
Name Type Attributes Description
client Object

ElvClient instance

nodeIds Array.<string> <optional>

Explicit node IDs to use

geos Array.<string> <optional>

Geo regions to filter config API results (max 1)

Source:

async, inner RouteToLiveEgress(client) → Promise.<{restore: function()}>

Pin (route) the client to any eligible live egress node from the /config API. Returns a function that restores the original fabric URIs.

Returns: restore function
Parameters:
Name Type Description
client Object

ElvClient instance

Source:

async, inner RouteToOutputNode(
client,
libraryId,
objectId,
outputId,
nodeIdoptional
)
→ Promise.<{restore: function(), config: Object}>

Pin (route) the client to the egress node for a specific output. Fetches the output config to determine the node ID then sets the client fabric URIs. Currently node ID is retrieved from srt_pull.node_ids (only srt_pull outputs are supported). Assumes the client is already routed to an eligible egress node (via RouteToLiveEgress). Returns a function that restores the original fabric URIs.

Returns: restore function and output config
Parameters:
Name Type Attributes Description
client Object

ElvClient instance

libraryId string

Library ID of the output settings object

objectId string

Object ID of the output settings object

outputId string

ID of the output

nodeId string <optional>

Node ID if already known (skips config fetch)

Source:

async, inner StreamGenerateOffering({
client,
libraryId,
objectId,
writeTokenoptional,
typeAbrMasteroptional,
typeLiveStreamoptional,
streamUrl,
abrProfile,
aBitRate,
aChannels,
aSampleRate,
aStreamIndex,
aTimeBase,
aChannelLayout,
vBitRate,
vHeight,
vStreamIndex,
vWidth,
vDisplayAspectRatio,
vFrameRate,
vTimeBase
})
→ Promise.<string>

Set the offering for the live stream

Returns: Final hash of the live stream object
Parameters:
Name Type Attributes Description
client Object

The client object

libraryId string

ID of the library for the new live stream object

objectId string

ID of the new live stream object

writeToken string <optional>

Write token of the draft

typeAbrMaster string <optional>

Content type hash

typeLiveStream string <optional>

Content type hash

streamUrl string

Live source URL

abrProfile object

ABR Profile for the offering

aBitRate number

Audio bitrate

aChannels number

Audio channels

aSampleRate number

Audio sample rate

aStreamIndex number

Audio stream index

aTimeBase string

Audio time base as a fraction, e.g. "1/48000" (usually equal to 1/aSampleRate)

aChannelLayout string

Channel layout, e.g. "stereo"

vBitRate number

Video bitrate

vHeight number

Video height

vStreamIndex number

Video stream index

vWidth number

Video width

vDisplayAspectRatio string

Display aspect ratio as a fraction, e.g. "16/9"

vFrameRate string

Frame rate as an integer, e.g. "30"

vTimeBase string

Time base as a fraction, e.g. "1/30000"

Source:

Type Definitions

InputStreamInfo :Object

Properties:
Name Type Attributes Description
input_stream_info Object <optional>

Simplified probe information for the input stream

Properties
Name Type Attributes Description
format Object <optional>

Format information

Properties
Name Type Attributes Description
format_name string <optional>

Format name (e.g., "mpegts")

filename string <optional>

Stream URL

streams Array.<Object> <optional>

Array of stream information

streams[].codec_name string <optional>

Codec name (e.g., "h264", "aac")

streams[].codec_type string <optional>

Codec type ("video" or "audio")

streams[].display_aspect_ratio string <optional>

Display aspect ratio (e.g., "16/9")

streams[].field_order string <optional>

Field order (e.g., "progressive")

streams[].frame_rate string <optional>

Frame rate (e.g., "50")

streams[].height number <optional>

Video height in pixels

streams[].width number <optional>

Video width in pixels

streams[].level number <optional>

Codec level

streams[].stream_id number <optional>

Stream ID

streams[].stream_index number <optional>

Stream index

streams[].channel_layout number <optional>

Audio channel layout

streams[].channels number <optional>

Number of audio channels

streams[].sample_rate number <optional>

Audio sample rate

Source:

LiveOutput :Object

Properties:
Name Type Attributes Description
enabled boolean <optional>

Whether the output is enabled

name string <optional>

Display name for the output

description string <optional>

Description of the output

external_id string <optional>

External identifier for the output

reset boolean <optional>

Whether to reset the output

input Object <optional>

Input stream configuration

Properties
Name Type Attributes Description
stream string <optional>

Object ID of the input stream (null to disconnect)

srt_pull Object <optional>

SRT pull delivery configuration

Properties
Name Type Attributes Description
node_ids Array.<string> <optional>

Egress node IDs for SRT delivery (max 1)

passphrase string <optional>

SRT passphrase for encrypted delivery

strip_rtp boolean <optional>

Whether to strip RTP headers

connection Object <optional>

Additional SRT connection configuration

urls Array.<string> <optional>

SRT URLs (returned by server, not set by caller)

Source:

LiveRecordingConfig :Object

Properties:
Name Type Attributes Description
name string <optional>

Name of the profile

recording_config Object <optional>

Recording configuration settings

Properties
Name Type Attributes Description
part_ttl number <optional>

Time-to-live for stream parts in seconds

connection_timeout number <optional>

Initial connection timeout when starting the stream, in seconds

reconnect_timeout number <optional>

Duration to listen after disconnect detection, in seconds

copy_mpegts boolean <optional>

Whether to copy MPEG-TS data

input_cfg Object <optional>

Input configuration settings

Properties
Name Type Attributes Description
bypass_libav_reader boolean <optional>

Whether to bypass libav reader

copy_mode string <optional>

Copy mode setting: "" (empty), "none", "raw", or "remuxed"

copy_packaging string <optional>

Copy packaging mode: "raw_ts" or "rtp_ts"

custom_read_loop_enabled boolean <optional>

Legacy reader

input_packaging string <optional>

Input Packaging

playout_config Object <optional>

Playout configuration settings

Properties
Name Type Attributes Description
image_watermark Object <optional>

Image watermark configuration

Properties
Name Type Attributes Description
align_h string <optional>

Horizontal alignment (e.g., "left", "center", "right")

align_v string <optional>

Vertical alignment (e.g., "top", "middle", "bottom")

image string <optional>

Path to watermark image file

wm_enabled boolean <optional>

Whether the image watermark is enabled

simple_watermark Object <optional>

Simple text watermark configuration

Properties
Name Type Attributes Description
font_color string <optional>

Font color (e.g., "white@0.5")

font_relative_height number <optional>

Font size relative to video height

shadow boolean <optional>

Whether to add shadow to text

shadow_color string <optional>

Shadow color (e.g., "black@0.5")

template string <optional>

Watermark text template

x string <optional>

Horizontal position expression

y string <optional>

Vertical position expression

dvr boolean <optional>

Whether to enable DVR functionality TODO: update possible drm types TODO: update possible playout formats

playout_formats Array.<string> <optional>

List of playout format names (e.g., "dash-widevine", "hls-widevine")

ladder_specs Object <optional>

Encoding ladder specifications

Properties
Name Type Attributes Description
audio Array.<Object> <optional>

Audio encoding ladder

audio[].bit_rate number <optional>

Audio bitrate

audio[].channels number <optional>

Number of audio channels

audio[].codecs string <optional>

Audio codec identifier

video Array.<Object> <optional>

Video encoding ladder

video[].bit_rate number <optional>

Video bitrate

video[].codecs string <optional>

Video codec identifier

video[].height number <optional>

Video height in pixels

video[].width number <optional>

Video width in pixels

recording_stream_config Object <optional>

Stream recording configuration

Properties
Name Type Attributes Description
audio Object <optional>

Audio stream recording configuration indexed by stream number

audio[].bitrate number <optional>

Stream bitrate

audio[].codec string <optional>

Audio codec (e.g., "aac")

audio[].playout boolean <optional>

Whether to include this stream in playout

audio[].playout_label string <optional>

Label for playout (e.g., "Audio 1")

audio[].record boolean <optional>

Whether to record this audio stream

audio[].recording_bitrate number <optional>

Recording bitrate

audio[].recording_channels number <optional>

Number of recording channels

input_stream_info InputStreamInfo <optional>

Simplified probe information for the input stream

recording_params Object <optional>

Advanced recording parameters

Properties
Name Type Attributes Description
xc_params Object <optional>

Transcoding parameters

Properties
Name Type Attributes Description
audio_bitrate number <optional>

Audio bitrate for encoding

audio_index Object <optional>

Audio stream index mapping (indexed by output stream number)

audio_seg_duration_ts number <optional>

Audio segment duration in time scale units

connection_timeout number <optional>

Connection timeout in seconds

copy_mpegts boolean <optional>

Whether to copy MPEG-TS data

ecodec2 string <optional>

Audio encoder codec (e.g., "aac")

enc_height number <optional>

Encoding height in pixels

enc_width number <optional>

Encoding width in pixels

filter_descriptor string <optional>

FFmpeg filter descriptor string

force_keyint number <optional>

Force keyframe interval

format string <optional>

Output format (e.g., "fmp4-segment")

listen boolean <optional>

Whether to listen for incoming stream

n_audio number <optional>

Number of audio streams

preset string <optional>

Encoding preset (e.g., "faster", "medium", "slow")

sample_rate number <optional>

Audio sample rate in Hz

seg_duration string <optional>

Segment duration in seconds (as string)

skip_decoding boolean <optional>

Whether to skip decoding

start_segment_str string <optional>

Starting segment number (as string)

stream_id number <optional>

Stream ID (-1 for auto)

sync_audio_to_stream_id number <optional>

Stream ID to sync audio to

video_bitrate number <optional>

Video bitrate for encoding

video_frame_duration_ts number <optional>

Video frame duration in time scale units (null for auto)

video_seg_duration_ts number <optional>

Video segment duration in time scale units

video_time_base string <optional>

Video time base (null for auto)

xc_type number <optional>

Transcoding type identifier

probe_info Object <optional>

Full probe information (stored for historical/debugging purposes, only in live_recording_config)

Source: