ffmpegを使用してビデオをphpで.flvに変換したいと思っています。現在、これは機能していますが、ファイルがアップロードされて終了するまでブラウザがハングします。返されたPIDを使用してプロセスを更新しながら、バックグラウンドでexec()プロセスを実行する方法についてのphpドキュメントを見てきました。これが私が見つけたものです:
//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);
}
これらの関数の1つを実行するためにphpcliから実行される別の.phpファイルを作成することを想定していますか?私はこれを機能させるために少し微調整する必要があり、それから私はそこからそれを取ることができます。
ありがとう!