Je peux très bien démarrer l'instance xvfb
Xvfb :1 -screen 0 800x600x24
Je peux ensuite lancer firefox et le charger correctement, mais la fenêtre est toujours inférieure à la résolution définie lors de la commande xvfb.
firefox http://www.ebay.com --display=:1
Vous pouvez voir la barre noire, c'est la résolution complète. Il semble que cela corresponde à ce que la page veut, mais elle ne le remplira jamais complètement.
Voici une solution, pas jolie mais qui fonctionne. Utilise xdotool
pour définir la taille après que Firefox
soit en cours d'exécution.
Première:
xdotool search --onlyvisible firefox
Ceci affichera un seul identifiant de fenêtre, windowid
. Ensuite:
xdotool windowmove windowid 0 0
xdotool windowsize windowid 1280 720
Vous devez d'abord faire le windowmove
et le suivre par le windowsize
.
Dans certains cas, une fois que j'ai fait cela, la taille et la position étaient toujours correctes, dans d'autres cas, il fallait recommencer chaque fois que je courais Firefox
.
Supposons que la bordure est là et compensez en conséquence dans votre capture. Si vous avez besoin de 1024x768, définissez la taille d’écran sur 1034x778 et capturez 1024x768.
Xvfb :1 -screen 0 1034x778x24 > /dev/null &
ffmpeg -t 1 -s 1024x768 -f x11grab -i :1.0+10,10 -f mjpeg screenshot.png