Ошибка тайм-аута при запуске FFmpeg как процесса в php - PullRequest
2 голосов
/ 27 марта 2020

Я пытаюсь создать процесс сжатия видео FFmpeg во время выполнения. В моей локальной системе он работает в течение 30 секунд. Когда я попытался запустить его на сервере, он начинает выдавать ошибку тайм-аута через 60 секунд. Когда я вручную запустил команду на сервере, это заняло около 2 минут. Я узнал, что некоторые настройки в php.ini необходимо изменить. Я попытался изменить конфигурацию процесса до 300 секунд. Тем не менее, выводится та же ошибка тайм-аута.

The process "/usr/bin/ffmpeg -i '/var/temp/5e7de5a9de7c2/creme bulee-01-infuse
the cream and milk.mp4' -s 1668x2224 -c:a copy '/var/temp/5e7de5a9de7c2/compre
ssed/temp_creme bulee-01-infuse the cream and milk_1668x2224.mp4'" exceeded th
e timeout of 60 seconds.

В php.ini у меня есть следующая конфигурация:

max_execution_time = 300 
max_input_time = 300

Как остановить процесс из-за истечения времени ожидания?

1 Ответ

0 голосов
/ 28 марта 2020
Директива

max_execution_time в php .ini не влияет на команды оболочки, как указано в руководстве (подробности см. https://www.php.net/manual/en/function.set-time-limit.php)

Мое странное предположение, что вы используя Symfony\Component\Process\Process, по умолчанию время ожидания составляет ровно 60 секунд, и ваше сообщение об ошибке выглядит знакомым. Если я прав, попробуйте увеличить время ожидания :

$process = new Process($ffmpeg_cmdline);
$process->setTimeout(3600);
$process->run();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...