Fairies Wishlist
FFmpeg Fairy automatically tests and reviews FFmpeg pull requests and Issues. Some bugs and pull requests require hardware or operating environments that are not currently available to the Fairies.
Besides Fairy, we would also like to have these systems available to developers and for CI (when the hw is powerfull enough).
This page lists categories of hardware and environments that would be useful.
Preferred way to provide hardware
The preferred contribution is an SSH account on a machine where Podman is available.
This is preferable to donating physical hardware because:
- the hardware remains maintained by its owner;
- FFmpeg does not need to host, repair, upgrade, or replace it;
- the owner can keep the host operating system and drivers up to date;
- Fairy can create disposable containers for individual tests;
- unusual or expensive hardware can remain useful to its owner while also being available for FFmpeg testing.
The host does not need to be dedicated to FFmpeg.
The relevant hardware devices should be accessible from containers where practical, for example through /dev/dri, /dev/snd, NVIDIA container support, or similar mechanisms.
Security warning: the containers will execute FFmpeg code from untrusted pull requests. The account and Podman setup therefore need to be configured such that code running inside these containers cannot compromise the host, other users, credentials, or unrelated data.
Providing unrestricted SSH access to a machine containing valuable data is not what we are asking for.
Currently available
Fairy currently has access to:
- x86-64 system with an AMD Ryzen 9 5950X and NVIDIA GeForce RTX 5090
- useful for general x86-64 testing
- CUDA
- NVENC / NVDEC
- NVIDIA-related hardware acceleration
- Ampere Arm64 system
- useful for native AArch64 / Arm64 testing
These systems already cover a significant amount of generic CPU and modern NVIDIA testing. Additional systems are most useful when they provide a substantially different hardware, driver, architecture, or I/O environment.
Wishlist
Intel GPUs
A Intel GPU system would be useful for testing:
- VA-API
- QSV
- oneVPL
- Intel media drivers
- hardware decode, encode, filtering, and zero-copy paths
AMD GPUs and APUs
An AMD GPU system would be useful for testing:
- AMF
- VA-API on AMD
- hardware encoding and decoding
- hardware filters
- GPU format conversion
- interactions between FFmpeg and different AMD driver generations
Other CPU architectures
Native systems for architectures other than x86-64 and AArch64 are useful, especially where emulation does not accurately reproduce architecture-specific behavior or performance.
Examples of useful categories include:
- 32-bit ARM
- RISC-V
- POWER
- big-endian architectures
- other architectures supported by FFmpeg
Modern systems are not required. Stable machines that can compile and run current FFmpeg are useful.
Video capture hardware
Machines with real capture devices are useful, including:
- V4L2 cameras
- USB webcams
- capture cards
- professional video capture devices
Network cameras and streaming devices
Network-connected media hardware can expose interoperability problems that are difficult to reproduce with software alone.
Useful categories include:
- IP cameras
- RTSP cameras
- RTMP-capable cameras
- surveillance cameras
- hardware encoders
- streaming appliances
These can be useful even if the device itself cannot be passed into Podman, provided the Fairy container can communicate with it over the network.
What makes a machine useful?
A useful Fairy machine does not need to be powerful.
What matters most is that it provides an environment we cannot otherwise test.
For example, an old integrated GPU exposing a driver bug may be more useful than another current high-end system.
Particularly useful systems are those which provide one or more of:
- a hardware generation not already covered;
- an unusual CPU architecture;
- a hardware acceleration API not already covered;
- real audio/video capture hardware;
- network media devices;
- vendor-specific drivers;
- old hardware on which current FFmpeg is still expected to work.
Windows / MacOSX
podman does not work on MacOSX / Windows in a useful way. So a different isolation layer needs to be used. That is this would require a small change to fairy in addition to ssh access to the machine.
Offering access
If you have hardware or an environment that might be useful, please contact the FFmpeg developers (either ffmpeg-devel or fairy at ffmpeg.org)
The ideal setup is:
- SSH access;
- Podman available;
- sufficient storage and memory to build and run FFmpeg;
- relevant devices available to the container;
- no valuable secrets or unrelated user data reachable from the test environment;
- permission to execute arbitrary code submitted in FFmpeg pull requests.
Physical hardware donations can also be useful, but remote access to owner-maintained hardware is generally preferable because it substantially reduces the maintenance burden on the FFmpeg project.


