Animation file sizes
Every animation comes in several formats, and each place plays one of them. Pick where your mascot lives, how many animations it has, their length and their size, and see what a visitor loads or how much your app grows.
Weighing it.Each visitor downloads one format, the one their browser plays, when the mascot first appears. The CDN and the browser cache it after that.
Which file each place uses
| Where | File | 5 s at 360 px | 5 s at 720 px |
|---|---|---|---|
| Website in Chrome, Firefox, Edge | WebM with transparency | 0.48 MB | 0.94 MB |
| Website in Safari, iPhone, iPad and Mac apps | HEVC .mov with transparency | 0.88 MB | 2.2 MB |
| Android app | Stacked MP4 | 0.43 MB | 2.4 MB |
Measured on 40 Masko animations of 5 seconds. Size grows in line with the length, and busy motion is heavier. The opaque MP4 is about 2 MB for 5 seconds at full size; use it only where you do not need transparency.
Bundle or load from the CDN
- On a website, files load when the mascot appears. Each visitor downloads one format, the one their browser plays, and the browser caches it.
- In an app, you choose. Bundle the files and your app grows by the total above, but the mascot works offline from the first launch. Or load them from Masko's CDN on first use: the app stays small, and each animation downloads once, then plays from the cache.
- In both apps, each one only carries its own format: HEVC on iPhone and iPad, the stacked MP4 on Android.
Talking animations
A talking animation weighs about the same per second as any other, with its sound included. A 30-second talk at 720 px is about 6 MB in WebM and 15 MB in HEVC. Load long talks only when the visitor presses play.
Make your files lighter
- Use a size variant. At 360 px a clip is about half its full-size WebM and 40 percent of its full-size HEVC. For a mascot shown at 240 px or smaller, turn on size variants once; they are free.
- Load one format. Pick WebM or HEVC from the browser, as in hosting and file formats.
- Load talks on demand. Give long talking clips
preload="none"and a poster image, and start them on a tap. - Check real sizes.
GET /v1/mascots/:idreturns each hosted file'sfile_sizein bytes, see check CDN status.





