2010-11-26 6 views
0

en utilisant ffmpeg dans un de mes sites avec PHP, je convertis des fichiers en utilisant la fonction exec php, en fait ça m'a fait mal à la tête de comprendre QUAND ce ffmpeg termine la conversion après l'exécution de la commande exec :(est de toute façon de le faire?savoir quand ffmpeg termine la conversion

Merci

+1

Êtes-vous en arrière-plan le processus? – Orbling

+0

U effectivement m'a fait me sentir stupide en ce moment hehe, ce qui est arrière-plan le processus ?? Je vais utiliser le script sur Windows Server et sur le serveur Linux, je ne sais pas si le traitement exec est le même ici et là, c'est juste que j'ai travaillé sur les chemins et la conversion fonctionne, c'est juste que je ne peux pas déterminer quand la conversion est terminée. –

Répondre

2

d'après ce que j'ai trouvé, les blocs fonctionnels exec jusqu'à ce que la conversion de ffmpeg est terminée.

Par exemple, vous pouvez exécuter ffmpeg comme ça dans votre script PHP:

exec($encode, $output); 

(où encode $ est la commande ffmpeg comme une chaîne, et la sortie $ est un tableau de chaque ligne de sortie de ffmpeg.)

Pour moi, ce blocs de commande exec mon script PHP de continuer jusqu'à ce que la conversion de ffmpeg est terminée, à quel point mon script PHP se poursuit, ce qui semble être la façon dont il est décrit dans le manuel PHP:

http://php.net/manual/en/function.exec.php

Ainsi, vous pouvez dire quand exec est terminée en suivant la commande exec avec un autre Commande PHP sur la ligne suivante de votre script qui vous informe que la conversion est terminée ou met à jour une base de données ase, ou quoi-as-tu. Je pense que pousser la commande exec "en arrière-plan" signifie exécuter la commande exec mais avoir le script PHP en marche simultanément (c'est-à-dire de manière asynchrone). Pour exécuter la commande exec en arrière-plan, Google "fond PHP exec" ou "php multi-processus", tels que:

http://www.php.net/manual/en/ref.exec.php#80241 http://www.sitecrafting.com/blog/to-run-php- code-in/

+0

Merci ami, pour une raison quelconque si la ligne suivante est liée à un processus de lecture/renommer/copier le fichier édité en sortie, cela ne fonctionnera pas parce que le fichier "n'existe pas", j'ai utilisé une boucle while pour attendre pour que le fichier soit créé et continue :) –

+0

Hmm ... peut-être votre commande de traitement de fichier n'est pas tout à fait raison? Pour tester, je voudrais commenter votre ligne exec et voir si vous pouvez travailler avec un fichier que vous savez existe. –