EncBench

Phone video encoder benchmark · Android · beta

EncBench 0.6.0

Runs the phone's video encoders (H.264, H.265, AV1, VP9) as if they were recording live camera video at 30 or 60 fps, for minutes, and records how speed, quality and temperature change as the phone heats up. It also checks whether a "hardware" encoder really runs in hardware.

Android 10+ · 31 MB · beta for invited testers SHA-256
↓ Download APK

Send results from your phone

  1. Install the app (above), then tap this button on the same phone. EncBench opens and from then on sends its results to the server.

Activate this phone

Results so far

Open the results on their own page

Test footage

The grid runs on 2 s of real footage. Each clip is a 1920×1080 window at the clip's own frame rate, 8-bit 4:2:0: 4K clips are cropped, not scaled, so texture, grain and motion per frame stay as shot. The app downloads the clips as lossless AV1 (723 MB in all), decodes them with the phone's own AV1 decoder and checks the SHA-256 of the decoded frames. 720p is the centre of the window; 4K and 8K tile it with mirrored copies, so no edge appears where tiles meet; every loop plays forward and then back, so it has no cut. A clip skips the camera modes whose frame rate it cannot feed (24 and 30 fps clips run only in the 30 fps modes). Decode a clip with ffmpeg -i FoodMarket.av1.mp4 -f rawvideo -pix_fmt yuv420p FoodMarket.yuv; previews are H.264, for watching only.

FoodMarket · natural 1920×1080 · 60 fps · 120 frames · crop at 1792,992 of 4096×2160, frames 480-599 of the original “El Fuente” © Netflix · CC BY 4.0 ↓ lossless AV1 · 152 MB ↓ preview · 23 MB SHA-256 of the frames e416f36ae2ae8dd5af0862beb209a08ec27273098f4341b0456250d230b0431b
smoke_sauna · natural 1920×1080 · 50 fps · 100 frames · crop at 688,1072 of 3840×2160, frames 15-114 of the original © SVT, Natural Complexity 2022 · CC BY 4.0 ↓ lossless AV1 · 63 MB ↓ preview · 5.3 MB SHA-256 of the frames 25d3dc1ca86ba9191c30cf926f4500829d14a1c951a1c52bd7a0aa100701a467
midnight_sun · natural 1920×1080 · 50 fps · 100 frames · crop at 1536,1072 of 3840×2160, frames 15-114 of the original © SVT, Natural Complexity 2022 · CC BY 4.0 ↓ lossless AV1 · 122 MB ↓ preview · 38 MB SHA-256 of the frames 532aa3199a1a376a1add64a8f1c1870bfb0d37767fb3cd955b1da8b8be1a0820
Nightclub113 · natural 1920×1080 · 23.976 fps · 48 frames · crop at 0,752 of 3840×2160, frames 97-144 of the original © Jim Skinner · CC BY-SA 4.0 ↓ lossless AV1 · 48 MB ↓ preview · 13 MB SHA-256 of the frames f45d74205702a575e55c00ef00ae2b8c45d5877689f826aa3936c19a74b20883
MountainBike · natural 1920×1080 · 30 fps · 60 frames · full frame, frames 35-94 of the original © Neil Birkbeck · CC BY-SA 4.0 ↓ lossless AV1 · 83 MB ↓ preview · 48 MB SHA-256 of the frames 70b4ad2522cf4c486a91eaf45274cef8e75579f27e306b3eeda7d037000fbf2a
CSGO · gaming 1920×1080 · 60 fps · 120 frames · full frame, frames 1741-1860 of the original Twitch recording (game © Valve) · public domain ↓ lossless AV1 · 141 MB ↓ preview · 38 MB SHA-256 of the frames 98d7eb44b09e4418a64d3c95cd9dc5a4231579b0359ee34cfe5104c31e12b919
DOTA2 · gaming 1920×1080 · 60 fps · 120 frames · full frame, frames 1741-1860 of the original Twitch recording (game © Valve) · public domain ↓ lossless AV1 · 92 MB ↓ preview · 14 MB SHA-256 of the frames 98f731182fbfb9ae72b8be0f0c47c33941b7db339d4345a87cb6f6d4e775f448
Vlog · conference 1920×1080 · 29.97 fps · 60 frames · crop at 1328,320 of 3840×2160, frames 5 s-7 s of the original Excerpt from “ClickBaitas?!! 500 Epizodas Jau Čia!?! |Aivaras Misiūnas| |Daily Vlogs|” by Aivaro Vlog · CC BY 4.0 ↓ lossless AV1 · 22 MB ↓ preview · 6.2 MB SHA-256 of the frames 2e452b2104fd56de8331c26897d845da9daec3f27ba3df52112cfab9445d93fe

Synthetic test pattern

The pattern the grid ran on before real footage, still available as “Synthetic” footage in the app. The app generates each clip on the phone and loops it for 5 s at every test point; the files here are bit-exact copies (the phones report the same SHA-256). Raw files are 8-bit I420 (yuv420p), limited range, no header, e.g. ffplay -f rawvideo -pixel_format yuv420p -video_size 1280x720 -framerate 30 synth1-1s_1280x720_30fps_yuv420p.yuv. The MP4s are H.264 previews for watching only; the 8K one is scaled to 4K.

1280×720 · 30 fps · 30 frames Used for 720p30 ↓ YUV · 41 MB ↓ MP4 preview · 1.5 MB SHA-256 859f4ad26d1b531b8f6b12d8193b71f13a27a72c37fba3588edfd4966b90dfa0
1920×1080 · 60 fps · 60 frames Used for 1080p60, and for 1080p30 (every second frame) ↓ YUV · 187 MB ↓ MP4 preview · 4.4 MB SHA-256 c54b6600640782b36f20b5a60a28223807f6142400faade578faa3c775f5d05a
3840×2160 · 30 fps · 30 frames Used for 2160p30 ↓ YUV · 373 MB ↓ MP4 preview · 13 MB SHA-256 77c520dfab9620ca9f8ebf9969009de9004a749c96ad9e12d8cdb1a8f54e625f
3840×2160 · 60 fps · 60 frames Used for 2160p60 ↓ YUV · 746 MB ↓ MP4 preview · 16.5 MB SHA-256 e51f47dec23cb350e4aa01f8c24a87c3e493de7fccc9747789c642023d94d9db
7680×4320 · 30 fps · 30 frames Used for 4320p30 ↓ YUV · 1.49 GB ↓ MP4 preview (4K) · 6.5 MB SHA-256 1212777198c812dad15bcef9e18803743d770dcadac8042b241aa8da64bde93c

Install

  1. Open this page on the phone and tap Download APK.
  2. Open the downloaded file. When Android asks, allow your browser to install apps.
  3. If Play Protect warns about an unknown app, choose Install anyway. The app is not on Google Play.

Run a test

  1. Activate the phone (button above, or a personal key in Tools) so results go to the server: numbers after every point, encoded streams over Wi-Fi when the test ends.
  2. On the Test tab tap Quick test (720p and 1080p) or Full test (up to 8K). The app shows how many points and minutes it will take. Custom test picks codecs and camera modes. Leave the phone on a table, unplugged, until it finishes.
  3. The Results tab charts the bitrate at each quality level, whether every point kept up live, the temperature during the run, and how your phone compares with the others.
  4. If the streams did not go out (no Wi-Fi), tap Upload next to the run in Tools later.