7 ms·
WebRTC Samples
- kristianpaul 6y agoThere is also https://janus.conf.meetecho.com/screensharingtest.html https://janus.conf.meetecho.com/screensharingtest.html just to have more resources to check
- ChicagoBoy11 6y agoFor those in the know, if I'm running something on my own that may only at any given moment see in the few hundreds of people using it, what's the best approach in terms of server-side infrastructure to support WebRTC apps? Is there any SaaS offering that has a meaningful product?
- Sean-Der 6y agoA few hundred people should be fine! For fun I made https://github.com/pion/rtsp-bench https://github.com/pion/rtsp-bench and was doing 14k people before I saw my first hiccup. You just need watch CPU Usage and Network attributes (loss, congestion etc...) Getting this right will take a little bit of WebRTC knowledge. Happy to answer any specific questions :) There are also lots of hosted options as well! Real world WebRTC has a few different parts though, https://bloggeek.me/webrtc-server/ https://bloggeek.me/webrtc-server/ is a good intro I think.
- ChicagoBoy11 6y agoThank you for these resources -- I'll check them out!
- ajb413 6y agoYou can use PubNub for reliable signaling and XirSys for TURN. I made an OS example of this a while back. https://github.com/ajb413/pubnub-js-webrtc https://github.com/ajb413/pubnub-js-webrtc
- endlessvoid94 6y agoI've been using the Twilio Video product and have been pretty happy with it. They do the orchestration on the server so that you can have all of the users connect via WebRTC. It's very easy to use.
- cpncrunch 6y agoWe use Janus Gateway, and it works really well: https://github.com/meetecho/janus-gateway https://github.com/meetecho/janus-gateway We have upwards of 100 simultaneous users on it every day, and at the moment it seems to be 100% reliable.
- fenesiistvan 6y agoMizu gateway also does the job: https://www.mizu-voip.com/Software/WebRTCtoSIP.aspx https://www.mizu-voip.com/Software/WebRTCtoSIP.aspx It has a nice config wizard and built-in STUN and TURN server.
- bisRepetita 6y agoUsing Xirsys TURN servers happily (be careful some of their "getting started" examples are wrong). I tried to use Twilio, but failed, they did not recognize my mobile phone number. Even after begging 3 times to become their customer and paying for it, I could not succeed.
- veb 6y agoI had the same issue with Twilio, they couldn't send anything to my number because of the prefix. After many emails, they finally got it working - then two weeks later it was broken again and I simply gave up.
- istillwritecode 6y agoWe have been using Twilio and we're sending them hundreds of dollars a month. I'm about to drop it because of their 2FA requirement. Either they accept customers that know how to manage passwords or they don't. I don't give my phone number to ANYONE any more.
- Nickste 6y agoCheck out Vonage Video: https://www.vonage.com/communications-apis/video/ https://www.vonage.com/communications-apis/video/ Their tech is based on a company they acquired, Tokbox. I used Tokbox’s services for large-scale real-time streaming; but their pricing is friendly for small-scale usage too. Solid service, with all the helpful extras you’ll likely need (recording videos, handling differences in browsers, etc.).
- zurn 6y agoDepends a lot on what kind of app it is. There are orders of magnitude differences in requirements between apps that use data channels for relatively meager amounts of data (eg multiplayer games), or audio, or video, or video with server side realtime per participant transcoding etc.
- Sean-Der 6y agoThe term 'WebRTC' is overloaded, it can mean the protocol or the API. These samples only cover in the browser. This repo is also kind of dead https://github.com/webrtc/samples/issues/1350 https://github.com/webrtc/samples/issues/1350 If you are interested in WebRTC out of the browser there are lots of implementations and servers! I am also working on a book 'WebRTC for the Curious'[0] that tries to explain the protocol and the history behind it. [0] https://webrtcforthecurious.com/ https://webrtcforthecurious.com/
- suyash 6y agoShare GitHub repo with latest code, love to play around
- Sean-Der 6y agoThe project I work on is https://github.com/pion/webrtc https://github.com/pion/webrtc. https://github.com/pion/awesome-pion https://github.com/pion/awesome-pion is a list of interesting projects that use it, my favorite thing to share :) For other WebRTC implementations check out. * https://github.com/aiortc/aiortc https://github.com/aiortc/aiortc * https://github.com/shinyoshiaki/werift-webrtc https://github.com/shinyoshiaki/werift-webrtc * https://github.com/rawrtc/rawrtc https://github.com/rawrtc/rawrtc * https://gstreamer.freedesktop.org/documentation/webrtc/index.html https://gstreamer.freedesktop.org/documentation/webrtc/index... There is also https://github.com/node-webrtc/node-webrtc https://github.com/node-webrtc/node-webrtc this takes Google's WebRTC implementation (used in Chromium) and throws a node.js API on top of it!
- gxqoz 6y agoThis blog post from 2018 from Discord indicated that the browser implementation of WebRTC wasn't as good: https://blog.discordapp.com/how-discord-handles-two-and-half-million-concurrent-voice-users-using-webrtc-ce01c3187429?gi=70398163d427 https://blog.discordapp.com/how-discord-handles-two-and-half... Is this still the case? Would you still hypothetically see better audio performance of something like Discord in a standalone app?
- 6y ago
- suyash 6y agoIf you want to build a multiple session (multiple people) connecting to a website with their camera and audio on, would you use WebRTC or WebSocket + getUserMedia ? Why ?
- Sean-Der 6y agoWebRTC is going to be better for most users (IMO). WebRTC provides congestion control so video stays real-time. It works pretty well with very little effort. Some companies have decided to roll their own, https://webrtchacks.com/zoom-avoids-using-webrtc/ https://webrtchacks.com/zoom-avoids-using-webrtc/ is a cool read.
- suyash 6y agohow about if you want to integrate real time chat, can webRTC data channel accomplish that or one needs WebSockets for that?
- moron4hire 6y agoGo do your own homework
- rizpanjwani 6y agosuggest you read this (on the frontpage today): https://nedbatchelder.com//blog/202009/how_to_be_helpful_online.html https://nedbatchelder.com//blog/202009/how_to_be_helpful_onl...
- gitua 6y agoOne to one video/audio is fine and securely end-to-end encrypted with vanilla WebRTC. But for group conversation this won't scale because with p2p (mesh network) WebRTC, each client has to encode and decode for all users (which might be too much processing to do for the client). For that reason many group video conf apps use a centralized router when there are several people. Privacy then becomes an issue, and all group video conf such as Zoom, Skype, etc. are basically unencrypted (not end-to-end) and they can see & log everything (your face, your voice, chat, files exchanged, etc.) because the centralised router routes non-encrypted streams. Jitsi is going to be an exception by adding a layer of encryption using insertable streams (https://jitsi.org/blog/e2ee/ https://jitsi.org/blog/e2ee/). So in summary I'd say : - for 1-to-1 or a few more people go with normal p2p WebRTC. - for multiple people session, host your own Jitsi server (or rent one from 8x8 or other providers) & use the jitsi SDK/API to integrate it in your app
- amelius 6y agoAny reason why this requires both Python and Nodejs?
- paulirish 6y agoMy favorite sample by far: https://webrtc.github.io/samples/src/content/devices/input-output/ https://webrtc.github.io/samples/src/content/devices/input-o... I routinely hit it to validate my camera/audio options and confirm the audio is sounding good.
- echeese 6y agoIf I want to add WebRTC capabilities to an existing server, what's the simplest way of doing that? This is for a game, all I need is an unreliable RTCDataChannel
- okay1000 6y agoI used simple-peer [1] for sending coordinates between clients in a canvas painting game [2]. [1] https://github.com/feross/simple-peer https://github.com/feross/simple-peer [2] https://github.com/justo-rivera/dibujio-client https://github.com/justo-rivera/dibujio-client Ps. Be sure to use a turn server besides a stun one, that was a big headache to get it working on mobile data
- jtsiskin 6y agoAwesome!! I’m glad people are using the data channel for games; I always see people say “well we could have better networking but browsers only support TCP sockets” but that is not the case. The most complicated bit is you will need TURN servers for some symmetric NAT cases; either host your own or use something like https://xirsys.com/ https://xirsys.com/
- Sean-Der 6y agoWhat language is the server in? You just need a WebRTC implementation and you should be good to go!