Я пытаюсь найти способ, с помощью которого я могу вывести вывод вызова exec, а затем вывести его на экран во время выполнения процесса. Я написал простой PHP-скрипт, который принимает загрузку файла, а затем преобразует файл, если он не соответствует типу файла, используя FFMPEG. Я делаю это на машине с Windows. В настоящее время моя команда выглядит так:
$cmd = "ffmpeg.exe -i ..\..\uploads\\".$filename." ..\..\uploads\\".$filename.".m4v 2>&1";
exec( $cmd, $output);
Мне нужно что-то вроде этого:
while( $output ) {
print_r( $output);
ob_flush(); flush();
}
Я читал об использовании ob_flush()
и flush()
для очистки буфера вывода, но я получаю вывод только после завершения процесса. Команда работает отлично, просто не обновляет страницу при конвертации. Я хотел бы получить некоторый результат, чтобы человек знал, что происходит.
Я установил тайм-аут
set_time_limit( 10 * 60 ); //5 minute time out
и было бы очень здорово, если бы кто-то мог направить меня в правильном направлении. Я рассмотрел ряд решений, которые близки к одному Stackoverflow, но, похоже, ни одно из них не сработало.