Before beginning, you will need:
- v4l2loopback, a Linux kernel module that, like
aloop
, creates a loopback device that can be seen as a camera; - gstreamer, which can integrate with pipewire but doesn't seem to use
v4l2loopback
devices well; - ffmpeg, which does perfectly well with
v4l2loopback
but (for now) lacks pipewire support.
I'm presuming you're using pipewire and any of the xdg-desktop-portal implementations appropriate to your compositor, and that it is configured to be running as part of your session (and reachable via the DBus session bus).