V2 egress API introduces unified source and output configuration (StartEgressRequest, MediaSource, Output, StorageConfig), per-participant audio channel routing (AudioRoute), and request-level storage overrides. Also added egress auto retry, faster-than-realtime recording, cgroup-aware memory monitoring, support for mulaw and alaw codecs, and improved multi-publisher support. Multiple fixes address deadlocks, race conditions, pipeline frozen errors, and WebRTC synchronization issues.
LiveKit Egress
Mon
Wed
Fri
JulAugSepOctNovDecJanFebMarAprMayJunJul
LessMore
Releases1Avg0/wkVersionsv1.13.0
v1.13.0
v1.12.0
Changelog
Added
- Ability to request dot file dumping through gst callbacks (#1072)
- Invoke UpdateEgress on each stream retry attempt (#1055)
- Logging for file outputs exceeding set of file size thresholds (#1079)
- Ability for configuring max file size in bytes…
v1.11.0
Changelog
Added
- Allow setting a default role ARN for S3 upload requests (#958)
- Agent testing (#960)
- Adding audio mixer QoS stats processing (#969)
- Add content checks to file integration tests (#988)
- Basic content checks for segment tests (#990) -…
v1.10.0
Changelog
- fix segment panic for very large durations (https://github.com/livekit/egress/pull/869)
- update logger (https://github.com/livekit/egress/pull/870) (https://github.com/livekit/egress/pull/874) (https://github.com/livekit/egress/pull/878)…
v1.9.0
Changelog
Added
- Support for backup storage (#792) (#793) (#795) (#825)
- Log per egress memory usage (#821)
- Support for participant egress screen share (#829)
- Use the SDK to handle audio only room composite requests with the default template (#817)
###…
Changed
- Preset 0 (720p, 30fps) is now the default recording option (#640)
Fixed
- Zombie processes eventually causing chromium or X to fail (#673)
- Pipeline getting stuck with Participant composite when a track is unpublished (#635, #644)
- ImageOutputs broken…
Added
- Audio-only cpu requirements (#597)
- is_disabled prometheus metric for terminating nodes (#622)
- Details field in EgressInfo (#627)
Fixed
- Race condition with deadlock (#608)
- Critical gstreamer error with Participant egress (#624, #626, #628) *…
Requires livekit-server v1.5.1+
Fixed
- Track/Track composite failures when video track begins muted (#524)
- Segment upload failures if queue gets backed up (#509)
- Sync issues (#498, #507)
- Stream reconnections (#503)
Fixed
- Pulse not closing properly eventually causing all room composite and web egress to fail (#486)
Fixed
- Improved RTMP retry policy (#444)
- Pipeline frozen errors (#459)
- Websocket egress marked as failed after being stopped (#450)
- Negative waitgroup counter bug with track/track composite egress (#463)
Added
- Supports decoding vp9 tracks with…
NOTE: as of v1.7.5, chrome sandboxing is enabled for increased security. As a result, the service is no longer run as root
inside docker, and all Egress deployments (even local) require --cap-add=SYS_ADMIN in your docker run command.
Without it, all web and room…
Added
- AwaitStartSignal option for web egress (if true, it will not start until your website logs
START_RECORDING)
Fixed
- New jitter buffer to help with track/track composite latency issues
- Updated track synchronizers to help with a/v sync issues
- Track…
Fixed
- State management bugs (#292, #333)
- Service stops replying for existing egress on shutdown (#297)
- Server panics (#301, #320, #348)
- Track sync/timestamping issues (#305, #313)
- Cost config not respected (#346)
Updated
- Templates use…
Added
- Multiple outputs enabled (max one of each type) - for example, you can stream to multiple providers and store an mp4 all with one egress (currently only available by using twirp directly, sdk updates coming soon)
- Added timestamp suffix option with segmented file…
v1.5.3
Changelog
Fixed
- Config refactoring https://github.com/livekit/egress/pull/173 & https://github.com/livekit/egress/pull/174
- Fix track websocket test https://github.com/livekit/egress/pull/176
- Better S3 credentials handling and validation…
Changelog
Fixed
- support for running on linux systems with no cgroup support https://github.com/livekit/egress/pull/169
- CPU usage ratio reporting when a cgroup CPU quota is set https://github.com/livekit/egress/pull/169
- H264 subscription support with web…
Changelog
Fixed
- support for older linux kernels with cgroup v1 #155
- default HLS segment and playlist filename #166
- S3 upload metadata #156
- fix for disabling storing manifest #159
- interaction with Digital Ocean S3 Implementation #162
Added
- support…
Fixed
- Choppy audio when streaming to Youtube (#107)
- Added support for CJK unicode characters in templates (#98)
- Allow query parameters in custom template base (#99)
Changed
- Upgraded Gstreamer from 1.18.5 to 1.20.3 (#102)
- Upgraded default layouts (#100)
Fixed
- Rare freezing and/or segmentation faults, primarily with track composite (#92) (#93) (#94)
Changed
- Egress stopped due to session limit now returns
LIMIT_REACHEDstatus instead ofFAILED(#90) - Track egress for vp8 tracks will output a .webm file…
Added
- Support for session timeouts (#76)
- Redis sentinel support (#71)
Fixed
- File upload not running with track egress (#70)
- Bug where StopEgress RPCs return "no response" for track and track composite egress (#71)
- Failure when track is not immediately…
