Skip to main content

Transcodings

The transcodings resource turns finished recordings and HLS streams into downloadable files. Start a job, then track it with list / get or stop it with cancel.

Merge recordings

Composite-merge individual recordings into one MP4.

await client.transcodings.merge({ recordingIds: ["rec_1", "rec_2"] });

Options: recordingIds (required), webhookUrl, watermark.

HLS to MP4

Convert a finished HLS stream to MP4 in your storage. One of roomId / sessionId / hlsId is required.

await client.transcodings.hlsToMp4({ hlsId, storage: { type: "s3", bucket: "my-recordings" } });

Merge meeting recordings

Concatenate room recordings chronologically. Each reference is an id, optionally with a presigned URL.

await client.transcodings.meetingRecordingMerge({
recordingIds: ["rec_a", { id: "rec_b", presignedUrl }],
});

Options: recordingIds (required), webhookUrl, presignedOutputUrl.

Track and cancel

await client.transcodings.list({ status: "processing" });
await client.transcodings.get(id);
await client.transcodings.cancel(id);

list filters: roomId, sessionId, hlsId, status (pending, processing, completed, failed, cancelled).

The transcoding object

id, task, status, roomId, sessionId, hlsId, recordingIds, startedAt, stoppedAt, and file.

Got a Question? Ask us on discord