FFMPEG在转换视频时使我的网站关闭

时间:2018-07-03 04:11:59

标签: php ffmpeg ubuntu-16.04 cpu

我有一个upload.php脚本,用于上传和转换使用FFMPEG的视频。 (LAMP Ubuntu 16.04)

但是,一旦FFMPEG开始转换视频,所有网站都将变得无响应,所以我想FFMPEG会占用我所有的CPU。

这是我用来转换源视频的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的CPU资源?

谢谢

编辑:

我尝试使用-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%的CPU

enter image description here

2 个答案:

答案 0 :(得分:0)

您始终可以使用nice执行FFmpeg。像这样...

shell_exec('nice -n 15 ffmpeg...

请注意,您的系统可能实际上缺少某些其他资源,例如磁盘I / O。使用top进行查找。

答案 1 :(得分:0)

发生这种情况是因为您没有将FFMPEG进程发送到后台。您可以使用nohup来做到这一点。

shell_exec("nohup ffmpeg (...)  > foo.out 2> foo.err < /dev/null &");