Video recording
Recordings enable you to convert live video from 100ms rooms into long-lived video assets. 100ms can generate different types of recordings
- Composite recordings: One video file, composed with tracks of all peers in the room
- Track recordings: Separate media files for audio, video and screen-share tracks
Composite recordings
Previously called browser or beam recording.
100ms can record a room to capture the perspective of a participant, who can hear and see other participants in the room. These recordings are a mix of multiple audio/video tracks, composed together in one video file—with a layout that is similar to the UI of the room. The output is a single MP4 file.
Composite recordings can be customized: you can define which roles to record, which video resolution to record and, other modifications to the UI.
Internally, these recordings are created using an automated web browser that joins the room as a hidden peer (called "beam")—which records the screen to generate a composite recording.
Start and stop recording
Enable "room composite recordings" on any template created on the 100ms Dashboard. This enables the feature for your template, and exposes options to customize the recording. You can control when to start and stop recording, based on your use-case.
There are 3 methods to start a recording.
Start with API
Start recording by calling the 100ms server-side REST API. This is suitable to start/stop based on business logic.
Start from SDK
Start recording with the client-side SDK. This is suitable to start/stop based on user action (click a button).
Fetch the recording
After the recording is stopped and processed, a recording asset is generated. Composite generates an asset of type room-composite
. You can fetch this asset through multiple methods:
- Fetch on 100ms Dashboard
- Auto-send to your cloud storage location
- REST API to get recording asset
- Server-side webhooks: use the
beam.recording.success
webhook
Customizing the recording
- No-code customization on the 100ms Dashboard: Modify the video resolution, which roles to be recorded
- Get audio-only recording: possible via the REST API to start recording
- Customize the composition UI
Legacy composite through SFU recording
100ms has an alternative method to generate a composite video. This method is not recommended since above described method generates a higher quality video.
SFU recording generates the asset type called room-composite-legacy
.
See migration doc to compare these 2 methods and pick a preferred approach.
Recording with live streaming
You can turn on recording when starting up a new live stream. 100ms can produce two different formats of recordings suitable for downloading or streaming in on demand scenarios. Learn more about recording with a live stream here.
Track recordings
Some use-cases require 1 file per 1 track (audio, video or screen-share). This can be generated through the SFU recording.
Track recordings can be enabled for your template through the 100ms Dashboard. Once enabled, the recording starts automatically when the first peer joins a room, and stops automatically when the last peer leaves the room.
Fetch the recording
You can fetch track recordings through two methods:
- Auto-send to your cloud storage location
- Server-side webhooks: use the
track.recording.success
webhook