Ever wondered why the video quality in Apple's FaceTime is generally superior to that of other 3rd party apps? The main reason is that Apple is using the VideoToolbox API in the platform that offer access to the hardware accelerated video H.264 coding. Dedicated hardware for video coding allows for better video performance as well as significant battery savings. Video coding complexity is tightly connected to the video resolution. At higher resolutions (720p, 1080p, ...) it starts to become really hard to get good video quality when running video coding in software, even on today's super fast mobile devices.
Previously these API's have been private and not accessible to iOS developers. But as of iOS 8 Apple has made VideoToolbox public for developers to use. Not all devices are supported however, you need a device with at least the A7 chip (iPhone 5s, iPad Air 1st gen and newer devices).
Thanks to hard work from our team and Centricular we are really excited to announce that OpenWebRTC now uses VideoToolbox on supported devices! On older devices we fall back to H.264 coding in software.
This greatly improves the performance of your native apps while still maintaining WebRTC compatibility with browsers that implement the H.264 video codec, such as Firefox. It also opens up for really high quality mobile interop with most existing video conferencing solutions. We think the quality improvement and battery life savings you get is somewhat of a game changer on mobile.
To get this new feature you need to update OpenWebRTC to current master (we will soon have proper versioning). Update instructions can be found here.
We are really looking forward to seeing how you use this powerful new feature in your apps!
- The OpenWebRTC team