pion / webrtc

Pure Go implementation of the WebRTC API
https://pion.ly
MIT License
13.84k stars 1.66k forks source link

community: related projects #52

Closed backkem closed 4 years ago

backkem commented 6 years ago

This ticket tracks projects related to pions. These can be projects using pions or projects we want to/are contributing WebRTC support to.

Media API

DataChannel

Unknown

Other language implementations

Organize TODO

This issue can be used for tracking. Please use the Golang Slack #pion channel or mailing list for discussions.

Sean-Der commented 6 years ago

https://github.com/vvspacetime/webrtc is/was working on an SFU. It would be great if we could support this or do it ourselves eventually. @vvspacetime still interested in working on this? Anything we can do to support/help, more then happy to share in our README and any dev help you need.

If people can use pion-webrtc to have conferences, and then maybe show them how to do server side video processing would open up cool projects.

ericxtang commented 6 years ago

An open source SFU would be very useful.

Another application would be video broadcasting over the data channel. It can help scale the delivery of a very popular stream to many viewers.

With the combination, an internet talkshow applications can be built fairly easily.

Sean-Der commented 6 years ago

Hi

@ericxtang I would love to build something that would be unique/useful for people! I am going to start a email thread on our mailing list to gauge community interest, it would distract from normal pion-WebRTC development. If it is something innovative I would love to build it.

Also we have DataChannels now! Personally I would love to do anything I can to help livepeer, the whole concept is amazing was completely unaware of this space when pion-WebRTC started. So if there is anything I can do feel free to file issues, also happy to work 1:1 if you want to drop me an email sean @ siobud (dot) com

We are also trying to work with the libp2p team, just cleaning up some of our messes before we reach out to them again.

reklatsmasters commented 6 years ago

I`m working on pure js webrtc datachannel server for nodejs https://github.com/nodertc. STUN, DTLS and SCTP parts are complete. I hope established connection between pions/webrtc and nodertc will be possible sometime in the future.

backkem commented 6 years ago

Thanks for reaching out @reklatsmasters. Your awesome project has been on our radar. We would love to collaborate on a connection example when it becomes possible. We also plan to build a suite of integration tests between pions and other webrtc implementations at some point. A nodertc test would fit in perfectly. Also, feel free to join Slack if you ever want to chat.

notedit commented 5 years ago

I am writing another go webrtc server, https://github.com/notedit/media-server-go, It is a go binding of https://github.com/medooze/media-server. Will try to make this work with pions.

Sean-Der commented 5 years ago

@noahshrader

This is something I would love to see on pion.ly and people can make PRs to update it as they want!

Something like https://github.com/sindresorhus/awesome so we can have README + website

jinleileiking commented 5 years ago

This should be on wiki

backkem commented 5 years ago

The only reason I would keep it here is that you can't tag people on the wiki @jinleileiking.

goodness-from-me commented 5 years ago

I wonder that there is no @gortc in this list. They are basically doing the same thing as you do. https://gortc.io/

ernado commented 5 years ago

I think it is because gortc is considered as competing project.

I'm author of gortc and I'm pretty impressed of the pion progress. I'm still working on gortc time to time, doing it from zero helps to understand better WebRTC stack. Also I think that our projects have slightly different focuses.

Anyway I'm routinely directing users to pion project if they need something that still not implemented in gortc :)

Sean-Der commented 5 years ago

Hey @ernado great to see you :)

Personally I wish we weren't duplicating work! Everyone says having more implementations is better for everyone. However I think it would better if the community could just finish one DTLS implementation and make it great, instead of a handful of half baked versions.

The only big difference for me is how I have seen is how Pion/gortc approach problems. gortc I think is a lot more detail/performance focused (I wish I was better at this stuff). Pion is more 'product focused' I tend to spend time working with people 1:1 and unblocking people so they can build things. This does accumulate tech debt/things don't get built right the first time.

The only thing that motivates me anymore is seeing the kind of impact Pion can have, and hopefully continues making. Completely new products are being launched because using WebRTC is so much easier now. For me Pion doesn't end with WebRTC either, I have lots more I want to build.

ernado commented 5 years ago

Hey @Sean-Der, same to me :)

I thought about it, but duplicating work sometimes helps: we can cross-validate our implementations. Sometimes we are doing almost 1:1, something we are like fasthttp vs net/http.

About DTLS – actually I'm not sure about both approaches, I've tried to modify go TLS implementation to work with DTLS, because they share a lot of code, but there are too much abstractions and cost of failure is high – it is really scary to miss something and make the whole cryptography fail to provide security. Personally I like pion DTLS library more, it has better architecture.

Yes, you are right, sometimes we approach problems differently. Also, my project is kinda educational, I'm learning about go optimizations and the whole stun/turn/ice stuff, it really helps to see this picture as a whole.

I'm really thankful for your effort – actually your project is one of my top reasons why I'm still working on mine. Also thank you for popularising WebRTC in to community.

Sean-Der commented 5 years ago

@ernado

Well if you are ever interested I still would love to merge gortc/Pion. You do amazing work, and I think together we could all make something much better then alone. But validating against each other sounds like a fantastic plan also :)

You should join us in Slack you would love the enthusiasm everyone has for WebRTC. All the interesting conversations/projects being built is really motivating. Also would love to poke your brain on stuff I don't know!

xsbchen commented 4 years ago

I created a repo https://github.com/xsbchen/awesome-pion

Sean-Der commented 4 years ago

@xsbchen wow, that is amazing! I love that. Would you be up for transferring it to the Pion organization?

I think https://github.com/pion/awesome-pion would be perfect! Then we can put the 'Awesome Pion' badge in each repo to tell people to check it out :)

this is fantastic, thank you so much for starting it.

xsbchen commented 4 years ago

@Sean-Der done

Sean-Der commented 4 years ago

@xsbchen fantastic! I pinned it, and will add it to the pion/webrtc repo! I will start adding more stuff tonight :)

Thank you so much for starting this, I think people are really going to find this useful

xsbchen commented 4 years ago

So happy that I can do something help. I hope it is useful for the guy who wants to use Pion

Sean-Der commented 4 years ago

Closing since we have awesome-pion now! I have made sure everything on here has been moved to that repo.

anilthummar commented 4 years ago

Hello Everyone , can we set up personal server with pion webrtc ? i am getting error like below { I/flutter ( 8210): [Ion::Client] DEBUG: leave reject: error =>transport error I/flutter ( 8210): [protoo-client] DEBUG: close() I/flutter ( 8210): [protoo-client] DEBUG: constructor() I/flutter ( 8210): [protoo-client] DEBUG: constructor() [url:https://meet.cynod.live/html5client/join?peer=bb48fd89-045a-47b8-b3bc-9761e21cde9c] }