Search

New HEVC & HEIF Media Formats: What You Need to Know

Mikey Ward

3 min read

Jun 7, 2017

iOS

New HEVC & HEIF Media Formats: What You Need to Know

Apple has long been very bullish on efficient media technology, almost singlehandedly popularizing H.264 as a web video encoding while leading the charge on the death of Adobe Flash.

Within our apps, Apple settled on PNG as the image format of choice for its powerful compression capabilities that maintain a high fidelity.

So, What’s the News?

Once again, Apple is bringing to the table some new image and video formats to push the platform foward by saving you storage space, bandwidth and computation time. Here’s the short version:

High Efficiency Video Coding (HEVC) is a codec for both images and videos, which requires almost half the storage space (and bandwidth) of H.264 and JPEG. Apple will reuse the existing .mov file extension for HEVC video files. HEVC is also called MPEG-H Part 2 and H.265 by industry standards bodies.

High Efficiency Image Format (HEIF) (pronounced “Heef”) is the file format for HEVC-encoded images, and will use the .heic file extension.

Neither of these formats are bleeding-edge, as both have been ratified by the ISO between 2013 and 2015. This means that many other industry players such as Adobe have already built HEVC/HEIF support into their software.

Yes, But Why Do I Care?

The vast majority of app developers can carry on as usual. Apple’s media frameworks and apps will transparently use HEVC and HEIF for internal encoding and storage, but will automatically transcode HEIF to JPEG or HEVC to H.264 when exporting media when the user sends an iMessage or the developer obtains a UIImagePickerControllerOriginalImage.

Relevant frameworks such as AVFoundation, CoreImage and even UIKit have new APIs in iOS 11 to allow you to request the new-format media if you prefer.

For example, UIImagePickerController’s new mediaExportPreset property defaults to .compatible, which will cause imagePickerController(_:didFinishPickingMediaWithInfo:) to vend a JPEG image, but you can change mediaExportPreset to .current to get a HEIF image instead.

For more on HEVC and HEIF, see WWDC 2017 Session 503: Introducing HEVC and HEIF

But I Stream HLS Video From a Server!

First, there is no requirement that you update your server to stream HEVC video. But you absolutely should, because at a sacrifice of 50% additional server storage (which is cheap), you can lop off half your bandwidth usage (which is not cheap) to supported devices.

Should you really bother doing it now? Isn’t HEVC support limited?

Nope! HEVC playback with software decoding will be available on all Macs running macOS High Sierra and all iOS devices running iOS 11. That means iPhones back to the 5S/SE, iPads back to the Air and Mini 2, and the 6th-gen iPod touch.

Some newer models (6th-gen Intel Core-based Macs and A9-based iOS devices) even have hardware decoding support already built-in for even further improved playback and decoding performance.

But I can support even more devices by using H.264 instead!

Do both! You can have both H.264 and HEVC streams in the same Master playlist. You will need to set the CODECS= attribute on your Media playlists to indicate HEVC support, and then clients will automatically choose the correct stream to meet their requirements.

Given its benefits, it is likely that HEVC will be widely supported across other operating systems (Android, Windows, etc.) in the future. For now, providing both H.264 and HEVC streams is the right choice for optimizing video bandwidth and performance for you iOS user base while not alienating your other target platforms.

Where do I learn more?

HLS content vendors need to:

Learn more about why you should update your apps for iOS 11 before launch day, or download our ebook for a deeper look into how the changes affect your business.

Mikey Ward

Author Big Nerd Ranch

Mikey Ward has been an instructor at Big Nerd Ranch for over 10 years. He has taught courses all over the world in iOS and macOS development using Objective-C and Swift. He currently maintains the popular Swift Essentials course.

Speak with a Nerd

Schedule a call today! Our team of Nerds are ready to help

Let's Talk

Related Posts

We are ready to discuss your needs.

Not applicable? Click here to schedule a call.

Stay in Touch WITH Big Nerd Ranch News