Replies: 4 comments 12 replies
-
A possible benefit: |
Beta Was this translation helpful? Give feedback.
-
I wanted to add some comments here as I wrote the RFC linked above and clarify some of why I haven’t really updated the RFC, because I do think Dodgepong sort of gets to the bottom of why that RFC probably wasn’t the right approach. To start with, I work at the Video Platform at Twitch, also building Amazon IVS (Interactive Video Service). The RFC’s intent stemmed from a desire to help customers correctly configure OBS for use cases that are outside of the traditional Twitch stream. For example, a customer streaming to IVS today using OBS gets the default 4 second keyframe interval together with x264’s standard As OBS is a tool intended for many platforms, I thought it would be silly to try to change the default behaviour to fit Twitch & IVS. Instead I tried to come up with a solution where the service could take on the burden on specifying the configuration for the user so new IVS customers didn’t have to add hundreds of pull requests to the services file. Another use case of this that I didn’t touch on in the RFC is the desire to provide deeper recommendations from the platform on what parameters to encode with. Of course we’re not asking to “mandate” the users configuration but in many cases we see users stream based on recommendations that are generic that for example aren’t working for their specific ISP. Being able to give the user a link of “hey this configuration might work better for you” would enable a better streaming experience for the user from the platform point of view.
I agree that this approach would work great as well as a bridge until an URI handler exists (if it ever does). Having the user download a file and automatically opening in OBS is easier than having to guide the user to copy JSON files into specific directories or provide 5 screenshots of how to configure OBS correctly. I would add some feedback to this approach. If I skim the services.json file I can sse that it supports specifying blocks like these:
Just make sure that these are also resolutions that can be vertical, as broadcasting for mobile aspect ratios (vertical video) is becoming more popular. Being able for a service to specify 4 resolutions that are vertical would be great. // coral - [email protected] |
Beta Was this translation helpful? Give feedback.
-
I wrote up a lengthy reply to why we should continue hosting service files on obsproject.com for updates, but lost it before posting in my clumsiness. TLDR: For privacy (exposing users to 3rd party sites) and security (potentially malicious / DoS JSON payloads) I'd suggest we keep updates on our site where possible. Bonus: At some point we can ditch the whole PR-a-JSON-file process and have a user-friendly service submission web UI. |
Beta Was this translation helpful? Give feedback.
-
I'd like to reopen this discussion, as it's becoming increasingly clear that some level of custom service handling will be useful for OBS, specifically for plugins that might want to roll their own lists and have full control over them. The solution proposed and implemented by RytoEX seems to be a fair compromise between all the raised points. Are there any strong objections to this approach? |
Beta Was this translation helpful? Give feedback.
-
I wanted to test the waters a bit on this concept before submitting an RFC, so I figured I'd give the new Github discussions feature a whirl just to see how it goes. There was an internal discussion about this idea a few days ago, and I figured it was worth sharing more publicly.
Since OBS started, we've been maintaining a monolithic services file that lists every RTMP service that we support, along with some encoding restrictions for each service. This file populates the services drop-down in the Stream settings.
This works, but it's a bit cumbersome to use for a few reasons:
A more flexible solution to these problems would be to split out the services each into their own files rather than have them live in a single monolithic file. Services would live in a folder, rather than a file, and the services list would be populated by iterating through each JSON file in the given folder.
Furthermore, we could register these JSON files with a custom extension, such as
.obssvc
, which means services could distribute these files for download, and users could simply double-click them to add them to OBS without the need to manually place them in a folder. Services could still be installed into OBS via the URI handler (whenever it arrives) with a one-click button on the website, but registering a file handle would also be a good step toward making the files easier to use.Benefits:
Addressing a few questions:
I'm interested to hear thoughts on this idea, or if someone has a better idea. Note that @RytoEX has already implemented a portion of this feature here: https://github.com/RytoEX/obs-studio/tree/add-user-defined-rtmp-services
Beta Was this translation helpful? Give feedback.
All reactions