Update: https://bugs.webkit.org/show_bug.cgi?id=173141 was filed to address lack of VP8 support. Please leave a comment if it’s important to you!
I was really excited to see media capture and peer connection support finally land in Webkit, and also really excited to see that Apple explicitly pointed out WebRTC support in their latest WWDC. It shows that finally, all major browsers are beginning to coalesce around WebRTC. As a developer, that means there’s a light at the end of the tunnel.
As always, however, the devil is in the details. And there is one gigantic, gaping detail missing from Webkit’s WebRTC implementation: VP8 support.
VP8 is one of the mandatory-to-implement codecs in WebRTC, the other being H.264. VP8 is royalty free and defended by Google, so there’s very little technical reason not to adopt it; Firefox, Chrome and Edge all have VP8 support. So the decision not to include VP8 support is, on some basic level, purely a technologically “partisan” move by Apple. In Webkit, they actually went out of their way to disable VP8 from libwebrtc.
Why is this a big deal? It forces all traffic to H.264. This means any WebRTC infrastructure a company has must support H.264. For example, if a company has a selective-forwarding-unit (SFU), that SFU now has to support H.264, and any/all plug-in technology being used to cover old browsers has to support H.264 and any mobile apps they deploy using WebRTC now has to support H.264….and so on.
Those shiny little demos people have of Safari interoping with Chrome and Firefox? That’s quaint, but in the real world, this is a serious pain in the ass for developers and interop between browsers.
Apple and Webkit guys: seriously I love you for adding this. But please reconsider the decision to remove VP8 from WebRTC. Until it’s in there, Safari is not a standards compliant browser that fully supports WebRTC.