
Twilio releases open source video conferencing apps for iOS, Android and web - devinrader
https://www.twilio.com/blog/open-source-video-apps-reactjs-ios-android
======
crabasa
_Disclaimer: I used to work at Twilio_

I'm seeing discussion below about fully open-source solutions (Jitsi Meet) vs.
fully proprietary solutions (Zoom). What's interesting about using Twilio is
that it is a _programmable_ solution.

Case in point: I am building a webpage where people can log-in to a virtual
office, so that people working from home don't feel so lonely. I have certain
requirements, such as:

    
    
        - All audio is muted
        - Participants are arranged in a grid
        - Room is persistent (no need for an "owner")
    

Accomplishing this with either Jitsi or Zoom may have been impossible, because
while they are _configurable_ they are not _programmable_.

Now, Twilio isn't the only Video platform on the market (see TokBox, etc), but
I think comparing this to Jitsi/Zoom/Hangouts is like comparing apples to
oranges.

~~~
crabasa
Here is a link to my fork of the repo shared by the OP:

[https://github.com/crtr0/twilio-video-app-
react](https://github.com/crtr0/twilio-video-app-react)

You can try it out at:

[https://video-app-7758-dev.twil.io?passcode=7020447758](https://video-
app-7758-dev.twil.io?passcode=7020447758)

Just enter your name and the room "HN".

~~~
gregsadetsky
On mobile Safari, the mic & camera permissions pop up, but after clicking Join
Room the page goes blank. Any ideas? It works perfectly using Desktop Chrome.

~~~
Jemm
Same on iPad Pro ios13

------
jka
These are open source clients for a proprietary backend, which are no doubt
still useful in a number of circumstances.

If you are comfortable with a more proprietary stack, then Google Hangouts /
Zoom / others are likely to provide a better supported user experience.

If you would prefer a more libre end-to-end experience then Jitsi Meet may be
an attractive alternative.

~~~
spectramax
Zoom is owned indirectly by the Chinese government, not sure what that means
to your company but FYI.

~~~
larrywright
They’re a public company as of March 2019, so unless the Chinese government is
somehow a majority shareholder, I believe you’re mistaken.

------
PaybackTony
Don't really like the misleading projects Twilio releases as "open source".
They are basically releasing demo code of how to use their commercial, paid
for backend service and while that demo code is open-source, I don't think
that's what people are thinking of when they read that title. I think most
people think they are releasing some kind of self-hosted solution. At least
that's what I think when I read this.

With that said, Twilio has a very easy to use API and if usage cost isn't as
big of a deal to you as development time is, it's an easy decision to utilize
what they offer.

~~~
balls187
Knowing twilio's business model, I knew exactly what was meant by the title.

------
kwindla
Our company, Daily.co (YC W16), makes APIs that compete with these new Twilio
offerings. A couple of lines of js code embeds a video call in a web page:

    
    
      https://docs.daily.co/docs
    

Our focus has been on doing as much as possible to make video calls reliable,
and helping developers get started with video as quickly as possible.

Twilio is a great company. Jitsi is a great open source project. As always,
there's room for different approaches to solving hard problems, for different
customers. We've found that the biggest pain point for lots of developers are
that 1) building out a full video call UI is non-trivial, and 2) handling all
the failure cases possible in real-world calls is non-trivial. So we try to
solve those two problems.

I love this stuff (this is the third time I've built a video tech stack, in my
career), and I'm happy to answer any questions about WebRTC, building live
video into applications, and give you (relatively) non-biased advice about
tools/approaches for your particular goals.

~~~
newtoday
How does Daily.co do ICE, STUN/TURN? Do you use a third party service, host
coturn yourself, something else?

I'm currently a Twilio customer using their Network Traversal Service.

------
saghul
At least on iOS the heavy lifting seems to be done by the TwilioVideo library:
[https://github.com/twilio/twilio-video-app-
ios/blob/c9d5410b...](https://github.com/twilio/twilio-video-app-
ios/blob/c9d5410b7cd7d3dc7432feeafcec3c451e4f7a53/Podfile#L11) ... which is
not Open Source:
[https://cocoapods.org/pods/TwilioVideo](https://cocoapods.org/pods/TwilioVideo)

------
hardwaresofton
Open source client for a closed source backend.

Businesses aren't charities but man does this feel cynical to anyone else?
Twilio is not a bad investment for any business, in my opinon -- they make
very complicated things very simple and offer a lot of value. This feels like
OSS-washing though, and I feel like I'm a mark -- "use our awesome open source
stuff so we can pull you into our ecosystem".

~~~
freepor
The advantage of the open source here is so you can configure the endpoints
exactly as you wish. Not vendor independence etc.

------
throwaway011612
@Carter

Does Twilio still use Zoom for internal voice & video employee collaboration?

I worked there for a few years and left Twilio not long ago. I always thought
it was super strange how Twilio doesn’t dog food any of its own service.

Some examples: \- Twilio Flex isn’t used for support desk \- Slack is
massively used at Twilio vs Twilio Chat \- Zoom is massively used vs Twilio
video \- employees don’t text yet SMS is your core business

And more

~~~
mmahemoff
I felt the same way about Slack's CEO saying they company is using Zoom for
interviews
[https://twitter.com/stewart/status/1237815465126354945](https://twitter.com/stewart/status/1237815465126354945)

------
aaronlifshin
If this is backed by Twilio cloud webRTC API, I believe that does not support
more that 50 people at a time watching the video

~~~
ptsneves
I have been using Janus[1] signaling server to broadcast live drone video on
my website and it has worked flawlessly with multiple expectators. The drone
video is captured through a Janus webrtc library in the Android phone
connected to the drone.[3]

With a TURN server from Xirsys[2], I have had live drone video recording as
well as barely a second of latency. I disabled peer2peer video because I do
not want a 4G connection to broadcast to multiple viewers.

The reason I have not used twilio(even though I evaluated its offerings) is
that they do not provide on premises hosting and my potential customers are
not normally interested in not having on premises hosting.

[1] [https://janus.conf.meetecho.com/](https://janus.conf.meetecho.com/) [2]
[https://xirsys.com](https://xirsys.com) [3]
[https://github.com/ptsneves/janus-gateway-
android](https://github.com/ptsneves/janus-gateway-android)

~~~
telesilla
I was asked today to help on exactly this for an artistic project, do you have
a write-up to share? I'm also a fan of Xirsys And Janus, good to see it
plugged.

~~~
ptsneves
Hello telesilla, I do not have write up as this is part of a project I am
hoping to commercially release. If you have specific questions let me know.

The basic thing is that if you are doing a basic demo without business logic
you can easily pick up a Janus video room demo and set Xirsys as your ice
server in the Java script file. After that, start front end work, to get to
your demo goal. Of course if you know Janus you probably are already doing
this. :)

For the android part, if any, you can pick the library that i quoted before.

My biggest difficulty, that almost made me give up was realizing that my
reverse proxy internet facing machine needed to have the ports open necessary
for webrtc. Otherwise you get extremely weird results in the ice candidate
gathering stage, or sessions that take very long to start. Even weirder, the
turn server does not work without it, which my limited understanding at the
time did not even consider it. It may sound obvious in retrospective but the
debugging results were just misleading.

With that problem solved i just programmed a small library in C# that sets up
private video rooms per user group. Also programmed a system that gathers the
mjr files after a live video session and makes it available in a gallery as
webm files(tried mp4 for ios safari but never got them working)

The system design is glued together by a docker compose file which has
containers for: asp.net core server, Janus, mjr transcoder, ngingx reverse
proxy, and mysql database.

Sorry if this is not much detail, but I am a one man show and I dedicate the
time apart from my family to this project and day time job, and I am really
trying to be laser focused to release it commercially. Also, I work in an
Eastern European country so my resources to hire out help, are more
constrained. When I have a minimal viable product I will try to get it to the
Show HN and hopefully work on the growth and scaling.

~~~
telesilla
Wow thanks for the comprehensive reply, I wasn't expecting that! I can't wait
to see more from you. Best of luck - it seems a good time to be working with
drones.

------
iamAtom
I am gonna open source my video conferencing application which will redirect
you to zoom.us

------
bilbo0s
Meh.

With Jitsi I can self-host. In my view, that makes Jitsi better from a privacy
perspective.

~~~
manishsharan
The problem with Jitsi is that the video streams have to pass through the
videobridge. That means paying for ingress and egress network cost if you are
on AWS .

~~~
RedShift1
It detects if two participants are in the same network and then uses p2p.

------
cdbattags
Ooooo, Jitsi has some competition?

~~~
rahimnathwani
Except with Jitsi you can self-host the entire back-end. These apps seem to
depend on Twilio's infrastructure, as the READMEs mention needing a backend to
generate Twilio tokens.

~~~
Someone
But they are open source (Apache licensed), so that can be changed.

Potentially, one could make a fork that can use either one’s own backend or
Twillio’s, while Twillio’s own can only use Twillio’s.

~~~
rahimnathwani
Is it trivial to write a backend that will replace the functionality in
Twilio's backend?

~~~
ethanwillis
It may not be entirely trivial but if enough people are willing to contribute
it could be trivial on an individual basis.

I'd be interested in giving it a go. If anyone else is, just leave a comment
on this issue. [https://github.com/ethanwillis/oss-twilio-video-
backend/issu...](https://github.com/ethanwillis/oss-twilio-video-
backend/issues/1)

~~~
rahimnathwani
Right, but you're talking about starting an open source project whose
complexity is similar to that of Jitsi's backend. It may be hard to attract
contributors until there's a proof of concept.

~~~
ethanwillis
That's fine. What I'm really looking for is just an expression of intent to
contribute once a plan is in place. I don't mind taking the first whack at a
proof of concept.

However if people do want to contribute early on I'd welcome that :)

------
nwsm
Can someone explain why we need a Twilio backend to do WebRTC?

I've never done it so I don't know, but I thought the whole point was that
it's peer-to-peer. I know there is some kind of "discovery" layer required,
but this doesn't seem complex enough to warrant a SaaS.

~~~
fersho311
Let me try to take a stab at this:

If you have video chat with 10 people, then you have peer connections with 10
people. Each person will have connections with 10 other people, resulting in
10x10=100 connections.

With a streaming server, you would just need 1 connection to a server that
would give you 10 media streams.

With a streaming server, you can also do recording and stuff.

~~~
nwsm
I see. I didn't realize the Twilio backend did more than a simple p2p webrtc
system.

------
walterbell
Wire provides:

    
    
      - OSS client and server
      - E2E encryption
      - migration to IETF MLS protocol for E2EE messaging
    

MLS is a stepping stone to moving away from siloed messengers to interoperable
services.

------
Uhhrrr
RTC-based: [https://github.com/twilio-labs/plugin-
rtc](https://github.com/twilio-labs/plugin-rtc)

------
saagarjha
Is the iPhone screenshot accurate? Because they way it looks right now, with
the border around the entire screen, is pretty awful :(

------
manishsharan
has anyone tries aws kinesis webstream ? i think the downside is that it is
limited to 5 participants in a video chat . But the upside is that it does use
STUN and TURN and the video data packets are not billable by AWS.

------
nanna
Shoot me for splitting hairs, but I think Twilio mean they build open source
video apps, not that they "built" them.

~~~
libria
> We built open source video apps so you don't have to

^^^ sounds like they did a one-off.

> We build open source video apps so you don't have to

^^^ sounds like they're now in the business of doing this for steady revenue,
which I don't think is true.

------
jessaustin
These are interesting accusations to come from a throwaway account.

~~~
ct520
Not sure what throw away account has to do with it. Interesting accusations
regardless.

