Improved handling of multiple interfaces/IPs. Also adding the ability to manage stereo and RED support at a track level.
Several stability improvements / edge case handling along with stereo Opus support
v1.2.1 is a bugfix release
We are excited to introduce two major quality improvement efforts in this release!
First, we've added support for Opus RED. This brings a major step up to audio quality over lossy networks. Even with 50% packet loss, audio still comes out clear and free of robotic artifacts.
The other major feature is the ability to automatically switch to TCP or TURN/TLS when UDP connection is failing. Certain routers/firewalls would initially let through UDP packets, but then either rate limit or block them from continuing. We can detect these scenarios and switch to TCP for that participant. To enable this, set rtc.allow_tcp_fallback: true in config.
Read more about the release on our blog
You can now use any custom TURN server with LiveKit, including third-party TURN services. By setting rtc.turn_servers in the config, LiveKit will configure all connected clients to use specified TURN servers.
In some cases, you may want to prevent rooms from being created automatically. (i.e. a streamer ended a session, so viewers should not be able to join)
It's possible to disable auto-creation behavior from configuration.
For long running sessions, the session may still be running after the client's connection token had expired. livekit-server will now automatically send clients refreshed tokens so clients will always have valid tokens to reconnect with.
Previously, RoomService would return a response before the operation is actually completed. This would lead to synchronization challenge from clients. In v0.15.3, RoomService behaves like you would expect: operation is completed before it returns.
Ability to dynamically publish only layers that are being subscribed, significantly improving resource consumption on publishing clients. #295
Speaker updates will only be sent to subscribers. Other participants in the room will not receive updates. #280 #301
The ability to list rooms that match a particular set of inputs #290
Webhook callbacks will now include an unique ID as well as timestamp of the event. This enables idempotent processing of events on the listener side: #291
TrackInfo now includes a MIME type field that identifies the codec used (i.e. video/h264 or video/vp8) #292
Ability to attach a participant name in addition to identity. This should be set inside of the JWT token #293
The ability to disable congestion control #305. This option could be set in configuration.
We are introducing a significant improvement to the core SFU. It now monitors each subscriber's connection for congestion, and when detected, it controls bandwidth consumption for that subscriber by switching to lower simulcast layers at reduced bitrates. In case congestion gets worse, it'll prioritize audio and pause certain video tracks.
The addition of this feature enables LiveKit to work within highly congested networks while delivering an acceptable user experience.
When a participant connects without subscribe permission, server will use the publisher PeerConnection as the default #198
Connection quality updates now supports audio-only participants, with a MOS-style scoring.
Lots of bugs squished and packed with improvements in the core SFU.
v0.14 introduces detection for connection quality that's performed on the server side. The SFU will gather various metrics such as packet loss, publish and subscribe success rates to determine the quality of the participant's connections. #167
By performing this check on the server side, all LiveKit clients will receive quality information with minimal effort.
Connection quality information is sent to the participant itself, as well as any other participants it's subscribed to.
JS SDK v0.14.0 supports this feature, with Android, iOS, and Flutter to follow suit next week.
Full Changelog: https://github.com/livekit/livekit-server/compare/v0.13.5...v0.13.7
Bugfix release
abs-send-time #149In v0.13.3 mixing simulcast and non-simulcast tracks was broken. This release addresses that.