rootbeerdan 4 Posted October 3, 2023 Share Posted October 3, 2023 The main thing that would need to change to implement this feature: Client apps need to check for a DNS HTTPS RR or respect server Alt-Svc I would say this is the most important part of the feature request, as anyone who really cares about squeezing the most performance will already be using a reverse proxy like Caddy or NGINX, which have both implemented QUIC already. The "nice to have" feature for people who don't use their own web server (and also probably a ton of work): Built-in web server needs to advertise alpn=h3,h2 and bind to UDP This seems like an inconsequential feature, but it's actually incredibly useful for folks who like to connect to their Emby server far away or over networks with high jitter and packet loss like LTE/5G (increasingly common with 5G FWA becoming mainstream). Connection ID tracking would be even cooler (although AFAIK not completely implemented in .NET as of late), so folks moving between networks don't have their stream drop. I spent some time implementing it for an internal app for live video streams at <job> using quic-go and the performance impact is noticeable and significant on congested networks (and more importantly, not worse than http/2 in low-loss scenarios like a local network). The one thing I was caught on is WebSockets, I'm not sure how much Emby uses WSS (outside of knowing that it uses them), but this feature request is mainly about reducing the amount of time Emby is spending loading the menu or media itself on iffy or otherwise congested networks, so it might be outside of the scope. Unencrypted HTTP is also out of scope, since there's no such thing as unencrypted HTTP/3 (IIRC local connections use IPv4 + HTTP only). I noticed that the Emby Web Client will happily work over HTTP/3 with my Caddy server in front of it, and it even shows up in the Activity dashboard as HTTP/3 when I log in, so I hope that it's a simple change on the rest of the Emby clients (we can all dream). Also happy to help out testing/implementing if it would speed things along. 1 Link to comment Share on other sites More sharing options...
Luke 37109 Posted October 3, 2023 Share Posted October 3, 2023 HI, in terms of Emby clients, there's nothing we really need to do as we don't handle the low level networking ourselves. That sort of improvement will generally come for free when the device/browser/operating system supports it. There are some exceptions where we embed our own player. For instance on android we use exoplayer, so that would need to support it. On iOS and Windows we use mpv, so it depends on whether that supports it or not. In terms of the server, we're currently running .net 6 and http3 is marked as experimental with it. We haven't enabled it though. When we move to .net 7, we'll reevaluate that. 1 1 Link to comment Share on other sites More sharing options...
shorty1483 453 Posted April 23 Share Posted April 23 On 10/4/2023 at 1:50 AM, Luke said: HI, in terms of Emby clients, there's nothing we really need to do as we don't handle the low level networking ourselves. That sort of improvement will generally come for free when the device/browser/operating system supports it. There are some exceptions where we embed our own player. For instance on android we use exoplayer, so that would need to support it. On iOS and Windows we use mpv, so it depends on whether that supports it or not. In terms of the server, we're currently running .net 6 and http3 is marked as experimental with it. We haven't enabled it though. When we move to .net 7, we'll reevaluate that. Does .NET 8 implementation on beta server support it? Link to comment Share on other sites More sharing options...
Luke 37109 Posted April 23 Share Posted April 23 17 minutes ago, shorty1483 said: Does .NET 8 implementation on beta server support it? The runtime does but haven’t had a chance to test in Emby yet. 1 Link to comment Share on other sites More sharing options...
shorty1483 453 Posted April 23 Share Posted April 23 Will test if current beta goes into stable. QUIC support is the only thing holding me back from ditching Caddy and use Emby without reverse proxy. 2 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now