Playing AV1 videos with ExoPlayer
AV1 is a new video codec that aims to provide improved compression efficiency compared to VP9 and HEVC. Over the past year, we’ve seen considerable interest in supporting AV1 playback in ExoPlayer. As part of keeping pace with the latest developments in video coding, we’re pleased to announce that we’ve pushed the ExoPlayer AV1 extension to the development branch, and it will be included in an upcoming release. Read on to find out more about the extension.
Android 10 includes an AV1 decoder. This means ExoPlayer already supports AV1 videos on devices running Android 10, but until now, there was no support for devices running older Android versions. The ExoPlayer extension solves this by bundling libgav1, a new open-source AV1 decoder from Google that’s optimized for Android. With this approach, we can reach more than 99% of active Android devices.
Using the AV1 extension is easy! Follow the steps in the README to fetch libgav1 and its dependencies, and Android Studio will build the library automatically. The extension provides Libgav1VideoRenderer
, which will be loaded as one of ExoPlayer’s video renderers if you use DefaultRenderersFactory
with SimpleExoPlayer
. To try out the extension in the demo app, see the documentation on enabling extension renderers.
We’re looking forward to hearing your feedback! You can contact us via our GitHub issue tracker.