首页 > 解决方案 > 如何使手刹使用强度较小的cpu?

问题描述

我最近开始使用 HandBrake 来处理我下载的一些视频,以使它们更轻。我使用 CLI 版本构建了一个小型 python GUI 程序来自动化处理。我正在做的是根据视频生成命令并使用 os.system 执行它。像这样的东西:

import os

def process(args):
    #some algorithm to generate cmd using args
    cmd = "handbrakecli -i raw_video.mp4 -o video.mp4 -O -e x264" #example command
    os.system(cmd)
    os.remove("raw_video.mp4")

该代码运行良好,但问题是我的 CPU 过度使用。通常,这会在相当长的时间内占用 100% 的 CPU 使用率。我使用程序 CoreTemp 来跟踪我的处理器温度,通常它会达到 78 °C。

我尝试通过将 cmd 命令保存到一个名为 exec.bat 的批处理文件中来使用BESos.system("BES_1.7.7\BES.exe -J -m exec.exe 20") (Battle Encoder Shirase) ,但这根本没有任何作用。

速度根本不重要。即使需要更长的时间,我只想使用更少的 CPU,大约 50% 会很棒。知道我该怎么做吗?

标签: handbrake

解决方案


在 Handbrake 中,您可以传递高级参数,因此您只使用一定数量的 CPU 线程。

您可以使用threads,查看Handbrake CLI 文档

使用时,threads您可以指定要使用的任意数量的 CPU 处理器。默认值为auto.

-x参数代表 Handbrake 的 GUI 中的高级设置,这就是threads要去的地方。

下面告诉 Handbrake 只使用一个 CPU 线程进行高级设置:

 -x threads=1

您还可以使用veryslow设置--encoder-preset来帮助 CPU 负载。

--encoder-preset=veryslow

我实际上更喜欢使用--encoder-preset=veryslow预设,因为我看到编码的整体质量更好。

两者一起:

--encoder-preset=veryslow -x threads=1

cmd所以用你的变量格式化:

cmd = "handbrakecli -i raw_video.mp4 -o video.mp4 -O -e x264 --encoder-preset=veryslow -x threads=1" #example command

看看是否有帮助。


推荐阅读