我想在 php 中使用 ffmpeg 将视频转换为 .flv。目前我有这个工作,但它会挂起浏览器,直到文件上传并完成。我一直在查看有关如何在后台运行 exec() 进程的 php 文档,同时使用返回的 PID 更新进程。这是我发现的:
//Run linux command in background and return the PID created by the OS
function run_in_background($Command, $Priority = 0)
{
if($Priority)
$PID = shell_exec("nohup nice -n $Priority $Command > /dev/null & echo $!");
else
$PID = shell_exec("nohup $Command > /dev/null & echo $!");
return($PID);
}
还有一个技巧可以用来跟踪后台任务是否正在使用返回的 PID 运行:
//Verifies if a process is running in linux
function is_process_running($PID)
{
exec("ps $PID", $ProcessState);
return(count($ProcessState) >= 2);
}
我是否想创建一个单独的 .php 文件,然后从 php cli 运行以执行这些功能之一?我只需要一点点推动它就可以正常工作,然后我就可以从那里开始了。
谢谢!