TheInstashare (Peer to Peer Media Streaming Service)
Hey Everyone,
Hope you all are safe and sound. I am writing this post to announce that lately, I’ve been working on a fun side gig related to low latency peer to peer media streaming over the web without relaying any content(text or any media) through any server. As remote work has become a new normal in the current scenario and we’ll are dependent upon various mediums to connect with each other, be it related to work or connecting to our families. I thought there won’t be any good time as such to release this app as a small free service. So here it is:
TheInstashare (Peer to Peer Media Streaming Service)
Url — https://theinstashare.com
Major Available Features -
- Text Chat (Available on both desktop and mobile)
- Audio Chat (Available on both desktop and mobile)
- Video Chat (Available on both desktop and mobile)
- Screen Sharing (Available on desktop, can be viewed on any device i.e desktop or mobile)
- File Sharing (Available on both desktop and mobile. Can share Audio, Video and Image files, limited formats supported as of now)
Minor Useful Available Features -
- Flip Camera (Available on Mobile)
- Do not disturb for calls (Available on both desktop and mobile)
- Mute (Available on both desktop and mobile)
- Full-Screen Mode (Available on Desktop for viewing the video in full screen)
Tech Used -
- Webrtc (RTC peer connections as the underlying transport for streaming data from peer to peer)
- Angular (Web Application)
- Node.js (Signaling server for Webrtc on top of socket.io with custom written clustering support)
- Google and Numb’s STUN servers (For NAT traversal required for Webrtc)
- Nginx (Reverse Proxy)
- Google Cloud (Compute engine for backend)
Compatibility — Beside iPhone(only text chat works on this, as it is somewhat lagging behind in implementing Webrtc open specifications properly), I expect everything to work on all other devices i.e Mobile and Desktop(though I’ve tested it on Android and Windows only). Recommended browser is Chrome.
Note-
- As of now, I haven’t implemented a login feature so that users can try it easily just by entering a unique username. Due to this, all users will see all online users at that time and user sessions will be destroyed(i.e text chats or any file shared) as soon as the user closes the browser tab. This will be replaced by login after some time and users will only be able to connect with their contacts.
- The app doesn’t support group chat yet, I’ll think of implementing it if people find the app useful as it requires a considerable amount of efforts.
- All video streams have a max cap for bandwidth as 3Mbps and audio 600kbps to keep app’s bandwidth usage low.
Any feedback is welcome. You can reach out to me via LinkedIn.
Thanks!
Gaurav