Skip to main content
Configuration options that control room behavior and set default options for capturing and publishing.

Default Capture Options

defaultCameraCaptureOptions
CameraCaptureOptions
Default options for camera capture.
defaultScreenShareCaptureOptions
ScreenShareCaptureOptions
Default options for screen share capture.
defaultAudioCaptureOptions
AudioCaptureOptions
Default options for audio capture.

Default Publish Options

defaultVideoPublishOptions
VideoPublishOptions
Default options for publishing video tracks.
defaultAudioPublishOptions
AudioPublishOptions
Default options for publishing audio tracks.
defaultDataPublishOptions
DataPublishOptions
Default options for publishing data.

Adaptive Streaming

adaptiveStream
Bool
default:"false"
AdaptiveStream lets LiveKit automatically manage quality of subscribed video tracks to optimize for bandwidth and CPU.When attached video elements are visible, it’ll choose an appropriate resolution based on the size of largest video element it’s attached to.When none of the video elements are visible, it’ll temporarily pause the data flow until they are visible again.
dynacast
Bool
default:"false"
Dynamically pauses video layers that are not being consumed by any subscribers, significantly reducing publishing CPU and bandwidth usage.

Track Management

stopLocalTrackOnUnpublish
Bool
default:"true"
Automatically stop local tracks when unpublished.
suspendLocalVideoTracksInBackground
Bool
default:"true"
Automatically suspend (mute) local camera video tracks when the app enters background and resume (unmute) when the app enters foreground again.

Encryption

e2eeOptions
E2EEOptions?
default:"nil"
End-to-end encryption options (legacy).
encryptionOptions
EncryptionOptions?
default:"nil"
Encryption options. Use this instead of e2eeOptions for new implementations.
Specifying both e2eeOptions and encryptionOptions is not supported.

Statistics

reportRemoteTrackStatistics
Bool
default:"false"
Enable reporting of remote track statistics.

Usage

let roomOptions = RoomOptions(
    adaptiveStream: true,
    dynacast: true,
    defaultCameraCaptureOptions: CameraCaptureOptions(
        dimensions: .h720_169,
        fps: 30
    )
)

let room = Room(roomOptions: roomOptions)

Build docs developers (and LLMs) love