【问题标题】:cpulimit cause ffmpeg to run in backgroundcpulimit 导致 ffmpeg 在后台运行
【发布时间】:2016-02-18 06:51:04
【问题描述】:

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

所以我的问题是是否有办法阻止这种情况发生?

【问题讨论】:

    标签: linux ubuntu ffmpeg command


    【解决方案1】:

    cpulimit 向任务发送 SIGSTOP 和 SIGCONT 信号以使它们保持在阈值以下 - 我认为这不适用于 ffmpeg,因为它一直使用大量 CPU。

    您可以在其上设置niceness,使其成为低优先级任务,允许其他进程以更高优先级运行。

    您还可以使用控制组 (cgroups) 来限制进程可用的资源。

    【讨论】:

    • 我忘了提到我在切换到 ffmpeg 之前一直在使用 avconv,只是因为 avconv 不支持 -hls_key_info_file,而 avconv 与 cpulimit 完美配合。在解决这个问题几个小时后,我决定切换回 avconv。感谢您花时间回答我的问题,如果我以后跳回 ffmpeg,我会尝试这些。
    猜你喜欢
    • 2013-05-07
    • 2010-11-14
    • 1970-01-01
    • 2011-04-14
    • 2021-06-15
    • 1970-01-01
    • 2022-01-21
    • 2017-08-24
    • 2021-09-07
    相关资源
    最近更新 更多