Releases: livekit/egress
Releases Β· livekit/egress
Version 1.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 as a storage quota (#1080)
- Setting chrome.log debug file size limits & rotation (#1081)
Fixed
Version 1.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)
- Handle small audio gaps by the signal time stretching/compression instead of having discontinuities (#974)
- Adding MP3 to the supported audio types for audio only recordings (#1007)
- Adding burst estimator (#1026)
- Adding gstreamer pipeline running/playhead time accessors (#1025)
- Adding latency overrides per request types (#1050)
- Add PSRPC observability to IOInfoClient (#1056)
- Add a watchdog to shutdown egress on PSRPC failures (#1061)
Fixed
- set status to failed when an egress is killed (#961)
- Log SDK app writer source stats on EOS (#963)
- Align test source output buffer duration with opus frame size (#966)
- disable rtcp for room composite (#971)
- Don't log every single audio discontinuity (#985)
- Switch from react-scripts to vite for egress-templates build (#989)
- Use specific template version with egress versions (#1000)
- Snap audio PTS back to the regular time grid (#1002)
- Speed up build time (#1004)
- Don't delete test results immediately - keep them for eventual after run analyisis (#1005)
- do not send eos on participant composite video tracks (#1008)
- Skip dummy video packets (#1013)
- Extend max allowed RTP timestamps diff (#1016)
- Use arrival time and one way delay estimation in PTS calculation. (#1015)
- Stair step discrete corrections of track start time (#1019)
- Update sdk to include quanitzed SRs adjustments (#1020)
- Go SDK for track synchronizer packet stats (#1021)
- Go SDK to set initial PTS to estimated PTS (#1022)
- Restore defaultRTPMaxAllowedTsDiff setting (#1023)
- Drop old samples when sample queue overflows. (#1024)
- Add controller nil checks to IPC handler (#1027)
- Update server-sdk to pull in the fix for initialize timing (#1029)
- RemoveTrack after finish. (#1030)
- Adding linters (#1033)
- Update server-sdk to pull in logs sampling fix (#1035)
- Update server-sdk to pull in the fix for ensuring no PTS regressions (#1039)
- Adding more logs around stopping pipeline (#1042)
- Update server-sdk to include the fix for sanitized SRs (#1043)
- Detect & handle missing PTS after vp9parse element (#1046)
- Adjusting UpdateEgress retry logic (#1048)
- VP9 - Drop a frame with an invalid PTS and wait for key frame (#1047
- Adding a workaround for baseparse gstreamer bugs which could produce buffer with no valid PTS (#1049)
- Fix filename templating in case of multi output (#1051)
- Log egressID in io client worker (#1054)
- Pay attention to context deadline on IO update (#1062)
- Close grpc ClientConn in the main process (#1064)
- Logging significant IPC callbacks (#1066)
- retry S3 upload on 409 or 429 (#1069)
- Disable scenecut when keyframe interval is set (#1070)
Egress version 1.10.0
Changelog
- fix segment panic for very large durations (#869)
- update logger (#870) (#874) (#878) (#894) (#898) (#918)
- fix panic on reading stream stats (#881)
- fix for sdk room composite (#883)
- do not log an empty string an error for glib errors/warnings (#885)
- use core.Fuse in the source logic (#888)
- do not fail image output if no dimension is set (#890)
- support extra webhooks in egress requests (#891)
- fix race between track subscriptions and audio bin creation (#892)
- chrome logging + extended logging controls (#897)
- add support for IMAGE_SUFFIX_NONE_OVERWRITE (#895)
- update dependency @babel/runtime to v7.26.10 [SECURITY] (#875)
- update all deps and go version (#901)
- update template deps (#902)
- update jitter buffer (#903)
- fix audio gaps (#905)
- use the livekit go-gst fork (#904) (#906) (#933)
- update nth-check template dep (#907)
- improved update management (#909)
- SDK timing (#910)
- update README yaml config regarding storage (#916)
- move latencies to config (#915)
- remove process handler on launch failure (#917)
- nil check primary error (#919)
- fix json ignore (#920)
- fix audio mixer (#924)
- adopt storage version of blob uploader (#925)
- update storage, handler logger (#930)
- feat(cli): update to urfave/cli/v3 (#928)
- limit pulse clients (#931)
- allow setting GST_DEBUG env at runtime (#876)
- add GetAvailableMemory to monitor (#932)
- fix azure urls (#935)
- memory updates (#936)
- delete the handler temporary context rehardless of the handler termination status (#934)
- increase audio alignment threshold (#937)
- fix race in audio track subscription (#938)
- add duration to presigned urls (#941)
- use gstreamer 1.24.12 (#943)
- allow uploading to S3 using AssumeRole (#940)
- update pion dependencies (#946)
- fix for AssumeRole credential insertion (#948)
Version 1.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)
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
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)