Releases: livekit/egress
Releases · livekit/egress
v1.8.4
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
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
v1.7.9
v1.7.8
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
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
v1.7.2
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
v1.6.0
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
Version 1.5.3
Changelog
Fixed
- Config refactoring #173 & #174
- Fix track websocket test #176
- Better S3 credentials handling and validation #177
- Fix issue where egress in state STARTING or ACTIVE would never change to COMPLETED
- Do not log failures due to misconfigured egress requests with "error" severity #183
- Update logging library #185
- Redact upload secrets before sending status events #186
- Fix failure to unload pulseaudio plugin causing eventual pulseaudio failure.