FFMPEG делает мой сайт вниз при конвертации видео - PullRequest
0 голосов
/ 03 июля 2018

У меня есть upload.php скрипт для загрузки и конвертации видео, где я использую FFMPEG. (LAMP 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% моего процессора при конвертации

enter image description here

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Это произошло из-за того, что вы не отправили процесс FFMPEG в фоновый режим. Вы можете сделать это с помощью nohup.

shell_exec("nohup ffmpeg (...)  > foo.out 2> foo.err < /dev/null &");
0 голосов
/ 03 июля 2018

Вы всегда можете выполнить FFmpeg с nice. Как то так ...

shell_exec('nice -n 15 ffmpeg...

Обратите внимание, что ваша система может фактически нуждаться в каком-либо другом ресурсе, например, дисковых операциях ввода-вывода. Используйте top, чтобы узнать.

...