ffmpeg x11grab a single window

AFAIK it's not possible to capture a specific window with ffmpeg, the x11grab entry in the manual only refers to screens https://www.ffmpeg.org/ffmpeg-devices.html#x11grab and it suggests that the region you specify is static (if you move the window ffmpeg does not follow it):

However GStreamer offers some more flexibility in this case:

gst-launch-1.0 ximagesrc xid=0x04000007 ! videoconvert ! autovideosink

This works with out-of focus windows and you can even move them but it does NOT work with minimized windows.

As you may know, you can get the window id with wmctrl -l.

You can see the options supported by GStreamer elements using the gst-inspect-1.0 program, e.g.:

gst-inspect-1.0 ximagesrc