[FFmpeg-devel] Procedure to enable the Windows on ARM64 FFMPEG Libraries

Kacper Michajlow kasper93 at gmail.com
Sat Sep 14 21:06:43 EEST 2024


On Thu, 12 Sept 2024 at 09:21, Niranjan Kshatriya (QUIC)
<quic_nkshatri at quicinc.com> wrote:
>
> Hi team,
>
> I am working on Windows on ARM application development and wants to execute FFMPEG on my device.
> On FFMPEG download page (Releases * BtbN/FFmpeg-Builds (github.com)<https://github.com/BtbN/FFmpeg-Builds/releases>) "windows on Arm" binary is not available (Other binaries(x64 and linux Arm64) are generated and validated ).
>
> X64 version of FFMPEG binary is running successfully on my ARM device but looking for ARM Native FFMPEG support for better experience as x64 is running slow on my device compared to x64 device.
>
> I have downloaded the source from :  https://git.ffmpeg.org/ffmpeg.git    and compiled locally ( on ARM using WSL ) for Arm with tool chain : GitHub - Windows-on-ARM-Experiments/mingw-woarm64-build: Workflows and build scripts for Windows on Arm64 GNU cross-compiler for `aarch64-w64-mingw32` target.<https://github.com/Windows-on-ARM-Experiments/mingw-woarm64-build?tab=readme-ov-file>  with below configuration :
>
> ./configure --arch=arm64 --target-os=mingw32 --cross-prefix=aarch64-w64-mingw32- --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --disable-libpulse --disable-libxcb

Currently you have 3 ways to produce native Windows on ARM binaries.
Mentioned by Martin, LLVM based toolchain
https://github.com/mstorsjo/llvm-mingw/releases
Mentioned by You, GNU based toolchain
https://github.com/Windows-on-ARM-Experiments
And third option would be MSVC build, which I didn't specifically test
with FFmpeg on ARM, but should works just fine as MSVC is natively
supported by ./configure.

I would agree with Martin, that LLVM toolchain should be prefered if
possible as it is way more mature, than the GNU one. I cannot comment
on MSVC as I don't have first hand experience, but I suspect it works
just fine, with all standard MSVC limitations.

As for prebuilt binaries, it's fully up to contributors to decide to
include ARM pipelines in their auto build scripts.

- Kacper


More information about the ffmpeg-devel mailing list