Я хочу использовать ffmpeg для преобразования видео в .flv в php. В настоящее время у меня это работает, но браузер зависает до тех пор, пока файл не будет загружен и не завершен. Я просматривал документы php о том, как запустить процесс exec() в фоновом режиме, обновляя процесс с использованием возвращенного 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 для выполнения одной из этих функций? Мне просто нужен небольшой толчок, чтобы заставить это работать, и тогда я смогу взять его оттуда.
Спасибо!