Late last year, we released our initial ORTC implementation to the web community as part of EdgeHTML 13. We’ve been hard at work on the next steps for RTC in Edge, and wanted to share an update on our roadmap, which we discussed in detail last week at Edge Web Summit.
Bringing H.264/AVC to ORTC in Edge
Our initial ORTC implementation included audio support as well as support for the H.264UC video codec – an implementation of H.264/SVC based on Skype extensions. As a first step towards video interoperability with other platforms, we’re now working to add support for the H.264/AVC codec. We’re additionally laying the foundation for video interoperability within the Edge RTC stack by adding support for additional feedback messages as well as congestion control and robustness mechanisms.
The H.264 format is historically the preferred option in the RTC industry. H.264 support has been widely adopted across hardware platforms, and has broad hardware offload support, for improved performance and video quality. We’re excited to see more modern browsers now supporting the H.264 video format in WebRTC implementations—Firefox has shipped support for H.264/AVC, and initial H.264 support is now available in Chrome Canary (behind a flag).
Cross-browser support for H.264/AVC will enable the Edge team to begin testing our H.264/AVC implementation across browsers, with the eventual goal of an interoperable RTC experience. We expect to provide a preview release in the next few months with updated H.264/AVC and RTP/SAVPF support in Edge so developers can enable basic video scenarios across all major browsers.
Supporting the native WebRTC 1.0 API
Edge currently supports the WebRTC 1.0 API for audio applications via the adapter.js library patches developed by Phillip Hancke. In order to further improve the level of WebRTC 1.0 API compatibility for basic 1:1 audio/video communications, we are now prototyping a subset of the WebRTC 1.0 API natively within the Edge Platform.
Our focus is on basic 1:1 communications, and we will initially support a single H.264/AVC stream within PeerConnection. Advanced functionality like multi-stream support, provisional answers, or the WebRTC 1.0 object model, are currently out of scope for our implementation. We look forward to sharing updates on this implementation as our prototyping continues.
Evaluating VP8 in RTC
Finally, we’re investigating support for the VP8 codec within both the ORTC and WebRTC 1.0 APIs in Edge. Once we have laid the foundation for video interoperability within the Edge RTP stack and demonstrated progress toward H.264/AVC interoperability, support for interoperability with additional codecs will become feasible. At that point we intend to begin work on an interoperable implementation supporting VP8. Because there is not yet broad hardware offload support for VP8 encoding and decoding, we will continue to evaluate the balance between RTC performance and overall system power consumption across all our device platforms. We will share updates on the timeline as work progresses.
Shijun Sun, Principal Program Manager, Microsoft Edge
Bernard Aboba, Principal Architect, Microsoft Skype