Recording Modes
Composite, individual and raw-data modes; layout, encoding and output differences.
Recording modes
RecordingConfig.isMixingEnabled and the 4.x enable_mix select individual or composite recording; "page" mode is a composite variant.
| Mode | Setting | Output | Status in this SDK |
|---|---|---|---|
| Individual | isMixingEnabled=false | one MP4 per uid | One sink per session; several uids require several sessions. startSingleRecordingByUid/setRecorderConfigByUid are not supported in the current version |
| Composite | isMixingEnabled=true | one MP4 | The composed picture is produced by the host/egress and written by the sink; setVideoMixingLayout (rendering) is not supported in the current version |
| Page | egress kind=web | one MP4 | Real: EgressWorkerSink(transport, "web") |
Layouts
VideoMixingLayout and Region are frozen public types (width/height/x/y/zOrder/alpha) and can be constructed fully; rendering a composite needs a media renderer, which this SDK does not bundle, so setVideoMixingLayout throws NotSupportedException(4). The type is surface, the composition is capability.
For real compositing use EgressWorkerSink: the layout is executed by the egress worker (LiveKit egress).
Containers
| Sink | Container | Audio |
|---|---|---|
FfmpegFileSink | MP4 (H.264) | Not supported: PushAudio returns -ERR_NOT_SUPPORTED (never silently drops audio) |
EgressWorkerSink | MP4 (chosen by egress) | Supported (egress records the room audio) |