php proc_open 如何检测命令是否完成 / proc_open() 需要至少 3 个参数

php proc_open how to detect that the command is completed / proc_open() expects at least 3 parameters

这是我的代码

$descriptorspec = array( 0 => array("pipe", "r") );
$call_mp4 = "ffmpeg command ...... ";
$openMp4 = proc_open($call_mp4, $descriptorspec , $pipe);
$isMp4stillcompressing  = proc_get_status( $openMp4 );
while ( $isMp4stillcompressing['running'] ) {
    echo '• ';
}

我拥有的"bug"是没有尽头的;(

为什么会这样?

我的主要目标是在转换时输出一个点或其他信息

谢谢

按此顺序,变量 $isMp4stillcompressing 将在 while 循环外设置一次,并在循环内永远保持为真。每次循环运行都需要检查:

$isMp4stillcompressing  = proc_get_status( $openMp4 );

while ( $isMp4stillcompressing['running'] ) {
    echo '• ';
    $isMp4stillcompressing  = proc_get_status( $openMp4 );
}