Android H.264 BaseProfile level support

android, h.264, video-streaming

Solution

The reason why the documentation doesn't mention any levels is the wide variety of Android devices. It works for Apple since they only offer a few models but there are many Android manufactures. Google cannot guarantee that a particular level will work across all those devices.

In fact, if you look at the Video Encoding Recommendations they can't even guarantee `2 Mbps HD 720p @ 30 fps`. It's marked `N/A on all devices`.

For `HD 720p @ 30 fps` the corresponding level is `3.1`. A device capable of playing a certain level can also play all the levels below.

This doesn't imply there are no Android devices that can play levels `3.2+` and even `Main`, `High` profiles etc. But if you need wide availability you need to target the lowest common denominator.

Problem

According to the official android documentation, android supports h.264 Base Profile on 3.0+ devices, however it makes no mention to which levels the system will support. Does anyone know, or would this be dependent of each device?

Original source