Streaming Media recently published my article on VVC and AV1, Software Decoding and the Future of Mobile Video. An honest evaluation of the article might observe that while the quality comparisons between SVT-AV1 and VVenC were relatively complete, the article didn’t share any mobile playback performance data. That’s because I couldn’t find any VVC players for testing on either mobile platform.
After handing in the article, I asked ScientiaMobile, a device intelligence company that tracks the playback capabilities of mobile and other devices (among many other data points), for assistance. They created two test players for this article, which I’ll describe below.
Contents
TL/DR
Before jumping in, here’s the TL/DR version. Mobile playback will depend almost entirely on the player; all AV1 players tested used the hyper-efficient dav1d Player, which performed well even on sub-$100 Android devices. The ScientiaMobile VVC player used the open-source Fraunhofer player, which the company describes as ” a minimal proof-of-concept VVC player for the web using WebAssembly.” The Fraunhofer player isn’t nearly as optimized as the multi-generation dav1d player and performed accordingly.
Note that several VVC patent owners, including Kwai and ByteDance, have released tests showing much higher playback frame rates than I report below. This highlights one key differentiator between the AV1 and VVC camps; while AV1 stakeholders worked together to release a highly optimized player, the VVC stakeholders are playing every man for himself.
When it comes to codecs, playability equals deployability. Today, from a pure playback perspective, AV1 is much more deployable than VVC. This may not be the case if the VVC stakeholders work together to produce an optimized version, but this is where we are today.
For the record, this isn’t a comprehensive or automated playback analysis; it’s a quick-and-dirty set of tests designed to supplement the encoding quality comparisons I published earlier. I used off-the-shelf or open-source players running on real devices to understand how AV1 and VVC perform during mobile software decoding. If you’re looking for thermal charts or power consumption data, or dozens of devices, you’re in the wrong article. But if you want to see what happens when you push play on a cheap Android phone or a couple of iOS devices, read on.
Test Description
I tested playback on these four devices, none of which had hardware AV1 or VVC decoding.
- Amazon Fire HD 10 (2021, 11th Gen) – First released in 2021, the Fire HD 10 is powered by the MediaTek MT8183 Helio P60T chipset, featuring an octa-core CPU (4x 2.0 GHz Cortex-A73 & 4x 2.0 GHz Cortex-A53) and a Mali-G72 MP3 GPU, paired with 3 GB of RAM. It includes a 10.1-inch IPS LCD with a resolution of 1920×1200 pixels (224 ppi), running Fire OS 8.3.3.4.
- Motorola Moto e13 – First released in 2023, the Moto e13 is powered by the Unisoc T606 chipset, featuring an octa-core CPU (2x 1.6 GHz Cortex-A75 & 6x 1.6 GHz Cortex-A55) and a Mali-G57 MP1 GPU with 2 GB of RAM. It includes a 6.5-inch IPS LCD display with a resolution of 1600×720 pixels (269 ppi), running Android 13 (Go edition).
- Apple iPhone 13 – First released in 2021, the iPhone 13 is powered by Apple’s A15 Bionic chip, featuring a hexa-core CPU (2x 3.23 GHz Avalanche + 4x Blizzard) and a 4-core GPU with 4 GB of LPDDR4X RAM. It includes a 6.1-inch Super Retina 2532×1170 XDR OLED display with HDR support running iOS 18.5.
- Apple iPad Air (5th generation) – First released in 2022, the iPad Air (5th gen) is powered by Apple’s M1 chip, featuring an 8-core CPU (3.2 GHz), an 8-core GPU, and a 16-core Neural Engine with 8 GB of RAM. It includes a 10.9-inch Liquid Retina IPS display with a resolution of 2360×1640 pixels running iPadOS (18.3.2).
Test Procedures
I tested playback performance with a 30 fps source file at 1080p and 720p. The file was available for playback in MP4 format for iOS, and DASH format for VVC. The 1080p30 files were both produced at 6 Mbps, a bit higher than necessary for either codec, but not enough to degrade playback rate. The 720p files were encoded at 2.2 Mbps (AV1) and 1.7 Mbps (VVC). Ideally, they would be closer, but the delta isn’t enough to influence the results.
Even with the two players from ScientiaMobile, the hodgepodge mix of codec support necessitated a third player. I’ll explain.
The ScientiaMobile VVC player (Figure 2), powered by the Fraunhofer decoder, ran on all four devices. I computed frame rate by playing the video with no speed constraint, timing a minute of playback, and noting how far the video had actually played in those 60 seconds. If the video played through 30 seconds, the actual playback rate was 15 fps; if 120 seconds, it was 60 fps.
As the image shows, I played DASH packaged streams for VVC rather than a downloaded MP4 file, which I used for AV1, which may have impacted playback results slightly as compared to the MP4 files I played for AV1. I tested all devices via WiFi, and Speedtest showed a download speed of over 115 Mbps for all devices, more than sufficient for the 6 Mbps DASH stream.

I used the ScientiaMobile Native AV1 player for AV1 on the Android platform. This uses the native player in the browser, which, as you can see in Figure 2, is the Silk Browser and the dav1d player. I tested fps playback as with the VVC player, letting it play unconstrained for 60 seconds, noting how long the file had been played, and doing the required math. Note that in this mode, the player downloads the MP4 file before starting playback.

On iOS, Safari only supports AV1 on devices with AV1 hardware, which started with the iPhone 15 Pro, and there’s no VVC player. Chrome on iOS is based on the WebKit browser engine that powers Safari, which also doesn’t support AV1 playback without AV1 hardware. Bottom line is that you can’t play AV1 on iOS in the browser on any system without AV1 decoding hardware. For this reason, I used VLC Player, which also uses the dav1d player, for testing.
VLC Player doesn’t have a fps gauge and can’t play unconstrained. However, you can choose accelerated playback, and on both iOS devices, I cranked the playback speed to 3x and the video played at that speed without obvious frame drops. I recognize this is crude, but it’s all I had. There’s almost certainly significant margin for faster playback, but you get the point; even on older iOS devices, there’s plenty of CPU for 1080p30 playback. Note that I downloaded the MP4 files to each device before playing, so download speed wouldn’t interfere with 3x playback.
For those who need a scorecard:
- I used the ScientiaMobile VVC player based on the Fraunhofer VVC decoder on all devices, playing DASH-formatted files retrieved in real time.
- I used the ScientiaMobile AV1 player on the two Android devices, which downloaded the MP4 files before playing them.
- I used VLC Player on the two iOS devices, playing a file from disk.
1080P Results
Table 1 shows the 1080p results, while the snazzy color coding tells the story. At 1080p, even the 5-year-old iPhone 13 has enough power to play both formats, as does only the slightly younger iPad.

The picture is slightly different on the much lower-powered and much lower-cost Android devices (both under $100). Neither device came close to usable VVC playback, and both started and stopped frequently, so playback wasn’t a consistent 15.5 or 13 fps but 0 fps followed by 30 fps. These stops and starts were irregular and didn’t align with segment size or GOP interval; just the player struggling with decoding on these underpowered platforms.
However, both devices used the dav1d player and were more than capable of full frame rate AV1 playback.
720p Results
A colleague suggested that I try 720p playback, which made particular sense for the Motorola since it only has a 1600×720 screen. As you can see in Table 2, this made VVC usable on the Fire Tablet and almost so on the Motorola. I recognize that the AV1 results make no sense, with the Fire Tablet only improving by 2 fps and the Motorola almost tripling. I checked it twice, and it really doesn’t matter, given that both proved more than capable of 30 fps playback.

What About Battery Life?
This is a great question that I was unable to take on for this article. Note that we’ll soon see the launch of Meta’s open-source VCAT Android test app, which will provide standardized playback data and battery life numbers for Android/AV1, though not for VVC or iOS.
The bottom line aligns with what I found in the Streaming Media article that started it all; that in the wild, VVC playback will be much more challenging to achieve, particularly with the Fraunhofer player. This isn’t a slight against Fraunhofer; theirs is a Gen One player that performed surprisingly well in these tests. Just remember that you’ll be hearing quite contradictory claims about vastly accelerated software playback from those in the VVC camp, and they probably are correct.
Another point is that, especially if you want to deploy multiple codecs, you need device-specific information for efficient distribution. In this small sample of devices, knowing that the Fire Tablet deploys the dav1d player (and has HEVC hardware decoding) can direct your codec decision, while the fact that the Motorola has a 720p screen should limit the files you stream to that resolution. This is exactly the kind of data that ScientiaMobile supplies with their WURFL service (Wireless Universal Resource FiLe). If you’re deploying multiple codecs, WURFL provides the data necessary for optimal delivery to all.
Author’s Note: The author thanks ScientiaMobile’s Steve Kamerman for creating the players, encoding the files, and providing gobs of support and patience that this author sorely needed, plus an insightful tech read. All errors are mine.