2009-10-08 9 views
3

J'utilise PHP pour appeler une commande FFMPEG en utilisant exec(). Le script qui initie cette commande est appelé à partir d'un autre script PHP en utilisantPuis-je appeler plusieurs processus FFMPEG sur une machine LAMP multi-core à partir de PHP?

proc_close(proc_open('php /phpdirectory/process.php &', array(), $foo)); 

Cela fonctionne très bien. La commande ffmpeg est appelée et s'exécute 'en arrière-plan' laissant le premier script à retourner à l'utilisateur et dans ce cas continuer à télécharger des fichiers. Que faire si j'utilise une machine avec plusieurs cœurs? Comment pourrais-je optimiser les choses pour pouvoir appeler un processus ffmpeg pour chaque core? Ou un processus de machine multicœur va-t-il scinder le travail entre les cœurs de toute façon et passer à travers un seul processus plus rapidement?

Quelqu'un?

+0

Quel système d'exploitation utilisez-vous? –

+0

CentOS, j'utilise une instance Amazon EC2 et je me demande comment mon installation va changer si j'utilise des instances plus grandes. à votre santé – undefined

Répondre

4

La planification du processus FFMPEG est effectuée par le planificateur du noyau. Vous ne pouvez pas déclencher explicitement vos processus à chaque cœur.

0

blairyeah a raison de dire que ce n'est pas une optimisation, mais que vous pouvez en fait épingler un processus à un processeur spécifique en utilisant taskset(1).

Solution trouvée dans a ServerFault answer.