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. 

An earlier blog post on A Generic Video-IO Component for WebRTC described the basic idea, motivation and use cases. Now the recent research paper on A Generic Web Component for WebRTC Pub-Sub describes the project motivation, and the software architecture and implementation details including the API and connectors to several existing services. 

From the paper: "We present video-io, a generic web component to publish or subscribe to a media stream in WebRTC (web real-time communication) applications.  Unlike a call or conference room abstraction of existing video conferencing services, it uses a named stream abstraction, which is useful in many scenarios beyond just a call or conference. It keeps most of the application logic in the endpoint using the extensive application interface of this component, and keeps any vendor specific access control or signaling negotiation in a service-specific connector implementation. This allows an app developer to write once, and be able to run the web app on different servers or services. We also demonstrate its flexibility by implementing the connector for ten different existing systems and services. Decoupling the app from the hosted vendor service promotes innovation in the endpoint beyond what a single vendor locked client app can offer."


No comments: