我尝试使用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的进程IDps -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
所以我的问题是,无论如何都要阻止这种情况发生?
答案 0 :(得分:0)
cpulimit
向任务发送SIGSTOP和SIGCONT信号以使它们低于阈值 - 我认为这不适用于ffmpeg,因为它一直使用大量的CPU。
您可以在其上设置nice
,因此它是一项低优先级任务,允许其他进程以更高的优先级运行。
您还可以使用控制组(cgroups)来限制流程可用的资源。