使用HandBrakeCLI的CPU过热

问题描述 投票:0回答:1

我最近开始使用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的批处理文件中并执行BES,我尝试使用os.system("BES_1.7.7\BES.exe -J -m exec.exe 20")(Battle Encoder Shirase),但是这根本不起作用。

速度一点都不重要。即使花费更长的时间,我也只想使用更少的CPU,大约50%的内存就可以了。关于我该怎么做的任何想法?

python cpu command-prompt heat handbrake
1个回答
0
投票

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

您可以使用threads,查看Handbrake CLI Documentation

使用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

看看是否有帮助。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.