我尝试使用cpulimit来限制ffmpeg进程,但它似乎会导致ffmpeg在后台运行
首先,在第一个命令控制台中,我启动ffmpeg并禁用所有输出
ffmpeg -i "Avengers2mp4" -hls_list_size 0 -hls_key_info_fil file.keyinfo -nostdin -loglevel quiet -threads 0 "out.m3u8"接下来,我打开另一个命令控制台,通过以下命令查找ffmpeg的进程ID
ps -a
PID TTY TIME CMD
1359 pts/0 00:00:02 ffmpeg
1364 pts/3 00:00:00 ps我使用的是CPUlimit 2.0版,我的服务器有3个核心,所以我使用以下命令将限制设置为150 (可用资源的50%
cpulimit -l 150 -p "1359"
在第一个命令控制台上的结果是,它显示
[0]+ Stopped ffmpeg -i "Avengers2.mp4" -hls_list_size 10000 -hls_key_info_file file.keyinfo -nostdin -loglevel quiet -threads 0 "out.m3u8"
root@hosted-by:~/test#和检查,ffmpeg仍在运行
ps -a
PID TTY TIME CMD
1359 pts/0 00:00:23 ffmpeg
1364 pts/3 00:00:00 ps所以我的问题是,有没有办法阻止这种情况的发生?
发布于 2015-11-17 13:49:42
cpulimit向任务发送SIGSTOP和SIGCONT信号,使它们低于阈值-我假设这在ffmpeg中不起作用,因为它总是使用大量的CPU。
您可以在它上面设置niceness,这样它就是一个低优先级的任务,从而允许其他进程以更高的优先级运行。
您还可以使用控制组(cgroups)来限制进程可用的资源。
https://stackoverflow.com/questions/33747815
复制相似问题