#1 Le 21/10/2013, à 16:47
- belevolution
Capture vidéo avec FFMpeg via PHP : Could not open X display
Bonjour,
Mon but est de faire une capture vidéo de mon écran à l’aide de FFMpeg, via PHP.
J’utilise pour cela la commande :
ffmpeg -f x11grab -s 1026x659 -i :0.0+126,181 -y -t 5 -b 4000k -sameq -vcodec huffyuv -an /var/www/temp/test.mpg </dev/null >/dev/null 2>/var/www/temp/ffmpeg.log &
Cette commande fonctionne correctement lorsqu’elle est exécutée dans un terminal.
Mais je souhaite lancer l’enregistrement à un moment précis, et pour cela j’ai besoin d’exécuter la commander depuis une page web écrite en PHP, et qui est lancée en local.
<?php
shell_exec("export DISPLAY=:0"); // testé avec ou sans cette ligne
shell_exec("ffmpeg -f x11grab -s 1026x659 -i :0.0+126,181 -y -t 5 -b 4000k -sameq -vcodec huffyuv -an /var/www/temp/test.mpg </dev/null >/dev/null 2>/var/www/temp/ffmpeg.log &");
?>
C’est ici que ça bloque.
L’enregistrement ne s’effectue pas, et le log de FFMpeg indique :
[x11grab @ 0x8ba92a0] device: :0.0+126,181 -> display: :0.0 x: 126 y: 181 width: 1026 height: 659
No protocol specified
[x11grab @ 0x8ba92a0] Could not open X display.
:0.0+126,181: Input/output error
Précisions :
- J’ai essayé en mettant la commande ffmpeg dans un fichier shell. Ce fichier exécuté dans un terminal effectue sa tâche. Mais pas lorsque le fichier est lancé depuis la page web.
- J’ai essayé de faire une simple conversion de vidéo avec FFMpeg depuis la page PHP, et là ça fonctionne.
Ma conclusion :
Le problème doit se situer quelque part entre Apache, ou son utilisateur www-data d’une part, et le serveur graphique d’autre part.
J’ai inclus www-data dans le groupe root pour tester, mais ce n’est pas mieux.
Qu’en pensez-vous ? Avez-vous déjà essayé ?
Merci d’avance pour toute aide.
Zoé
Hors ligne
#2 Le 28/10/2013, à 15:02
- belevolution
Re : Capture vidéo avec FFMpeg via PHP : Could not open X display
Personne n'a la moindre idée qui pourrait m'aider un peu ?
Je suis toujours bloquée sur ce problème.
Merci,
Zoé
Hors ligne