Open Ryn-Fox opened 1 month ago
Theoretically support for it may already be included in libvlc.
When I put in an SRT URL into a VideoTextureProvider it immediately clears itself. For example: srt://127.0.0.1:port?mode=caller.
Also I found which versions of VLC support SRT. I'm not sure what Resonite is using.
Does any 3.x version of libVLC support this protocol?
If that's the case, we just need to add it to list of recognized protocols and it should work.
Are there actually any publicly available SRT streams that I could use to test with?
To answer your first question, SRT (and the similar protocol RIST) are supported in the latest 3.x libVLC (I checked the source code as seen here: https://github.com/videolan/vlc/tree/3.0.x/modules/access), even on Windows.
For your second question, I couldn't find any public streams with a quick search, but it's easy to generate one by streaming with OBS and setting the stream source to an SRT URL.
Delta (the green wolf) and I were doing some testing and I think encountering firewall issues, which we'll need to figure out before this becomes a viable solution in Resonite. Unfortunately the libVLC 3.x release of SRT doesn't support "Rendezvous" mode, which cleanly handles firewall tunnelling in most cases.
When I originally made this request I hadn't thought about the fact that the streamer will need to negotiate sending to multiple clients. I'm 90% certain both SRT and RIST support that, but I'll need to do more research and testing to figure out a clean and user-friendly solution.
SRT atleast can send to multiple clients. I assume the same would be for RIST.
Is your feature request related to a problem? Please describe.
RTMP is currently the main avenue for streaming desktop and video content to other users in Resonite, and it suffers from very high latency and difficulty in setup (usually requiring a middleman server).
Describe the solution you'd like
SRT is a newer streaming protocol that fills a similar niche to RTMP but with many great benefits above and beyond it, most notably its incredibly low latency and good stability. It's open source, high quality, easy to set up (it's built right into OBS), and handles firewalls easily.
Here is the creator's website explaining the protocol: https://www.haivision.com/blog/all/srt-everything-you-need-to-know-about-the-secure-reliable-transport-protocol/
I think it is a great fit for Resonite because of its open source nature and it opens an incredible amount of doors for creators streaming content to each other and easily bringing in live video content.
Describe alternatives you've considered
I'm not familiar with other Resonite-supported options that meet the same needs.
Additional Context
Link to the SRT Github page with sample apps and deployment guides: https://github.com/Haivision/srt
Requesters
Resonite: Ryn Fluff Discord: RynFluff