у меня есть upload.php
скрипт для загрузки & конвертировать видео, где я использую FFMPEG. (ЛАМПА Ubuntu 16.04)
Однако, как только FFMPEG начинает конвертировать видео, весь веб-сайт перестает отвечать на запросы, поэтому я предполагаю, что FFMPEG использует весь мой процессор.
Вот 3 строки, которые я использую для преобразования исходного видео:
* Check format, size, ect..
shell_exec('ffmpeg -i '.$temp_path.' -r 1/1 '.$path_jpeg.'');
shell_exec('ffmpeg -i '.$temp_path.' -f webm -c:v libvpx -b:v 1M -acodec libvorbis '.$path_webm.' -hide_banner');
shell_exec('ffmpeg -i '.$temp_path.' -c:v libx264 -preset veryfast -c:a copy '.$path_mp4.' -hide_banner');
* Add video data to DB
Есть ли способ ограничить использование ресурсов ЦП для FFMPEG при конвертации видео?
Спасибо
РЕДАКТИРОВАТЬ :
Я пытался использовать -threads 1
безуспешно
shell_exec('ffmpeg -i '.$temp_path.' -f webm -c:v libvpx -threads 1 -b:v 1M -acodec libvorbis '.$path_webm.' -hide_banner');
shell_exec('ffmpeg -i '.$temp_path.' -c:v libx264 -threads 1 -preset veryfast -c:a copy '.$path_mp4.' -hide_banner');
Я пытался использовать nice -n 15
безуспешно
shell_exec('nice -n 15 ffmpeg -i '.$temp_path.' -f webm -c:v libvpx -b:v 1M -acodec libvorbis '.$path_webm.' -hide_banner');
shell_exec('nice -n 15 ffmpeg -i '.$temp_path.' -c:v libx264 -preset veryfast -c:a copy '.$path_mp4.' -hide_banner');
FFMPEG по-прежнему потребляет 100% моего процессора при конвертации
Вы всегда можете выполнить FFmpeg с nice
, Что-то вроде этого…
shell_exec('nice -n 15 ffmpeg...
Обратите внимание, что ваша система может фактически нуждаться в каком-либо другом ресурсе, например, дисковых операциях ввода-вывода. использование top
выяснить.
Это произошло потому, что вы не отправили процесс FFMPEG в фоновый режим. Вы можете сделать это с помощью nohup.
shell_exec("nohup ffmpeg (...) > foo.out 2> foo.err < /dev/null &");