Much has been made about Google’s support for HEVC in Android, including I hate to say, by me. A recent look at the Android spec while preparing for a Streaming Media Workshop, however, seems to indicate that this support is practically irrelevant. Here’s why.
If you click over to the Android Supported Media Formats page, you’ll see details regarding the supported codecs. For HEVC, Android supports Main Profile Level 3 for mobile devices and Main Profile Level 4.1 for Android TV.
As you probably know, levels define certain file-related limits, including resolution and frame rate. This allows a vendor like Google to define the limits of codec support, typically so they can configure the hardware on a device to play a certain level. As you can see from the chart from Wikipedia below, certainly, it would take a less capable CPU to play Level 1 (176×144@15 fps) than level 5 (4,096×2,160@30 fps).Figure 2. HEVC levels and limits.
As a video producer, if I know a device supports only a certain HEVC Level, I don’t encode beyond those specs. For HEVC on Android mobile devices, that’s Level 3, which maxes out at 960×540@30 fps and isn’t sufficient for most OTT shops. With popular devices like the Samsung Galaxy S9 offering a 1080 pixel vertical display resolution, and some tablets going even higher, you would expect to be able to stream 1080p video to these devices. By comparison, Apple’s support for HEVC to iOS devices extends up to Level 5, good for 4K @ 30 fps.
Complicating Google’s HEVC support even further is that Chrome for Android doesn’t seem to play HEVC-encoded videos, even Level 3 or under, which may rule out many browser-based deployment cases. This statement is backed by my own limited tests, plus the report shown below from www.caniuse.com. Again, with Apple Macs and mobile devices, Safari provides native playback of HEVC encoded content, simplifying distribution for all producers.
Of course, any hardware vendor can supply HEVC decode in addition to what Google supplies in the OS. While useful in some instances, this support is obviously of limited value to producers supporting a broad swath of Android devices.
Unless I’m reading something wrong, which is certainly possible, Google’s HEVC support is inadequate for most uses and difficult to access. So while you can technically say that the Android platform supports HEVC, it’s much ado about not much support. In most cases, H.264 or VP9 are both better choices.