# (New) Nextcloud Talk Backend Alternative

**URL:** <https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348>\
**Category:** 💬 Talk (spreed)\
**Created:** [April 10, 2020, 4:43pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348 "2020-04-10T16:43:32Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![powerpaul](https://help.nextcloud.com/letter_avatar/powerpaul/32/6_22734026db12803ebb3e059622ac3534.png) [@powerpaul](https://help.nextcloud.com/u/powerpaul)\
**Post date:** [April 10, 2020, 4:43pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/1 "2020-04-10T16:43:32Z")

</div>

Since Nextcloud Talk was not even usable with 3 participants in my case, I decided to try and implement a backend based on NodeJS which should be compatible to Nextcloud Talk. As the SFU I currently focus on Janus (since I believe Nextcloud is using it too) but it should be possible to write connectors to others as well.

I seem to be on a good track and the first prototype mostly works, but it is still work in progress as it is difficult to guess the right responses from the backend. You can find the source and track the progress here:

[https://gitlab.com/powerpaul17/nc\_talk\_backend](https://gitlab.com/powerpaul17/nc_talk_backend)

Any help is very appreciated!

**This is not finished and still not working very well. It is supposed to be a proof-of-concept and not (yet) stable enough to be used in production environments!**

---

<div class="post-metadata">

**Author:** ![anon75456558](https://help.nextcloud.com/letter_avatar/anon75456558/32/6_22734026db12803ebb3e059622ac3534.png) [@anon75456558](https://help.nextcloud.com/u/anon75456558)\
**Post date:** [April 10, 2020, 5:05pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/2 "2020-04-10T17:05:09Z")

</div>

Wow, great work! This will certainly be of interest to others on this forum! What kind of help do you need?

> [@As of 3/20/2020, how usable is Nextcloud Talk for a 10+ person videoconference?](https://help.nextcloud.com/t/as-of-3-20-2020-how-usable-is-nextcloud-talk-for-a-10-person-videoconference/74597):
>
> Asking as people are turning to video conferencing due to Covid 19 shuttering homes, etc. How easy is it for a home admin to setup a 10+ person video conference? I do not see people discussing Talk… just Jitsi, Zoom, Skype, Mumble, Hangouts… thoughts and setup suggestions appreciated! I’ve noticed there is not yet much documentation regarding this, so perhaps we can change that!

> [@Videoconference performance](https://help.nextcloud.com/t/videoconference-performance/74137/4):
>
> We tried just yesterday to use Talk, but it failed miserably with only 5 participants and it does not support any other signaling server except the paid one from Nextcloud GmbH. IMO it is unusable in this setting if you are not willing to pay for the “high performance backend”. Talk is based on [Spreed.me](http://Spreed.me) (AFAIK) and spreed uses “WebRTC & libde265 H.265/HEVC” I did set up a jitsi docker instead and we had a conference with a dozen participants audio only and one shared screen. Did perform well …

---

<div class="post-metadata">

**Author:** ![menelic](https://help.nextcloud.com/user_avatar/help.nextcloud.com/menelic/32/23555_2.png) [@menelic](https://help.nextcloud.com/u/menelic)\
**Post date:** [April 10, 2020, 5:31pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/3 "2020-04-10T17:31:15Z")

</div>

This is great! Many institutions really need an alternative to the costly High Performance Backend! Would it be possible for you to put out a bounty or parcel the work that still needs to be done in such a way that people can jump aboard to speed it up? I don’t want to be misunderstood: I applaud an appreciate the volunteer spirit behind many key components of open source, incl Nextcloud - but that does not mean that people should not get paid. Getting a reliable open source alternative to the HPB is something that many would be ready to support financially, especially if bounties speed up development and help to establish clear timelines and capabilities…

Also - this thread should be called _New_ Nextcloud Talk Backend to aid discoverability…

---

<div class="post-metadata">

**Author:** ![powerpaul](https://help.nextcloud.com/letter_avatar/powerpaul/32/6_22734026db12803ebb3e059622ac3534.png) [@powerpaul](https://help.nextcloud.com/u/powerpaul)\
**Post date:** [April 10, 2020, 5:32pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/4 "2020-04-10T17:32:25Z")

</div>

Thanks, but don’t get too excited yet, it’s just an attempt but I have no idea if it wil ever work out as expected.

Well, the most difficult thing is the correct interpretation of the API as I can only guess what it should mean and what the HPB is probably responding…

---

<div class="post-metadata">

**Author:** ![powerpaul](https://help.nextcloud.com/letter_avatar/powerpaul/32/6_22734026db12803ebb3e059622ac3534.png) [@powerpaul](https://help.nextcloud.com/u/powerpaul)\
**Post date:** [April 10, 2020, 5:34pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/5 "2020-04-10T17:34:24Z")

</div>

It is still in very early stages of development, the code has to be refactored probably a lot more in the future. I just wanted to publish it so that maybe someone else can also have a look at it and point out things. I thought it is better to do it now, than never… 😉

I guess in terms of the signaling server it’s really not magic regarding the technology, just a websocket connection sending some messages around. The harder part would be the handling of the streams…

---

<div class="post-metadata">

**Author:** ![frank](https://help.nextcloud.com/user_avatar/help.nextcloud.com/frank/32/132_2.png) [@frank](https://help.nextcloud.com/u/frank)\
**Post date:** [April 11, 2020, 5:52pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/6 "2020-04-11T17:52:59Z")

</div>

Wow. I want to say, as speaker for Nextcloud, that this is super cool. Let me know what help you need.

---

<div class="post-metadata">

**Author:** ![menelic](https://help.nextcloud.com/user_avatar/help.nextcloud.com/menelic/32/23555_2.png) [@menelic](https://help.nextcloud.com/u/menelic)\
**Post date:** [April 11, 2020, 10:04pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/7 "2020-04-11T22:04:20Z")

</div>

@powerpaul It’s great that the founder of nextcloud (and owncloud) @frank Karlitschek is offering help! Here is hoping you ll take him up on the offer. Given the current situation, it would be great to see Nextcloud suport both this effort as well as Big Blue Button Integration (important, because more usefull than “just” Nextcloud talk for schools and universities because of online classroom features). See details about BBB Nxtclud talk, where this Talk Backend Alternative is alos referenced here

> [@Nextcloud App for BigBlueButton integration](https://help.nextcloud.com/t/nextcloud-app-for-bigbluebutton-integration/74910/31):
>
> Most BBB integrations via their API is to load a new tab, redirect current tab or load the client in an iframe. What we did is quite conventional. In fact, the API is all about creating a meeting then loading the client. Jitsi’s api explicitly mentions iframe parent in their JS API. Frankly, I don’t see the need for NC’s internal (or paid) signalling for webrtc (except maybe for the file-side chat which has a simple camera-only client – BBB does not have that yet). Another exception is for low…

---

<div class="post-metadata">

**Author:** ![pieter](https://help.nextcloud.com/letter_avatar/pieter/32/6_22734026db12803ebb3e059622ac3534.png) [@pieter](https://help.nextcloud.com/u/pieter)\
**Post date:** [April 12, 2020, 11:20am UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/8 "2020-04-12T11:20:38Z")

</div>

I am very interested… is there any documentation on how to install and implement (for noobs like me) with and without docker?

---

<div class="post-metadata">

**Author:** ![anon75456558](https://help.nextcloud.com/letter_avatar/anon75456558/32/6_22734026db12803ebb3e059622ac3534.png) [@anon75456558](https://help.nextcloud.com/u/anon75456558)\
**Post date:** [April 12, 2020, 3:35pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/9 "2020-04-12T15:35:27Z")

</div>

> **…a proof-of-concept and not (yet) stable enough to be used in production environments!**

@pieter see the first post to read about progress on Gitlab. Best for noobs to leave them alone.

---

<div class="post-metadata">

**Author:** ![pieter](https://help.nextcloud.com/letter_avatar/pieter/32/6_22734026db12803ebb3e059622ac3534.png) [@pieter](https://help.nextcloud.com/u/pieter)\
**Post date:** [April 12, 2020, 7:04pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/10 "2020-04-12T19:04:39Z")

</div>

you can say but to get past the "noob"status and also quoting from what you quoted yourself:

> Asking as people are turning to video conferencing due to Covid 19 shuttering homes, etc. How easy is it for a home admin to setup a 10+ person video conference? I do not see people discussing Talk… just Jitsi, Zoom, Skype, Mumble, Hangouts… thoughts and setup suggestions appreciated! I’ve noticed there is not yet much documentation regarding this, so perhaps we can change that!

At some point we will need some guides and how toos… the sooner the better…

---

<div class="post-metadata">

**Author:** ![powerpaul](https://help.nextcloud.com/letter_avatar/powerpaul/32/6_22734026db12803ebb3e059622ac3534.png) [@powerpaul](https://help.nextcloud.com/u/powerpaul)\
**Post date:** [April 12, 2020, 8:04pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/11 "2020-04-12T20:04:55Z")

</div>

While I agree that documentation is important there is just no use for it now, because there is no point in installing it and (possibly) running into a lot of other errors/issues which will then be reported back to me while I’m trying to figure them out anyway at the moment… so please, be patient, there will be installation/usage documentation and a proper docker file when it’s ready…

---

<div class="post-metadata">

**Author:** ![sourvader](https://help.nextcloud.com/letter_avatar/sourvader/32/6_22734026db12803ebb3e059622ac3534.png) [@sourvader](https://help.nextcloud.com/u/sourvader)\
**Post date:** [April 13, 2020, 6:23pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/12 "2020-04-13T18:23:33Z")

</div>

Would be a huge win as everybody rushes to use video conferencing.

I posted my [results here](https://help.nextcloud.com/t/nc-talk-poor-audio-video-quality-with-more-than-two-users/77689) and they sound similar, which is that Talk doesn’t work for 3+ users, regardless of setting up coTurn.

If you can get something to where it is even manageable at ~5 users I would say this is a huge success. Should have no impact on the business of selling RTC signaling services at all, since basically no customers who only need \<10 slots can afford it anyway.

---

<div class="post-metadata">

**Author:** ![alfred](https://help.nextcloud.com/letter_avatar/alfred/32/6_22734026db12803ebb3e059622ac3534.png) [@alfred](https://help.nextcloud.com/u/alfred)\
**Post date:** [April 14, 2020, 1:30pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/13 "2020-04-14T13:30:33Z")

</div>

@powerpaul Maybe @nickvergessen can help you if you need something specific for your signalling server implementation?

---

<div class="post-metadata">

**Author:** ![markc](https://help.nextcloud.com/user_avatar/help.nextcloud.com/markc/32/131_2.png) [@markc](https://help.nextcloud.com/u/markc)\
**Post date:** [April 16, 2020, 6:14am UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/14 "2020-04-16T06:14:56Z")

</div>

Very interested in this. I’ve been looking at alternatives and Jitsi seems the best but I have no interest in deploying JAVA apps. Can anyone elaborate just where the bottleneck is with Spreed/Talk? If it’s the SFU (Janus) then reusing that will bump into the same brick wall. If a MCU is needed to scale up to 9+ users then that requires large/huge backend processing and I guess that’s how Zoom can support up to 25 users in the free version. If it’s the PHP code that is a problem and moving to Nodejs can help then I’d rather put effort to a ReactPHP/Rachet server side backend that can run anywhere PHP7 is installed rather than require Node.

---

<div class="post-metadata">

**Author:** ![simonspa](https://help.nextcloud.com/user_avatar/help.nextcloud.com/simonspa/32/46378_2.png) [@simonspa](https://help.nextcloud.com/u/simonspa)\
**Post date:** [April 16, 2020, 7:18am UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/15 "2020-04-16T07:18:36Z")

</div>

As the README of the Spreed/Talk app quite clearly states, the issue scaling beyond a few users without SFU is the bandwidth of the individual user since it needs to send about 1Mbit/s per other participant upstream and receive the same amount:

> Talk works peer to peer, that is, each participant sends an end-to-end encrypted stream to each other participant and receives one stream per other participant. This grows bandwidth usage with the number of participants. […]  
> This means that in a call with 5 participants, each has to send and receive about 4 mbit/sec. Given the asymetric nature of most typical broadband connections, it is sending video that quickly becomes the bottleneck.  
> [spreed/README.md at main · nextcloud/spreed · GitHub](https://github.com/nextcloud/spreed/blob/master/README.md)

No offense, but I’m not sure how useful a “I would do X/Y because I like that technology” is - the fact is that @powerpaul started this great effort to provide something to the community. They chose a certain technology and we should keep this thread for offering help and discussion the technicalities. There are plenty of other threads out there which at length discuss the pros and cons of different WebRTC solutions.

---

<div class="post-metadata">

**Author:** ![powerpaul](https://help.nextcloud.com/letter_avatar/powerpaul/32/6_22734026db12803ebb3e059622ac3534.png) [@powerpaul](https://help.nextcloud.com/u/powerpaul)\
**Post date:** [April 16, 2020, 9:04am UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/16 "2020-04-16T09:04:39Z")

</div>

The bottleneck without a separate backend is on one hand the polling aspect of PHP through a HTTP server, which means all the signaling is always delayed a bit. On the other hand, if I understood correctly, each peer connects to all of the other peers directly (P2P) which puts a lot of stress on the single client in terms of CPU/bandwidth. That’s where the SFU/MCU (whatever you like) comes in.

There is nothing wrong with Janus, it’s just the SFU Nextcloud/Spreed uses for their “HPB”.

I had a quick look at Jitsi but I always feel uncomfortble around Java programs… 😉 Janus is written in C and seems to be set up and working quickly.

As for the backend itself, I’m a Typescript/Javascript programmer so I prefer NodeJS over PHP but I guess that’s just a matter of opinion/taste. Since everything will be packed up in a Docker container it will not matter to the average user anyway.

---

<div class="post-metadata">

**Author:** ![alfred](https://help.nextcloud.com/letter_avatar/alfred/32/6_22734026db12803ebb3e059622ac3534.png) [@alfred](https://help.nextcloud.com/u/alfred)\
**Post date:** [April 16, 2020, 7:22pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/17 "2020-04-16T19:22:32Z")

</div>

Maybe this post on Github by @nickvergessen helps a bit:

> <https://github.com/nextcloud/spreed/issues/3209#issuecomment-606710237>
>
> Is your feature request related to a problem? Please describe.
> Currently Nextcloud Talk as an Open Source project only supports a handful...

---

<div class="post-metadata">

**Author:** ![powerpaul](https://help.nextcloud.com/letter_avatar/powerpaul/32/6_22734026db12803ebb3e059622ac3534.png) [@powerpaul](https://help.nextcloud.com/u/powerpaul)\
**Post date:** [April 17, 2020, 3:18pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/18 "2020-04-17T15:18:48Z")

</div>

Thank you, I already read that before I decided to take on this project. 😉

---

<div class="post-metadata">

**Author:** ![jospoortvliet](https://help.nextcloud.com/user_avatar/help.nextcloud.com/jospoortvliet/32/3_2.png) [@jospoortvliet](https://help.nextcloud.com/u/jospoortvliet)\
**Post date:** [May 19, 2020, 12:13pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/19 "2020-05-19T12:13:32Z")

</div>

Many scaling problems should be solved by 8.0.9, released last week - it adjusts quality based on the nr of participants, among other things. A typical network and hardware setup should handle 5-10 people.

The signalling back-end is now also open source, so you can give that a try.

> **[Talk 9 brings grid view, file editing, open sources Talk back-end – Nextcloud](https://nextcloud.com/blog/open-sourcing-talk-back-end-rc-of-talk-9-brings-lots-of-improvements/)**
>
> Nextcloud is the most deployed on-premises file share and collaboration platform. Access & collaborate across your devices. Your data remains under your control.

---

<div class="post-metadata">

**Author:** ![powerpaul](https://help.nextcloud.com/letter_avatar/powerpaul/32/6_22734026db12803ebb3e059622ac3534.png) [@powerpaul](https://help.nextcloud.com/u/powerpaul)\
**Post date:** [May 21, 2020, 8:25pm UTC](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348/20 "2020-05-21T20:25:25Z")

</div>

Wow, that are great news, I was struggling the last weeks with compatibility for the android app (which does strange things, in my opinion…) but now I can have a look at the “real” implementation to see what’s wrong… 😉

[Next page](https://help.nextcloud.com/t/new-nextcloud-talk-backend-alternative/77348.md?page=2)
