所以我读这篇文章通过量:https://trac.ffmpeg.org/wiki/PHP ,发现这个:了shell_exec echo'ing过快或过晚
<?php
echo "Starting ffmpeg...\n\n";
echo shell_exec("ffmpeg -i input.avi output.avi >/dev/null 2>/dev/null &");
echo "Done.\n";
代码工作几乎完全正常,但困扰我的唯一的事情是,因为shell_exec正在后台执行(所以在整个时间内没有加载标签),所有的回显正在立即执行。这意味着,在ffmpeg完成任务之前,“完成”回显正在写入。
但是当我删除“&”该网站还做什么它打算做的,但现在却等到了shell_exec完成,直到它呼应的开展“开始的ffmpeg ...”
所以我还挺有问题想办法如何得到这样一个顺序:
1)回应的东西 2)执行commad并等到它完成。 3)再次回声
我是一个初学PHP的人,但总体编程经验丰富。请怜悯。
谢谢你的时间!
使用与在命令结束后将立即返回(并在后台运行的进程)这就是为什么在页面加载和显示最终echo语句命令的输出完成之前。这个答案给出了一种方法来启动任务,无需等待完成,并且还可以查询转换的进度http://stackoverflow.com/a/6245461/2543650 – Legion