Libvpx !!better!! — Cross S01
Cross-compiling turns that 45 minutes into . But only if you know the incantations. Step 2: The Toolchain Trap You need a cross-compiler. For S01 (Cortex-A53), I recommend aarch64-linux-gnu-gcc .
undefined reference to `aarch64_linux_get_cpu_flags' Why? Because libvpx’s assembly stubs for runtime detection expect an OS-specific function. On Linux ARM64, you need to ensure you built with the right AS (assembler) and that --enable-runtime-cpu-detect is paired with the correct --target .
Here is the magic incantation for the S01 (Cortex-A53): cross s01 libvpx
Happy compressing. May your S01 stream VP9 without dropping a single frame. P.S. If you try to build for a 32-bit ARMv7 (like the old Pi 2), use --target=armv7-linux-gcc and -mfpu=neon . But honestly? Move to 64-bit. Your A53 will thank you.
Run file libvpx.so :
Your S01 will then Segmentation Fault instantly because it has no idea what AVX2 is.
export CC=aarch64-linux-gnu-gcc export CXX=aarch64-linux-gnu-g++ export AR=aarch64-linux-gnu-ar export AS=aarch64-linux-gnu-as Then reconfigure. The build system needs to see the cross-tools for assembly. After make and make install DESTDIR=./rootfs , copy the .so files to your S01. Cross-compiling turns that 45 minutes into
Remember: