如果Mac计算机上有可用资源,我需要编写一个代码转发脚本来发出适当的ffmpeg
命令。该机器是2 x 2.66 GHz 6核。基本上我想要使用的逻辑是:
[cron every x minutes]
if available_cores:
pull front file in queue and transcode
else:
pass
我如何检查是否有可用的处理单元来运行ffmpeg
?
答案 0 :(得分:3)
使用Unix给你的东西:)我建议经常未知的batch
程序(at
的一部分),当负载平均值低于特定阈值时,它会调用争论程序,把他们排在队列中。 man batch
答案 1 :(得分:1)
我将使用uptime命令中的平均负载,如果负载足够低,则启动一个。没有可能是空闲核心,因为任何现代系统都有足够的随机低优先级的东西在后台运行,你永远不会看到一个完全空闲的低。因此,寻找低负载平均值并基于此。
答案 2 :(得分:1)
/ proc / cpuinfo将为您提供核心数
所以你可以阅读它并提取核心数。
然后执行进程列表并计算FFMPEG进程。
从另一个中减去一个,你的状态非常好。
应该给你有条件的。
或者通过正常运行时间查看负载,并根据显示的值执行条件化。
在SMP下,unix中还有一个进程对CPU的亲和力。
查看工具任务集。您可能希望在/ var somewhere中设置进程ID跟踪器,然后管理与脚本的关联。