Introducing Roomboard Live Streams
One of the most requested features when setting up a new VR experience with our customers are roomboards. Out of the box, Mozilla Hubs doesn't offer an easy-to-use UI to allow you to see who's online in what room. Since most VR experiences are set up to offer multiple rooms—sometimes including dozens to even hundreds of rooms—it would be nice to see where your friends are, where the tour guide is waiting, or what the most popular rooms are.
That is why, from the very beginning, Mohuni runs its own room and user directory to allow just that. We're exposing this functionality via roomboards: Easy to use, easy to set up web pages that group together a bunch of rooms and allow you to quickly see how many users are currently online in each room, and their Mozilla Hubs usernames. Additionally, this serves as the foundation for Auto-Join.
Why Live Streams?
You know what would be really neat? Being able to see a roomboard from inside a Mozilla Hubs room.
Since Mozilla Hubs does support embedding Live Streams we would just capture a live recording of a roomboard, and embed that live stream. This turned out to be a rather laborious manual process to set up and I'm happy to announce that all the heavy lifting is now done automatically for you.
From the user's perspective, all you need to do is to go to the "Live Stream" tab for your roomboard, enter the details for your Youtube, Twitch, etc. Live Stream and click start. That's it!
How does it work?
Each live-streaming process is isolated and automatically restarts when something goes wrong. For now, we're testing this feature on a single server and are looking into sizing up this server, setting up multiple servers to increase capacity.
The express server itself provides a simple API to manage live-streams and authenticate requests, and is proxied by an Apache server set up to serve SSL provided by certbot
This feature is very much still in beta and we're looking into improving streaming quality and encoding efficiency to (obviously) ramp up our streaming quality and concurrent streaming capabilities. It's all a matter of finding the right ffmpeg arguments...
We hope you find this useful. Contact me if you have questions.