Так что после некоторой тяжелой работы я решил, что это связано с тем, как xpra управляет активными окнами.
Для передачи xwd в xwud требуется указать идентификатор дочернего окна для xwd, в противном случае он просто отображает пустую рамку окна. Визуально это очень отличается от пустой белой рамки, которую я получаю от ffmpeg, но я думаю, что это указывает на то же самое.
Если бы мне пришлось угадать, это как-то связано с самолетами, о чем свидетельствует
444 req->planeMask = (unsigned int)AllPlanes; 445 req->format = ZPixmap;
^ код ffmpeg для x11grab, с https://ffmpeg.org/doxygen/trunk/x11grab_8c_source.html
Я решил отказаться от xpra и использовать автономный xvfb. Это позволяет мне использовать ffmpeg