Je voudrais trouver une solution à ce problème: J'ai une liste d'images que je veux convertir en vidéo sur le serveur. J'ai créé une machine virtuelle avec centOS et installé ffmpeg pour le tester. Tout fonctionne bien quand je me tape cette ligne dans le terminall'exécution d'une commande de php qui nécessite d'être root
sudo ffmpeg -r 10 -i img%03d.png -c:v libx264 -preset veryslow -crf 0
video.mp4
Ce que je veux est d'appeler quand je clique sur un bouton. Voici le code:
Javascript:
$(document).ready(function(){
$("#ffmpeg").click(function(){
$.get('ffmpegBooklet.php', function (data) {
console.log(data);
});
});
});
PHP:
echo shell_exec("/usr/local/bin/ffmpeg -r 10 -i /img%03d.png -c:v
libx264 -preset veryslow -crf 0 video.mp4 2>&1");
Qu'est-ce que je reçois dans la console du navigateur est: le journal de ffmpeg et à la fin -> Autorisation refusée
J'ai essayé avec une construction statique (après avoir lu sur internet) mais j'ai le même problème. Y at-il une solution pour faire cela sans les droits de sudo? Je ne veux pas faire cela en tant que sudo ou à une commande délicate pour donner des permissions sudo via php parce que je pense que ce n'est pas sécurisé.
Toute aide est la bienvenue! Merci de l'avoir lu :)
Possible duplication de [Exécuter les commandes root via PHP] (https://stackoverflow.com/questions/8532304/execute-root-commands-via-php) – y0hami
Au lieu d'exécuter en tant que root, configurer les autorisations appropriées pour la sortie chemins. – aergistal
ok! Le problème de la permission ne vient pas de l'exécution de ffmpeg mais de la sortie? Je pensais qu'appeler le programme sans être root était le problème –