2017-09-06 2 views
0
<?PHP 
    exec("ffmpeg.exe -i something.mp4 -ss 1 -t 1 -r 1 -s 320x240 -y something.jpg"); 
?> 

Appeler ce résultat de script dans une erreur de serveur 500 toutes les autres demandes. PHP 7.01, IIS 10.Exec PHP (ffmpeg) échoue sur IIS demande tous les

Je l'ai déjà exclu que le problème pourrait être lié aux paramters ffmpeg spécifiques de mon appel. L'exécution est < à 1 seconde, il ne peut donc s'agir d'un délai d'exécution de script PHP ou IIS.

Peu importe le temps qui s'écoule entre un "appel" au script et le suivant, les appels impairs entraînent une erreur 500, les appels pairs sont très bien. Notez que quand je dis "appel", je me réfère à appeler le script (c'est-à-dire http://server/script.php) - alors que si je mets 2,3 ou 100 appels à Exec dans le même script, ils réussiront tous. Edit: Tout à fait au hasard, j'ai essayé de déclencher un timeout en appelant la même ligne Exec ("ffmpeg etc.) 100 fois dans une boucle.Avec ma surprise, l'erreur 500 disparaît.J'ai donc retiré la boucle et ajouté un pause similaire en ajoutant un appel à dormir (10): l'erreur 500 retours, et il est instantané - comme le serveur ne parvient pas à exécuter le script avant même l'analyser maintenant, je suis totalement perdu ..

Toute velléité

.?
+0

Probablement sans lien mais supprime le '-t 1' et ajoute' -vframes 1'. Comme vous ne produisez qu'une seule image, la commande 'échoue' et son code de sortie est différent de zéro. – Mulvya

+0

@Mulvya merci. Cependant, comme vous l'avez deviné, aucun changement. Je suppose que cela pourrait être plus un problème de réglage FastCgi que d'autres ... – resle

Répondre

0

Eh bien, il semble que la modification du protocole FastCGI pour PHP de Named Pipe à TCP, a résolu le problème

Il serait toujours intéressant, h, comprendre ce qui fait que les tubes nommés échouent immédiatement toutes les deux fois. Le réglage du rinçage du tuyau nommé n'a pas aidé.