Video calls in Nextcloud 11 with Spreed

Originally published at: https://nextcloud.com/blog/video-calls-in-nextcloud-11-with-spreed/

Nextcloud 11 introduces experimental video and audio call integration through the Spreed app, designed to be easy to install and nicely integrated. We will walk through the current state and some plans for the future.
spreed-in-action

Introducing the Spreed app

The Spreed app uses the web standard WebRTC for communications. It has been built in PHP to enable easy installation and integration in Nextcloud.

The app is currently experimental, in no small part due to the limitations of the WebRTC technology. Current limitations include:

  • Scalability.
    The peer-to-peer nature of WebRTC means there are limits to scalability. The app is capable of handling about 6 participants in a group video chat but heavily dependent on the network connection quality the participants have. A single server can host quite a number of one-on-one or group calls, they do not create a very heavy load. We are working on adding more capabilities, including ways to increase the number of participants beyond 6 and more using a mediating server in between.
  • Browser support
    Another limit users will encounter is browser quality. Right now, Firefox and Chrome have decent compatibility on most platforms but breakage is still very frequent.
  • Firewalls
    Last but not least, heavily firewalled corporate networks make it hard to create a reliable connection. For this, Spreed supports a so called STUN server, which helps setting up a connection through firewalls.

Right now, the following features are available:

One-to-one calls

You just need to click on one of the users presented on the list: dropdown-list

This will create a private call between you and that user. The other user will receive a notification saying that you have invited him or her to a private call.

notifications

Group calls

There are different ways to create a group call. First you could select one of your Nextcloud groups that appear in the dropdown list.

dropdown-groups

This will immediately create a group call, adding all users from that group as participants of that call, including yourself even if you are not part of that Nextcloud group. All group members will receive a notification saying that you have invited them to a group call.

Another possibility is to add participants to an existing call. This could be done by selecting the “Add person” option in the call menu.
call-menu

Public calls

As the name suggests, these calls are accessible for everyone, even people who are not users on your Nextcloud instance. There are also a few ways to start a public call. You can just select the option “New public room”. This will create a public call where you are the only participant. You can then share the link that is showed with your friends and they will be able to join that call. Also, you can still add Nextcloud users by adding them as described in group calls. You can make any call public by selecting the option “Share link” from the call menu.

inviting-people

If you want a call to no longer be public you just need to click on the “Unshare” icon in the call menu. This will convert that call to a normal group call again, and only the participants of that call from your Nextcloud server will be able to enter.

call-menu-share

How can I use Spreed video calls?

If you would like to test out Spreed, you can go to the built in Nextcloud app store (the plus in the apps menu) where you can find it. You can learn more about the app in our web app store. After adding the app to your Nextcloud instance, everything will just work out of the box. No further installation steps will be needed.

Future plans

This is just the beginning of what we want to achieve with this app. We are working hard to bring new features, make the app more stable and integrate it deeper in Nextcloud. You can get involved in our github repo by reporting bugs or adding code!

So… no need for the separate spreed server now?

Exactly

Post must be at least 20 characters

Colour me impressed :slight_smile: spreed wasn’t exactly a small, simple installation - I guess that explains why the 11 download seemed to take longer than normal over wget!

No, because the spreed app is not shipped :stuck_out_tongue:

2 Likes

I’ll stop talking now then :sweat_smile:

I guess this is the Spreed app which is included, not the Spreed.ME, right? The difference then might be that Spreed doesn’t support screen sharing whereas the Spreed.ME version does.

It’s the next feature on @ivan s todo list :wink:

1 Like

Working very well, great, thanks a lot!

Will text chat be included as well? Especially as the (javascript) Chat app no longer is available?

Then I wonder if there is a way to control bandwidth?

A short question:
I’m using nextcloud on a shared webspace. Would it be possible to use this feature too? How does it exactly works?
Spreed.me using docker right? But how is it working at nextcloud?

Thanks a lot :blush:

Yes we plan to integrate chat, also see the relevant issue at https://github.com/nextcloud/spreed/issues/35

cc the awesome @sualko @LEDfan of the Chat app. :slight_smile:

1 Like

Great, thanks! That’s good news!

Omitting the Spreed.Me Server is great!
Is it possible to use mobile clients like Android and iOS, especially with apps rather than browsers?

Thanks!

You mean currently not available in the app store :wink:. We are working on a special nc release, so stay tuned. If you are unable to wait, you can still use the oc version (with one little addition for nc 11, see jsxc/jsxc#423).

1 Like

Great, thanks for this info! I’ve just installed it and it’s working fine. Looking forward to test it in a teaching session!

Does the Spreed Video call require Spreed app enabled?

3 posts were split to a new topic: Connect spreed.me to server outside local network

Please keep this issue to general remarks and questions. If you have individual problems and configuration questions, please open a new topic.

It would be useful to add “spreed” as category to “apps” and “support/apps” section, as “speedme” is the different app with dedicated spreed.me server. Its might be little confusing thou, maybe it’s better to handle both apps in the same category and live with the circumstance that there might be questions necessary about which app is used ;). Just wanted to give the hint.

We already have so many categories, I would rather clean this up a little. For a user it must be quite obvious where to post. We also have this issue with the calendar, where the functionality is in core but the app is separate. However, I think it’s no problem to post everything calendar-related there and only for the bug reports we have to be careful to direct the user into the right topic. With spreed/spreedme it’s probably similar.