Does Skype for Web mean WebRTC is ready for prime time?
- 19 November, 2014 01:56
Microsoft's upcoming Skype for Web service will use the new WebRTC standard so it works in all modern browsers -- but not right away: Early users will have to download a plugin that's only available on Mac and Windows.
That's something Microsoft has already done for years in its Lync universal communications product. The reason for it lies in the complexity of building real-time communications, and the often-complex way web standards are developed, approved and built into browsers, especially the audio and video formats they use (known as codecs).
According to Bernard Aboba, the principle architect working on Skype, the plugin is a miniature version of Skype. "For audio it uses much of the same technology as the mandatory WebRTC codecs. It has a technology called forward error correction so it's robust to packet loss and it can handle a wide range of video bandwidth. On the video side, it relies on the H.264 codec. It also supports simulcast and scalable video codecs, which allow video to scale all the way from a mobile device up to a large desktop system with a large screen, and have all those devices participate in a call at once."
"Those are the technologies that need to be supported in WebRTC to give a good experience," said Aboba. Without them, calls could be hard to hear and video choppy and interrupted.
But they're not in any browsers yet, so Skype can't just use them. "No browser today supports a combination of H.264, simulcast and scalable video codecs. Chrome has simulcast and scalable video codecs and even multi-stream video, but it doesn't have H.264. Firefox supports H.264 but doesn't support simulcast or scalable video codecs or even multi-stream video. IE recently announced it will support H.264, as well as ORTC which by design supports simulcast and scalable video codecs, but that's [in the future]," he said.
He's encouraged by discussions at a recent meeting of the Internet Engineering Task Force. "There may be some progress happening on getting H.264 implemented in multiple browsers, which would be helpful."
Although it may seem as if WebRTC has been around for a while, even Google Hangouts didn't switch to using WebRTC instead of a plugin until July this year -- and the WebRTC 1.0 standard isn't finished yet.
That's partly because real-time communications are intrinsically difficult. "It's just really hard stuff to get right," said Michael Champion of Microsoft Open Technologies, the Microsoft subsidiary that builds prototypes of open technologies Microsoft is interested in. "The standards are higher than in some technologies; when your video is jumpy it's very obvious to everyone."
Aboba called building real-time features into browsers "a complex and risky project even for us."
WebRTC has also been affected by the agendas of the many companies involved in developing the standard -- including Apple, Cisco and Qualcomm, as well as browser makers such as Microsoft, Mozilla and Google, which proposed its own VP8 codec instead of H.264. Video calls between different browsers won't work unless both use the same format for the video, but discussions on which video codec browsers will have to support in WebRTC dragged on for many months, with arguments over the licensing and royalties involved. Refusing to support VP8 was Apple's only real contribution to the discussion, and last year Cisco offered an open source implementation of H.264 to break the deadlock.
Both Google and Microsoft were involved with developing ORTC and originally the plan was for version 1.1 of WebRTC to incorporate the new ideas. It's the ORTC version of WebRTC that the Internet Explorer team is working on. But now many ORTC ideas are going straight into WebRTC 1.0. That's slowed down finalizing the standard but will improve compatibility.
Unlike other standards such as Pointer Events that Microsoft has backed, that hasn't been a matter of Microsoft convincing Google to change its mind. The designers of ORTC needed to explain how it would work, said Aboba, "but we didn't have a problem convincing people it should be adopted."
Even so, WebRTC is some way from being a mature technology. Many of the pieces aren't new, but they haven't been put together in a single system before.
And then there's the question of matching the experience we expect today from services like Skype.
One big challenge he identifies for WebRTC on mobile devices is battery life. "If you're not using hardware acceleration [to process audio and video efficiently] your battery will run down very quickly." That might mean you'll need a new device to get the most from WebRTC. "Devices that support Lync and Skype in accelerated mode are more likely to support this. With other vendors that have not supported hardware acceleration before, you would have to get new hardware. Apple and Microsoft have supported this for a while."
And call quality is key. Features like forward error correction and redundancy that improve calls on poor quality connections are "extremely important," said Aboba. "We found for both audio and video [in Skype] that if you don't have robustness features you will see problems." Those features are common in services like Skype; they aren't yet in the standard, but they're being proposed. "There's a whole separate effort to develop standardized forward error correction."
"You can see browsers today that can render more multiple video streams than some telepresence systems you can buy; they can render 12 streams on screen. But if the network starts losing packets, the absence of those robustness features is very clear. They would have been in the telepresence systems, but they're not in WebRTC."
In short, Aboba sees WebRTC as an important technology that's not yet finished, but he's excited about the potential. "When we're done, we will have a very powerful base for real time applicators to be developed on. We now have as much real time functionality as was in the enterprise quality systems of a few years ago."
But it depends on how fast different browser makers adopt all the new standards as to how well WebRTC applications will work on your different devices.