StreamAssistant

StreamAssistant

prgmitchell

Forum Moderator
prgmitchell submitted a new resource:

StreamAssistant - Host, join, or connect locally to an OBS instance.


StreamAssistant allows you to either connect locally to an OBS instance or host/join a session allowing remote management of scenes, sources, and settings using websocket. This tool uses a secure WebRTC p2p connection between the remote browser and the browser connected locally to OBS while a signaling service only helps the browsers establish that connection where commands/state changes/previews travel through an encrypted WebRTC...

Read more about this resource...
 
Great work! I’ve run into some issues while using it: for instance, if I have a screen capture source underneath a browser source, I can't move the browser source because the screen capture underneath gets selected instead (though I can resize it). It’s not possible to move part of a source outside the window. Studio Mode isn't working; if I change something in the preview, it shows up in the program output immediately. I’d also like to ask if this will be uploaded to GitHub and if it will be possible to contribute by writing code. (Reposting this comment; I had made a mistake earlier—I thought it was an issue with my specific version of OBS, but the errors are persisting.)
 
hi @ed0ardo great feedback. I have made some adjustments and deployed the changes
1) the selection issues you mentioned should be fixed or at least a bit better but I'd love more feedback if you are still having issues
2) studio mode was working as expected in the actual OBS instance but the preview was updating in both spots on the streamassistant interface, weboscket is unable to capture the program output in this way so for now I have just frozen it in place until a transition is completed which should be more in line with what you'd expect
3) you can now move a source so it is outside the preview
4) as of now I do not plan on posting the source publicly or allowing contributions but I will consider this for the future.
 
Hi, thanks for the quick update; I’ve tested it, and everything seems to be working correctly. I have a question for you: I was trying to set up a remote connection between two PCs on different networks. Do you think it’s possible to implement a secure method for this that doesn't require a VPN or exposing too much to the internet?
 
@ed0ardo that is already possible with this and requires no special setup, simply host a session from the host tab and then use the provided join link on the 2nd PC.
 
@ed0ardo that is already possible with this and requires no special setup, simply host a session from the host tab and then use the provided join link on the 2nd PC.
I tried testing it with a friend: I create the session and send the link, he clicks "Join", and I receive the request. I accept it, but his "Join" button stays stuck on loading, and after a few seconds, I see this error: "Direct P2P connection failed. Use a VPN/tunnel fallback or try a different network."
 
I tried testing it with a friend: I create the session and send the link, he clicks "Join", and I receive the request. I accept it, but his "Join" button stays stuck on loading, and after a few seconds, I see this error: "Direct P2P connection failed. Use a VPN/tunnel fallback or try a different network."

I cannot reproduce this, have tried between a bunch of different systems on different networks across the country/world. Either way, I have made some changes to try to accommodate but this may be a networking issue on the end of either you or your friend.
 
I cannot reproduce this, have tried between a bunch of different systems on different networks across the country/world. Either way, I have made some changes to try to accommodate but this may be a networking issue on the end of either you or your friend.
Hi, we’ve managed to establish the connection, but shortly after (1–2 minutes) we get this error: "Could not send encrypted relay data." It works correctly before the error occurs, but the changes we make afterwards are not applied.
 
Hey! I’m looking for a remote OBS solution for my stream producer/mod. We don’t live together and are on completely different Wi-Fi networks, so I need this to work remotely over the internet.


My biggest requirement is for him to be able to click and drag sources directly on my OBS preview/canvas to move and resize them, just like he would if he were sitting at my PC.


I’m trying to avoid using a full remote-desktop solution like RustDesk/AnyDesk because my streaming PC is already pretty heavily loaded and I don’t want to add another program constantly running in the background.


Ideally, he would be able to use a browser on his laptop to:


  • See my OBS preview
  • Select individual sources
  • Click and drag sources around the canvas
  • Resize/reposition sources
  • Show/hide sources
  • Switch scenes
  • Control other OBS production functions

Basically, I’m looking for a true remote OBS production interface, not just a Stream Deck-style remote control.


Would StreamAssistant work for this? Specifically, can the remote user interact with the OBS preview and drag/resize sources with their mouse over the internet, even when they’re on a completely different network?


If it can do this, it sounds extremely close to what I’m looking for. Thanks!
 
Hi, we’ve managed to establish the connection, but shortly after (1–2 minutes) we get this error: "Could not send encrypted relay data." It works correctly before the error occurs, but the changes we make afterwards are not applied.

Hello, thanks for continuing to troubleshoot....looks like the fallback is working for you, I have made some further adjustments let me know.
 
Hello, thanks for continuing to troubleshoot....looks like the fallback is working for you, I have made some further adjustments let me know.
Hi, thanks again, it seems to be resolved. I hope I’m not bothering you with these reports. I wanted to ask if it’s possible to add a feature for cropping sources (like an Alt+drag action). Also, just out of personal curiosity, I wanted to ask what kind of fallback mechanism you used to enable the connection.
 
Hi, thanks again, it seems to be resolved. I hope I’m not bothering you with these reports. I wanted to ask if it’s possible to add a feature for cropping sources (like an Alt+drag action). Also, just out of personal curiosity, I wanted to ask what kind of fallback mechanism you used to enable the connection.

No not bothering at all, if there is an issue I want to fix it so I appreciate the detailed reports I was able to work off of :) I will try to add the crop feature like that soon but will be a few before I can work on this again.

Normally cloudflare just introduces the two computers, with the fallback it remains the messenger for websocket messages which are end to end encrypted and still doesn't transmit any sensitive data like your websocket password.

One thing to mention for yourself or anyone else reading, if you're like this and enjoy using StreamAssistant please rate it 5 stars on the forums here :)
 
Hello, I have 2 questions :
  • Would it be possible to add a setting to disable certain functionality such as the video preview to gain performances on the hosting OBS? Even though I guess it only uses screenshot taken each second or so, it'd be nice to be able to customize this (framerate, disable entirely)
  • Would it be possible to add trusted users, so we don't have to accept the connection everytime? Either via direct IP or a password (I think the websocket one would be nice)
Thanks for your answer!
 
Hello @Satoshi, I do not have any plans to add an option to disable the video preview and it is quite performant already.
To add trusted users in a dependable way would likely mean maintaining those records on my end through the streamassistant.app domain which goes against one of my primary objectives which this tool which is it being fully p2p when possible and no data living anywhere besides local to the users.
 
Back
Top