使用cpulimit和PHP减少FFmpeg CPU的使用
我使用PHP使用cpulimit和PHP减少FFmpeg CPU的使用,php,ffmpeg,Php,Ffmpeg,我使用PHPexec()在服务器上运行 它当前在编码时使用100%的cpu线程 我使用了一个名为的程序将其降低到30% PHP $args = "nice -19 cpulimit -l 30 -- ffmpeg -y -i intput.avi -vcodec libx264 -acodec aac -b:a 192k -threads 1 output.mp4" exec(escapeshellcmd($args)); FFmpeg/PHP工作,它将通过终端与nice/cpulimit一
exec()
在服务器上运行
它当前在编码时使用100%的cpu线程
我使用了一个名为的程序将其降低到30%
PHP
$args = "nice -19 cpulimit -l 30 -- ffmpeg -y -i intput.avi -vcodec libx264 -acodec aac -b:a 192k -threads 1 output.mp4"
exec(escapeshellcmd($args));
FFmpeg/PHP工作,它将通过终端与nice
/cpulimit
一起工作,但在添加nice-19 cpulimit-l 30--
到它不再与exec()一起工作的PHP脚本
输出
FFmpeg输出返回空白。我无法看到完整的输出,我尝试使用:
$output = shell_exec($args);
echo "<p>$output</p>"
但是他们返回一个空行
解决方案
我的想法是www数据运行FFmpeg并且nice
/cpulimit
可能需要root
如何让PHPexec()
与FFmpeg参数和cpulimit一起工作
或者是否有其他方法限制使用%?如果启用了安全模式,则程序的执行将受到限制。查看这里的文档,我使用谷歌翻译在论坛帖子上找到了答案
如果使用nice
或cpulimit
nice -19 cpulimit -l 30 /usr/local/bin/ffmpeg -i ...
现在它通过PHPexec()
工作,您限制此进程的CPU使用的目标是什么?请记住,使用cpulimit
将进程的CPU利用率限制在30%将使完成任务所需的时间延长约3倍…@Dashwuff使用一台带有1个CPU和1个线程的服务器,而使用100%的FFmpeg,会不会减慢网站的其余部分?这就是nice
的目的。如果其他进程正在运行,使用nice
降低一个进程的优先级将使其“让开”;除非没有其他需要运行的东西,否则它不会使用100%的CPU。@Dashwuff使用ffmpeg和php运行nice的正确方法是什么?当我执行'nice-19--ffmpeg…'或'nice-19 ffmpeg…'时,它会给出相同的空白输出。
nice -19 cpulimit -l 30 /usr/local/bin/ffmpeg -i ...