Skip to content

Releases: livekit/egress

Version 1.9.0

07 Jan 00:53
2dc12c4
Compare
Choose a tag to compare

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)

Fixed

  • Skip AWS logging on successful upload (#762)
  • Reduce duplicate test runs (#763)
  • Fix s3logger memory usage (#764)
  • Disable SDK Async-connect (#768)
  • Faster startup (#769)
  • Queue 15 min worth of segments (#770)
  • Use config value for max upload queue size (#772)
  • Disable-features Translate in headless Chrome (#775)
  • Add a back off top laylist upload retries (#779)
  • Remove audio with image-only egress (#782)
  • Adopt AWS SDK v2 (#783)
  • Force CBR for streams output (#785)
  • Don't update bucket region with custom endpoints (#786)
  • Set a region field when using a custom endpoint (#788)
  • Ignore websocket close errors (#790)
  • Avoid recording room composite before video is decoded (#806)
  • Fix max concurrent web check (#810)
  • Use Ubuntu 24.04 base image (#811)
  • Move IO timeouts to config (#814)
  • Upgrade to pion/webrtc v4 (#818)
  • Kill highest memory egress when OOM (#826)
  • Udpate livekit JS dependencies and call setRoom in default template (#835)

v1.8.4

21 May 05:37
95713d5
Compare
Choose a tag to compare

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 when used with other outputs (#642)
  • Fixes to jitter buffer and track synchronizer for track/track composite egress (#643, #660)
  • Race on shutdown causing some final updates not to send (#666, #667, #674)

v1.8.2

08 Mar 00:37
84452bb
Compare
Choose a tag to compare

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)
  • Keyframe intervals for segments and streams (#611, #618)
  • multi output use case with image outputs and local image save path (#614)
  • Force IPv4 with GCP client (#623)
  • Marking aborted egress as failed (#620, #625)

v1.8.0

13 Jan 17:48
Compare
Choose a tag to compare

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)

v1.7.9

13 Sep 19:20
Compare
Choose a tag to compare

Fixed

  • Pulse not closing properly eventually causing all room composite and web egress to fail (#486)

v1.7.8

08 Sep 22:39
Compare
Choose a tag to compare

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 track/track composite egress (#465)

Changed

  • Chrome sandboxing is now a config option, disabled by default (#481)

v1.7.5

05 Jul 22:12
Compare
Choose a tag to compare

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 composite egress will fail with a chrome failed to start error.

Fixed

  • Hang if EndRecording called before StartRecording (#392)
  • Panic on concurrent websocket writes
  • CPU overscheduling (leads to audio loss and other issues) (#396, #403, #406)
  • Hang on gstreamer internal deadlock (#407)

Added

  • Include logs from gstreamer (#398, #401, #411)
  • Save space by deleting local segments once uploaded (#405)

v1.7.2

05 Jun 18:23
Compare
Choose a tag to compare

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 websocket egress will send pings to keep websocket connection alive
  • An instance will not schedule above 80% CPU (maxing out CPU causes issues)
  • An instance will now accept a request if it's idle and requirement == total CPUs (for example, room_composite_cost = 4 and your pods have 4 CPU)

Changed

  • Redacted stream keys in logs will show the starting and ending characters so they can be identified

v1.7.0

27 Apr 00:38
ffbadc5
Compare
Choose a tag to compare

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 livekit-components (#323, #350)
  • Better input validation (#322, #328)

v1.6.0

09 Mar 22:59
cc6103a
Compare
Choose a tag to compare

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 output, to match Agora's TS filename conventions

Fixed

  • VP8 resolution change issue with track egress (Caps changes not supported by Mastroska error)
  • Updated GStreamer to v1.22.0 for improved stability
  • New internal communication system (PSRPC) with improved reliability - can be turned on by setting UsePSRPC to true in LiveKit Server config
  • Various A/V sync and reliability improvements

Changed

  • Google cloud storage config Credentials now takes a string instead of bytes to match the egress config