Bloat Libvpx Updated May 2026
Until then, if your binary is too fat, remember: It's not the codec's fault. You just compiled the reference implementation for the reference machine. Trim the flags, target your silicon, and libvpx will slim down.
If you are just decoding video (not encoding), consider dav1d for AV1 or ffmpeg with --enable-libvpx --disable-everything . But that is a story for another day. bloat libvpx
From the perspective of an IoT developer with 32 MB of total flash storage: The default libvpx is a nightmare of redundant symbol tables and CPU dispatchers that will never fire on their hardware. Until then, if your binary is too fat,
--target=armv7-linux-gcc --disable-neon --disable-avx2 Do not use --enable-shared if you only need one binary. Use --enable-static and let the linker garbage-collect unused functions ( -ffunction-sections -Wl,--gc-sections ). libvpx has a little-known flag: If you are just decoding video (not encoding),
--disable-vp8-encoder --disable-vp9-decoder When cross-compiling, specify exactly the architecture:
./configure --size-limit=640x480 --enable-small --enable-small trades speed for size. It disables loopfilter optimizations and reduces memory overhead. For embedded decoding, this is often invisible to the user. Yes and no.
