2011-08-30 4 views
1

J'ai installé ffmpeg sur mon serveur et il fonctionne bien via mon terminal. Je suis en mesure de convertir un fichier au format webm avec succès, donc je suis sûr que l'installation est bien. Je suis également sûr que je n'ai qu'une seule installation de ffmpeg installée sur ma machine.exec de PHP() ne pas exécuter la commande pour FFmpeg

Un problème survient lorsque j'essaie de convertir des fichiers via PHP via exec() de PHP. Quand je cours les mêmes commandes, j'ai couru dans le terminal, rien ne se passe. J'ai regardé autour de stackoverflow et d'autres parties du net pour de l'aide. J'ai essayé de voir la sortie:

exec($cmd, $out, $rv); 
echo "output is:\n".implode("\n", $out)."\n exit code:$rv\n"; 

La sortie est: "sortie est: code de sortie: 127"

La commande J'utilise est dans ce format:

ffmpeg -i "sample.mov" -vcodec libvpx -r 30 -b "644k" -acodec libvorbis -ab 128000 -ar "44100" -ac 2 -s "352x198" "sample.webm" 

J'ai essayé de remplacer "ffmpeg" avec le chemin complet de FFmpeg mais cela n'a pas fonctionné.

Pourquoi le script n'exécute-t-il pas correctement la commande et ne convertit-il pas les fichiers?

Merci!

+2

C'est "¿Por qué?" (deux mots) ;-P –

+0

facepalm. Merci, j'ai oublié: p – tundoopani

+0

duplication possible de http://stackoverflow.com/questions/4828083/ffmpeg-php-error-code-127 –

Répondre

1

J'ai un problème similaire avec les exécutions de cibles ant de php. Je ne peux pas obtenir la sortie entière de la commande ant seulement les premières lignes et la cible Ant n'a pas été exécutée. En d'autres termes est partiellement exécuté.

Avec la commande ci-dessous, j'ai réussi à l'exécuter mais la sortie de la commande est ajoutée à fichier_journal.log.

$commandString = 'you_command_here >> log_file.log 2>&1 &'; 
$command = exec($commandString); 

Espérons que cela fonctionnera pour vous.

3

Le code d'erreur 127 signifie que l'exécutable (ffmpeg) n'a pas pu être trouvé. Essayez de spécifier le chemin complet (vous pouvez le trouver dans votre terminal avec which ffmpeg) ou comparez la valeur de la variable d'environnement PATH dans votre script php et votre terminal.

+1

"J'ai essayé de remplacer" ffmpeg "par le chemin complet de FFmpeg mais cela n'a pas fonctionné." – tundoopani