使用cpulimit和PHP减少FFmpeg CPU的使用

使用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一

我使用PHP
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

如何让PHP
exec()
与FFmpeg参数和cpulimit一起工作


或者是否有其他方法限制使用%?

如果启用了安全模式,则程序的执行将受到限制。查看这里的文档,

我使用谷歌翻译在论坛帖子上找到了答案

如果使用
nice
cpulimit

nice -19 cpulimit -l 30 /usr/local/bin/ffmpeg -i ...

现在它通过PHP
exec()

工作,您限制此进程的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 ...