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​
| Parameter | Type |
|---|---|
config | CompositionConfig |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
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​
| Parameter | Type |
|---|---|
config | CreateCompositionRequest |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
font | string | 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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
imageId | RendererId |
image | ImageSpec |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
inputId | InputId |
input | RegisterInput |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
inputId | InputId |
options | Omit<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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
outputId | OutputId |
output | RegisterOutput |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
inputId | InputId |
options | Omit<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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
outputId | OutputId |
options | Omit<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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
outputId | OutputId |
config | RegisterOutput |
template | string | 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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
inputId | InputId |
options | Omit<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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
inputId | InputId |
options | Omit<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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
outputId | OutputId |
options | Omit<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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
outputId | OutputId |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
event | SendCompositionEventRequest |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
imageId | RendererId |
options | UnregisterRenderer |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
inputId | InputId |
options | UnregisterInput |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
outputId | OutputId |
options | UnregisterOutput |
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​
| Parameter | Type |
|---|---|
compositionId | CompositionId |
outputId | OutputId |
update | UpdateOutputRequest |
Returns​
Promise<void>