Here are some project ideas largely related to multimedia communication, WebRTC and related technologies. Please get in touch with me if you would like to explore further, contribute to, or sponsor one or more of these projects. I will be happy to provide insights, guidance, provide partial code, and/or connect with the right folks. As I make more progress in any of these, I will create separate articles describing them.
Kundan Singh
Articles on technology, Internet, Protocols, Web, Open Source, VoIP, P2P, SIP, RTMP and WebRTC.
What is video-io?
I worked on a project to create a generic web component named video-io for publish-subscribe in WebRTC. With the growing number of WebRTC enabled video call and conferencing services, we continue to see a trend of vendor lock-ins. The end result is that only a few popular apps dictate the experience of a vast majority of the users. My project is an attempt to separate the service specific part from the client app logic. It allows web developers to create such communication apps independent of any specific service, and to easily connect it to a wide range of media servers or hosted services.
Introducing Ezcall
My project, Ezcall, demonstrates a lightweight call signaling and peer-to-peer control of WebRTC video conferencing.
Two main goals of this project are: (1) to show a lightweight call signaling using push notifications, as well as serverless call signaling using email messaging, and (2) to do peer-to-peer control of video conferencing application logic, using WebRTC API in the browser.
How to easily customize your virtual camera?
Checkout this demonstration video of a virtual camera using RTC Helper.
The sub-project "RTC Camera and Screen" is user friendly, and allows you to easily customize camera and screen share behavior on web video conferencing apps that use WebRTC's getUserMedia and getDisplayMedia APIs.
Introducing RTC Helper
What?
RTC Helper is a simple and easy-to-use software that can intercept WebRTC (web real-time communication) and related APIs in the browser, and change the behavior of web apps in real-time. It allows you to analyze, customize and improve audio/video communication on third-party websites as well as your own web apps.
Two main goals of this project are: (1) to allow end-user customization of WebRTC experience, without depending on the features provided or supported by the third-party websites, and (2) to allow developers to rapidly create proof-of-concept (PoC) of innovative ideas and emerging features built on top of WebRTC.
A deep dive into WebRTC topology
There are many prior articles on the web about the WebRTC media path topology in a multiparty scenario. Those usually cover the basic topology of full-mesh and centralized, including MCU and SFU.
In practice, conferencing systems often exhibit complex topologies beyond this basic view. For example cascaded servers can scale to a much larger meeting or live streaming, especially when participants are geographically distributed and clustered. Separate topology for audio vs. video media paths may enable easy integration and interoperation with telephone and VoIP systems.
In this article [Open as PDF], I take a deep dive into WebRTC media path topology — understanding the benefits and tradeoffs of various alternatives — including, but also beyond, the simplified view of full mesh, MCU and SFU.
How not to design a video conferencing product?
What do I do as a software architect?
"I am the Architect. I created the matrix. I’ve been waiting for you." -- The Architect
I present my view on what an architect does or should do? And what are the important things to keep in mind in my opinion?
Topics: Introduction. Making decisions using trade-offs. Research and evaluate technology and tools. Create proof-of-concept of big picture. Systematically divide the goal into smaller solvable problems. Create knowledge base and training for others. Continuous monitoring and improvement of the system. Identify and address disruptive technologies. Conclusions.
From "TO DO" to "DONE"
Named stream abstraction for WebRTC notification with P2P media
Multi-language software programs
As a software developer, it makes me wonder - is this doable or already done for programming languages?