Live streaming peer-to-peer with WebRTC
I love the data channel use cases. This is probably because they are further away than my comfort zone of VoIP related ones.
One of the areas where WebRTC’s data channel makes a lot of sense is in distributed content delivery, where peers consuming the content cooperate with each other to receive it. One of the vendors in this space is Viblast, a company I met almost a year ago.
I recently reached out to Lubomir Chorbadjiev, co-founder and CTO, and asked him a few questions about Viblast and their use of WebRTC. Here’s what he had to say.
What is Viblast all about?
Viblast is an advanced peer-to-peer technology for delivering live HD video to web and mobile audiences. It addresses the challenges of live video streaming in three important ways:
- Relieves last-mile video traffic congestion, while reducing reliance on centralized streaming infrastructure
- Improves viewer quality of experience (higher video quality/bitrate, fewer video service problems)
- Offers a naturally scalable shield against buffering and service outages during viewership peaks.
And it does it elegantly: The solution works without end-viewer plugins thanks to WebRTC, and needs just one HLS stream to reach web & mobile audiences. Importantly, it cooperates with existing streaming infrastructure, making integration a fast and seamless experience.
Viblast serves video broadcasters, CDNs, system integrators and online video platforms.
What excites you about working in WebRTC?
What excites us the most is that it is a cross-platform native communication solution which allows us to create a P2P technology across a number of platforms: mobile devices, browsers and even set-top-boxes. The opportunity to develop Viblast so it does not need clunky plugins (or any plugins at all) is what made our solution viable in the first place. Although WebRTC is a new standard, we are impressed with the quality of the existing implementation in Chrome and Firefox.
You have decided to build a mobile SDK. Why is that?
Smartphones and tablets are gaining significantly as a share of total video consumption. We want our solution to be multiscreen, which makes mobile a must for us. The fact that WebRTC reference implementation is written in the C/C++ programming language allows us to offer our solution across Android and iOS devices so mobile viewers can exchange data with web viewers.
Where do you see WebRTC going in 2-5 years?
We are confident that all browsers will extend support to WebRTC in the next couple of years.
The same is true for most smart TVs and mobile devices, making them also transmitters of the audio and video, not just receivers. We see WebRTC also used for machine-to-machine communication in the future.
If you had one piece of advice for those thinking of adopting WebRTC, what would it be?
Do it and do not be afraid of the bugs! There always is a workaround and each new version shows significant improvement with many of the bugs resolved.
Given the opportunity, what would you change in WebRTC?
WebRTC is trying too hard to hide all the complexities of its internals from the developer, which makes it easy for newcomers. However, in many cases this prevents possible optimizations in the application layer and makes it hard to detect network conditions and errors.
Additionally, it would be great to see more collaboration between major WebRTC implementations (for Chrome, Firefox). Currently too much effort is going into writing code that supports all of these. Software libraries such as adapter.js help a bit, but cannot solve all the issues.
The interviews are intended to give different viewpoints than my own – you can read more WebRTC interviews.