ffmpeg x11grab ein einzelnes Fenster

954
Pioz

Ist es möglich, mit ffmpeg ein Fenster zu greifen, das minimiert ist oder das nicht den Fokus hat (es ist ein anderes Fenster drüber, aber ffmpeg zeichnet nur das darunterliegende Fenster auf)?

Mit einem Befehl wie ffmpeg -f x11grab -r 30 -i :0.0+x,y -f flv rtmp://url?

5

1 Antwort auf die Frage

2
Antonio Ospite

AFAIK Es ist nicht möglich, ein bestimmtes Fenster mit ffmpeg zu erfassen. Der Eintrag x11grab im Handbuch bezieht sich nur auf die Bildschirme https://www.ffmpeg.org/ffmpeg-devices.html#x11grab und weist darauf hin, dass die von Ihnen angegebene Region statisch ist ( Wenn Sie das Fenster verschieben, folgt ffmpeg nicht):

GStreamer bietet jedoch in diesem Fall mehr Flexibilität:

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

Dies funktioniert bei unscharfen Fenstern, und Sie können sie sogar verschieben, jedoch NICHT bei minimierten Fenstern.

Wie Sie vielleicht wissen, können Sie die Fenster-ID mit erhalten wmctrl -l.

Sie können die von GStreamer-Elementen mit dem gst-inspect-1.0Programm unterstützten Optionen anzeigen, z.

gst-inspect-1.0 ximagesrc