0

我在 Windows 7 上,使用 WampServer,并尝试使用 FFMPEG。

编码有效,但我无法从exec() 方法或shell_exec()方法中获取进程 ID。

这是我的代码:

$cmd = C:\ffmpeg\bin\ffmpeg.exe -i "C:\...\4ch.wav"  -ar 44100 -ab 48000 -f mp3 -y "C:\...\enc_4ch.mp3"

这就是我试图用 shell_exec 做的事情:

shell_exec("nohup $cmd > /dev/null & echo $!");

并与 exec :

exec("nohup " . $this->_command . " > /dev/null 2>/dev/null &") ; // returns null
exec("nohup " . $this->_command . " > /dev/null 2>&1 &"); // also returns null 

请让我知道我做错了什么,因为我想稍后使用以下方法检查我的进程是否仍在运行:

private function is_process_running($proccess_id) 
    { 
        exec("ps $proccess_id", $process_state);
        return (count($process_state) >= 2);
    }

提前谢谢你

4

1 回答 1

0

您正在使用echo $!获取进程 ID,并且该特定命令在 Windows 上不可用,因为它是一个unix shell命令。程序链接应该可以工作:How to get PID from PHP function exec() in Windows?

于 2013-05-17T15:52:10.180 回答