Skip to main content
Version: Next

Class: CompositionClient

Defined in: js-server-sdk/src/composition.ts:53

Client class that allows to manage compositions, the real-time video compositing sessions of a Fishjam App. It requires the management token that can be retrieved from the Fishjam Dashboard, the same one used by FishjamClient.

Example usage:

const compositionClient = new CompositionClient({ managementToken: fastify.config.FISHJAM_MANAGEMENT_TOKEN, });

Constructors​

Constructor​

new CompositionClient(config): CompositionClient

Defined in: js-server-sdk/src/composition.ts:62

Parameters​

ParameterType
configCompositionConfig

Returns​

CompositionClient

Methods​

compositionUrl()​

compositionUrl(compositionId): string

Defined in: js-server-sdk/src/composition.ts:93

The address of a composition, as other services refer to it. Fishjam needs it to forward a room's tracks with FishjamClient.forwardRoomTracks.

Parameters​

ParameterType
compositionIdCompositionId

Returns​

string


createComposition()​

createComposition(config): Promise<Override<CompositionCreatedResponse, { compositionId: CompositionId; }>>

Defined in: js-server-sdk/src/composition.ts:81

Create a new composition. Inputs registered on it are composed into the scenes its outputs render.

Parameters​

ParameterType
configCreateCompositionRequest

Returns​

Promise<Override<CompositionCreatedResponse, { compositionId: CompositionId; }>>


deleteComposition()​

deleteComposition(compositionId): Promise<void>

Defined in: js-server-sdk/src/composition.ts:122

Delete an existing composition. Its inputs and outputs are torn down with it.

Parameters​

ParameterType
compositionIdCompositionId

Returns​

Promise<void>


registerFont()​

registerFont(compositionId, font): Promise<void>

Defined in: js-server-sdk/src/composition.ts:350

Register a font that scenes can render text with. The font is either a Blob or a path to read it from; never pass a path taken from untrusted input, since its contents are uploaded.

Parameters​

ParameterType
compositionIdCompositionId
fontstring | Blob

Returns​

Promise<void>


registerImage()​

registerImage(compositionId, imageId, image): Promise<void>

Defined in: js-server-sdk/src/composition.ts:338

Register an image that scenes can reference by its renderer ID.

Parameters​

ParameterType
compositionIdCompositionId
imageIdRendererId
imageImageSpec

Returns​

Promise<void>


registerInput()​

registerInput(compositionId, inputId, input): Promise<RegisterInputResponse>

Defined in: js-server-sdk/src/composition.ts:134

Register a media source on a composition. Prefer the variant methods, such as CompositionClient.registerWhipInput, which return what that input type produces.

Parameters​

ParameterType
compositionIdCompositionId
inputIdInputId
inputRegisterInput

Returns​

Promise<RegisterInputResponse>


registerMp4Input()​

registerMp4Input(compositionId, inputId, options): Promise<Mp4InputDurations>

Defined in: js-server-sdk/src/composition.ts:197

Register an input that plays an MP4 file.

Parameters​

ParameterType
compositionIdCompositionId
inputIdInputId
optionsOmit<Mp4Input, "type">

Returns​

Promise<Mp4InputDurations>

how much media the file holds, see Mp4InputDurations


registerOutput()​

registerOutput(compositionId, outputId, output): Promise<void>

Defined in: js-server-sdk/src/composition.ts:245

Register an output, the destination the composed result is sent to, carrying the scene to render.

Parameters​

ParameterType
compositionIdCompositionId
outputIdOutputId
outputRegisterOutput

Returns​

Promise<void>


registerRtmpInput()​

registerRtmpInput(compositionId, inputId, options): Promise<string>

Defined in: js-server-sdk/src/composition.ts:215

Register an input that an RTMP publisher pushes media into. The stream key identifies the input and is carried in the returned address.

Parameters​

ParameterType
compositionIdCompositionId
inputIdInputId
optionsOmit<RtmpInput, "type">

Returns​

Promise<string>

the address to publish the RTMP stream to


registerRtmpOutput()​

registerRtmpOutput(compositionId, outputId, options): Promise<void>

Defined in: js-server-sdk/src/composition.ts:290

Register an output sending the composed result to an RTMP endpoint.

Parameters​

ParameterType
compositionIdCompositionId
outputIdOutputId
optionsOmit<RtmpOutput, "type">

Returns​

Promise<void>


registerTemplateOutput()​

registerTemplateOutput(compositionId, outputId, config, template): Promise<void>

Defined in: js-server-sdk/src/composition.ts:258

Register an output rendering a template bundle, as built by @fishjam-cloud/composition-cli. The bundle is either a Blob or a path to read it from; never pass a path taken from untrusted input, since its contents are uploaded.

Parameters​

ParameterType
compositionIdCompositionId
outputIdOutputId
configRegisterOutput
templatestring | Blob

Returns​

Promise<void>


registerWhepInput()​

registerWhepInput(compositionId, inputId, options): Promise<void>

Defined in: js-server-sdk/src/composition.ts:185

Register an input that pulls media from a WHEP endpoint.

Parameters​

ParameterType
compositionIdCompositionId
inputIdInputId
optionsOmit<WhepInput, "type">

Returns​

Promise<void>


registerWhipInput()​

registerWhipInput(compositionId, inputId, options): Promise<WhipInputTarget>

Defined in: js-server-sdk/src/composition.ts:150

Register an input that a WHIP publisher pushes media into.

Parameters​

ParameterType
compositionIdCompositionId
inputIdInputId
optionsOmit<WhipInput, "type">

Returns​

Promise<WhipInputTarget>

the address and token to publish with, see WhipInputTarget


registerWhipOutput()​

registerWhipOutput(compositionId, outputId, options): Promise<void>

Defined in: js-server-sdk/src/composition.ts:279

Register an output sending the composed result to a WHIP endpoint.

Parameters​

ParameterType
compositionIdCompositionId
outputIdOutputId
optionsOmit<WhipOutput, "type">

Returns​

Promise<void>


requestKeyframe()​

requestKeyframe(compositionId, outputId): Promise<void>

Defined in: js-server-sdk/src/composition.ts:327

Ask an output to emit a keyframe, so a viewer joining mid-stream renders a full picture sooner.

Parameters​

ParameterType
compositionIdCompositionId
outputIdOutputId

Returns​

Promise<void>


resetComposition()​

resetComposition(compositionId): Promise<void>

Defined in: js-server-sdk/src/composition.ts:111

Reset a composition, tearing down its scene while keeping the composition itself alive.

Parameters​

ParameterType
compositionIdCompositionId

Returns​

Promise<void>


sendEvent()​

sendEvent(compositionId, event): Promise<void>

Defined in: js-server-sdk/src/composition.ts:376

Deliver an event to the templates rendered by the composition's outputs.

Parameters​

ParameterType
compositionIdCompositionId
eventSendCompositionEventRequest

Returns​

Promise<void>


startComposition()​

startComposition(compositionId): Promise<void>

Defined in: js-server-sdk/src/composition.ts:100

Start a composition created with autostart disabled. Its outputs begin producing audio and video.

Parameters​

ParameterType
compositionIdCompositionId

Returns​

Promise<void>


unregisterImage()​

unregisterImage(compositionId, imageId, options): Promise<void>

Defined in: js-server-sdk/src/composition.ts:361

Unregister a previously registered image.

Parameters​

ParameterType
compositionIdCompositionId
imageIdRendererId
optionsUnregisterRenderer

Returns​

Promise<void>


unregisterInput()​

unregisterInput(compositionId, inputId, options): Promise<void>

Defined in: js-server-sdk/src/composition.ts:234

Unregister an input. Scenes referencing it stop receiving its media.

Parameters​

ParameterType
compositionIdCompositionId
inputIdInputId
optionsUnregisterInput

Returns​

Promise<void>


unregisterOutput()​

unregisterOutput(compositionId, outputId, options): Promise<void>

Defined in: js-server-sdk/src/composition.ts:301

Unregister an output. It stops producing audio and video.

Parameters​

ParameterType
compositionIdCompositionId
outputIdOutputId
optionsUnregisterOutput

Returns​

Promise<void>


updateOutput()​

updateOutput(compositionId, outputId, update): Promise<void>

Defined in: js-server-sdk/src/composition.ts:316

Replace the scene an output renders.

Parameters​

ParameterType
compositionIdCompositionId
outputIdOutputId
updateUpdateOutputRequest

Returns​

Promise<void>