fix-the-internet / mozilla-builders

Mozilla Builders
95 stars 7 forks source link

Peer to Peer Video Conferencing #9

Closed nataliescottdavidson closed 4 years ago

nataliescottdavidson commented 4 years ago

I’m interested in making a distributed video conferencing app which works in the browser. This would also have the functionality of streaming from IP cameras, kind of like StreamLabsOBS Ideally it would also work with security cameras.

The use case of this would be not having to host a CDN because it is peer to peer. I believe it would appeal to consumers who prefer to use an open source platform for communications.

I also want to make this to play around with WebRTC. https://webrtchacks.com/ is a really cool resource.

Another potential use case would be to run image processing and computer vision based inference on the streamed video.

harlikshah commented 4 years ago

Hi @nataliescottdavidson , I liked your idea about video conferencing and then use image and CV. Let me know if you are interested in collaborating with me. Resume: http://bit.ly/harlik-shah-linkedin Regards, Harlik Shah shahharlik@csu.fullerton.edu

chaigoyal commented 4 years ago

Hey! I'm an EECS and Business (MET) student at UC Berkeley (www.linkedin.com/in/chaigoyal). I can join and work on much of the non-technical work (and of course help with technical as demand dictates). Let me know if any of you want to team up.

KaminskyJ commented 4 years ago

Hey, I think this idea is super cool, particularly with how it relates to security cameras.

I've recently been trying to figure out what to do with all my old phones and tablets, and I was trying to turn them into security cameras, but of course, I was very wary about privacy. I think making a security camera system with WebRTC would doable and really fun, not to mention incredibly useful. I think this could be a great project! I'm a Junior at Cornell University with experience mostly in ML and data science, but I'm looking to try new things.

Let me know if you want to work together! Email me at jk989@cornell.edu

bhargav-y commented 4 years ago

Hey Natalie, I think this is a great idea and I think that we could form a really strong team with the people on this thread. I'm a sophomore CS major at UIUC and I think my technical skillset could be really helpful on a project like this. Reach out to me at bhargavy@illinois.edu.

LinkedIn: https://www.linkedin.com/in/bhargavy/

KadeMorton commented 4 years ago

@nataliescottdavidson do you have anyone looking at the security implications of your product? I work in security if you are looking for a resource.

I would like to hear more on the problem this project addresses and how it will be different to other conferencing solutions out there.

nataliescottdavidson commented 4 years ago

I've scheduled a meeting for all those interested to discuss the product and forming a team. Please let me know if you're interested but can't make this time!

Topic: Mozilla MVP Program- Decentralized Videoconferencing Time: Mar 31, 2020 02:00 PM Eastern Time (US and Canada)

Join Zoom Meeting https://us04web.zoom.us/j/345605974

Meeting ID: 345 605 974

nataliescottdavidson commented 4 years ago

Value Proposition:

Live streaming from any camera endpoint to any other endpoint should be seamless. Streaming an IP camera to the browser currently relies on either the camera supporting WebRTC or on using an intermediate media server to convert from RTSP or other format. Proprietary solutions exist to stream WebRTC from security cameras, action cameras and webcams but there should be an open source implementation to improve compatibility and free streamers from working with multiple closed protocols.

Peer to peer streaming would support a decentralized video conferencing platform. Such architectures have gained in popularity in part due to the loss of public trust in software companies. People want to communicate face to face, remotely, and efficiency, without inviting any third party into the chat.

PrynkaSxna commented 4 years ago

Hey, Natalie. I'd be interested in contributing if you haven't finalized a team. I have worked on projects involving security standards and reliable communication protocol in an IoT network.

nataliescottdavidson commented 4 years ago

Value Proposition: Live streaming from any camera endpoint to any other endpoint should be seamless. Streaming an IP camera to the browser currently relies on either the camera supporting WebRTC or on using an intermediate media server to convert from RTSP or other format. Proprietary solutions exist to stream WebRTC from security cameras, action cameras and webcams but there should be an open source implementation to improve compatibility and free streamers from working with multiple closed protocols.

Peer to peer streaming would support a decentralized video conferencing platform. Such architectures have gained in popularity in part due to the loss of public trust in software companies. People want to communicate face to face, remotely, and efficiency, without inviting any third party into the chat.

Use cases: Youtube streamer wants to stream video directly from GoPro. Investigate if possible to use 5G endpoint (phone) to publish.

Advanced manufacturing video streams. Client browser based dashboard and a simple, well documented JavaScript and Python receiver API. This will make it convenient for users to deploy inference models using common libraries.

Repurposing of legacy technology. The market for user generated streaming content is evinced by Youtube Live, TikTok, Instagram Live, Facebook Live and others. If possible to connect old hardware such as android tablets this would give content creators a chance to do more with less and recycle.

Use a dashcam as a webcam.

Background: My undergraduate capstone project client is an advanced manufacturing lab in the UofSC McNair Aerospace center. PI’s ask was to develop a web application dashboard for the demo cell including security cameras.

Competitive landscape: Kurento Media Server Ant Media Zoom Wowza

Conclusion: Open Broadcast Service provides this function https://obsproject.com/

We would need to differentiate from this service in order to proceed.

marsrobertson commented 4 years ago

Video callilng of all sorts - why do we need an app for that?

This is good: https://hubs.mozilla.com

It was possible back in 2011 already: https://stackoverflow.com/a/8621893/775359

nataliescottdavidson commented 4 years ago
  • Skype
  • Zoom
  • Hagouts
  • Bluejeans
  • Appear

Video callilng of all sorts - why do we need an app for that?

This is good: https://hubs.mozilla.com

It was possible back in 2011 already: https://stackoverflow.com/a/8621893/775359

Most security cameras don't broadcast WebRTC.

marsrobertson commented 4 years ago

I thought we talk about video conferencing between humans, not security cameras.

The whole Zoom thing annoys me, I have much more trust in the web, rather than an app that is installed on my computer.

EDIT: replied via email, removed footer and quoted text.

nataliescottdavidson commented 4 years ago

@marsrobertson do you have any idea for a value add service in this space?

marsrobertson commented 4 years ago

@nataliescottdavidson See this: https://github.com/fix-the-internet/spring-mvp-lab/issues/32 - calling phones from a website?

The stuff exists for many years

I have a theory, installing apps is an attempt of locking down into the ecosystem.

image

image

Let's do not reinvent the wheel

Recently I've been hearing good stuff about: https://meet.jit.si/

Haven't tried in practice though.

new23d commented 4 years ago

Happy to discuss the implications of NAT with IPv4, changes that IPv6 will bring (or already has in certain parts of the Internet), and security pitfalls of peer to peer network connections. Although I'm one for P2P networks/connections, there are technical and Personally Identifiable Information (PII) [1] challenges in such implementations.

Give me a shout if you want to talk these over.

[1] https://en.wikipedia.org/wiki/Personal_data

marsrobertson commented 4 years ago

@new23d we are building new stuff. Can we go IPv6 only? IPv4 are already exhausted.

Personally Identifiable Information

Or maybe just metadata?

I think that it's over-worrying. Your law is as strong as your ability to enforce it. So I've shared my IPv6 address and so what?

marsrobertson commented 4 years ago

Seems like there is already a channel for a similar project: image

MAIN MOTIVATION


The video solution has to work for everyone. $20 Android phone in India should be able to handle video call. ➡️ If someone has limited data: Turn on “data saver” mode ➡️ If someone has limited bandwidth: Turn on “bandwidth saver” mode ➡️ If someone has low CPU: Turn on “CPU saver” mode ➡️ If someone has low battery: Turn on “battery saver” mode

I’m not that concerned about encryption, I think that SSL / TSL / https handles it by default.