Meteor and Video Chat

How can we build video chat with Meteor is there any recommended package for that

Opentok.js is a simple webrtc platform which enables videochat easily.

1 Like

@goatic: is opentok a free library or is it bound to the paid service of tokbox? I could not find a public repo on github…

I believe OpenTok is free if done Peer to Peer, and if you want to broadcast from one to many users it charges by usage.

1 Like

Check out https://atmospherejs.com/fds/webrtc

signaling is what you can pay for. The client library is free. You can get a 30 day free trial by creating a new account.

AFAIK webrtc is always peer to peer. It’s the connection setup “handshake” between the peers that requires a signaling server. And you can make that yourself or pay :smile:

I’ve also fiddled with simplewebrtc@github but opentok was nice as I have no knowledge of setting up signaling servers that can handle NAT-traversal and the more advanced stuff. If anyone does and builds a nice repo for it, let me know. Although hosting it would probably cost the same (if not more) as subscribing to tokbox :wink:

I’m also using OpenTok at the moment. But I don’t really like their pricing, as it is based on minutes, even if you run a peer-to-peer connection. I liked the Xirsys pricing model much better, unfortunately they don’t have a Cordova integration. However, OpenTok’s Cordova implementation is also unmaintained and quite weak.

do you know how often STUN server fail?

Most WebRTC calls successfully make a connection using STUN: 86%, according to webrtcstats.com, though this can be less for calls between peers behind firewalls and complex NAT configurations.
Source: http://www.html5rocks.com/en/tutorials/webrtc/infrastructure

waldgeist mentioned http://xirsys.com/ as an alternative that seems to be cheaper.

I read that the use of TURN is relaying data via a server, so it is not peer to peer anymore.

Do you have any stats how the clients are connecting? Peer to peer via STUN or do they use the TURN servers?
Xirsys seems to be a good option for the TURN server. Much cheaper than tokbox.

I don’t know much about tokbox, but after looking over their current offers, I’m not going to consider them again… Could be cool to make a setup that relays the connection across the meteor backend, if that is even possible?

Edit: without looking deeper into the repo, here’s something: https://github.com/foxdog-studios/meteor-webrtc

the repo you mentioned is using “signalling” not in the WebRTC way. I think what they say is the communication via websockets. For the STUN server they use google.

I like this package for websocket streams https://github.com/YuukanOO/streamy
Here is also an example for an implementation: https://github.com/srtucker22/quasar

any experience with: http://skylink.io/ ?

Which is the advantage of using OpenTok apart form using their signaling servers on free plan?

I am currently working on a Voice chat (without video) and I am still considering to use RTMP over flash for the unique reason of desktop browser support. Also, all production video/voice chat sites are still working using RTMP (flash) or HLS (small devices without flash) using wowza or its own server like nginx.

You may want to look at Twillio video beta in comparisons to opentok. It doesn’t have meteor wrapper yet, but their costs are one tenth of open-tok

I think they are not supporting after new meteor versions came.

It is looking simple solution, but unfortunately not usable.

I hope they are going to rebuild.

I think if you poke around the repo they mention a fix, or it might be in a different branch

You should also take a look if such packages support multiple instances. So if you scale your Meteor app it is possible that this package won’t work anymore. The best way for WebRTC signaling is to set up a seperately Socket.io server.