Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Go to create a WebRTC client for each portal #69

Open
nurdism opened this issue Jan 29, 2020 · 2 comments
Open

Use Go to create a WebRTC client for each portal #69

nurdism opened this issue Jan 29, 2020 · 2 comments
Labels
enhancement New feature or request

Comments

@nurdism
Copy link

nurdism commented Jan 29, 2020

I was planing on making something similar to cryb but I decided to go for a stateless/self hosted route. Was too much work for me xD But I had some ideas that I'd like to share

https://drive.google.com/file/d/1xyXhs1iCisyjYQrRR2IP6HmXbapESPLs/view is a flow chart of how I wanted the backend streaming of the containers to work, I did some work in regards to that with https://github.com/nurdism/neko using gstreamer and go I was able to broadcast the webrtc stream using https://github.com/pion/webrtc It might need some reworking for your current system. But I wanted to share it. With neko I've been able to hold a 720p/30fps stream with sub 150ms latency. You can use cgo to handle the user i/o and get close to no overhead.

@Soliel
Copy link
Contributor

Soliel commented Jan 29, 2020

Heya Nurdism,

We're actually working on a WebRTC implementation using SFU servers, like Janus. A webRTC client for each portal sounds like alot of additional overhead and could be difficult to peer with(I haven't tried it in an actual network though so it's worth considering). The Solcode Fork has a semi-stable Janus implementation. Janus is showing some issues with current setups so we're considering moving to MediaSoup.

I really like Go, though, so we'll keep it in consideration as a candidate.

@JeDaYoshi
Copy link
Member

Hey Nurdism. Nice to see you commenting here, have seen your project before. Congrats for your work, now that I have the opportunity to tell it to you.

As @Soliel mentions, we are already working on implementing WebRTC. As she didn't comment where it is, and you don't know, it is on the SolCryb organisation's repositories as of now, in the Janus-related branch. They will be moved to here, eventually, but first there are things to do and see if we are going to stick with Janus or move to MediaSoup or something else. It uses gstreamer actually (the implementation on this repos are using ffmpeg).

Using Go in a future will be kept in consideration as mentioned, either way. It's something that needs to be discussed internally (and actually, there were mentions of such before).

@JeDaYoshi JeDaYoshi added the enhancement New feature or request label Jan 29, 2020
@JeDaYoshi JeDaYoshi changed the title [Suggestion/idea] use go to create a webrtc client for each portal Use Go to create a WebRTC client for each portal Jan 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants