Media Soup project for video conferencing.

we have a bunch of computers (running Ubuntu) that have web cameras attached to them. I need someone to build a website that pulls in webcam video feeds from the multiple computers logged into the website and sends the video output to one browser for live video viewing. I’d want this website hosted on AWS Lamda (so it can scale easily) and I think using webRTC would be easiest, though I am open to suggestions. The computers are behind a NAT so using IP Camera-based systems will not work. Furthermore, having low latency is of utmost importance.

On the computers that have webcams attached to them running Ubuntu, I would log into the website via Mozilla firefox ideally, then a page would appear a dropdown box with names for the webcam I am selecting such as “001” or “002” for example. (I would repeat this process for each computer)

Then on the user side, there would be an admin account that when logged in, would display a list of all the assigned camera and next to the names along with a checkbox. I could then select a few of the checkboxes and click another “connect” button at which point I am taken to a page that looks and functions exactly like the zoom conference app. (Please see attached image) In which all the video feeds from the cameras I’ve selected are displayed at the top and the ability to click any one of them and it pops up much larger below.

I would be able to ‘add’ and ‘delete’ cameras and assign a name to those cameras.

Lastly, I could create sub-accounts from the master account and assign cameras to these subaccounts. The subaccounts could only view the cameras that have been added to them, they wouldn’t have the ability to add or delete cameras.

That’s it. Please note the video feed only goes one way, from computers with webcams running ubuntu to the computers of the end-user. However, there are a couple of things that may trip you up that I want you to be aware of. Each ubuntu computer is behind a NAT, furthermore, the internet is a cellular connection with upload speeds of between 1.5mbps to 5mbps. For video conferencing on zoom, this isn’t a problem as zoom will automatically adjust the quality to account for the varying connection speed. Like zoom or skype, having low latency is the upmost importance. I don’t think webRTC between the ubuntu computers and the end-user would be feasible as there would be multiple end-users so sending the video to the server first (either using webRTC or some other low latency method), then to the end-users, would be the most ideal. There is no audio. Don’t stream the audio.

Also, I would like this to run on Amazon Lamda for easy scaling and to have all the video that is streamed (whether viewed or not) to be recorded and saved on S3

I hope this all makes sense to you. Please let me know if you have any further questions or need clarification on any of this. After reading it, what are your thoughts regarding this project?

I look forward to hearing from you