如何自动化 Handbrake 以监视和编码文件夹中的新文件?

Eth*_*len 5 windows-7 iso-image handbrake matroska

这是我想在 Windows 7 中执行的操作:

  1. 监视新 ISO 文件(蓝光 ISO)的文件夹。
  2. 当检测到新文件时,在后台启动 Handbrake 并根据保存质量/文件名/位置的特定配置文件将 ISO 编码为 MKV(这是否需要安装 ISO?)
  3. 如果 Handbrake 已经在执行操作,请将检测到的新 ISO 添加到某种类型的 Handbrake 队列中。

我不知道从哪里开始。一些问题:

  • 我应该得到一些文件监控软件来启动一个可以工作的 VBScript 吗?
  • 可以在后台或通过控制台启动 Handbrake 来执行我想要它做什么吗?
  • 有没有办法将手刹添加到队列中,或者至少检测作业何时完成?
  • 如果我必须安装每个 ISO,我该如何自动执行此操作?

寻找有关如何实现这一目标的想法。

tbe*_*nz9 2

我曾经做过类似你正在寻找的事情。这是一个非常基本的循环,用于搜索所有具有 .iso 扩展名的文件。然后,它将它们编码为带有 .mp4 扩展名的 Xbox 360 预设。将该文件另存为 .bat,然后您可以运行它来对文件进行编码。

@echo off
for %%f in (*.iso) do (
    M:\HandBrakeCLI -i 'M:\encode\%%f' -o 'M:\encode\%%f.mp4' -Z 'Xbox 360' -S '700' -2 -T -L
)
pause
Run Code Online (Sandbox Code Playgroud)

请注意,上述脚本将对 M:\encode\ 文件夹中的每个文件进行编码,因此您需要添加更多代码。一种选择是在编码后将文件移出该目录,另一种选择是检查文件是否已经编码。

一旦您获得了所需的脚本,您就可以设置 Windows Scheduler 以设定的时间间隔运行该脚本。我每天晚上午夜运行一次,但如果你想要更快的结果,你可以让它每 10 分钟运行一次(只要确保它不会在编码时间超过 10 分钟时再次开始编码电影)。

从那时起,我已经切换到 Linux,我的 Linux 脚本使用了更多的逻辑,您可能会觉得有用。该脚本检查文件是否已被编码(如果存在),如果存在,则跳过它。恐怕我在 Batch 方面不够擅长,如果没有一些研究就无法编写这个逻辑,但我知道这是可能的。

#### Checks if .mov file exists and encodes it if it does not exist ####
for file in *.ISO
do
    if [ -f /raid/mp4/${file%.*}.mov ] || [ -f /raid/mp4/${file%.*}.ISO.mov ]
    then
        echo "Already Encoded ${file}"
    else
        echo /media/raid/mp4/"${file%.*}.mov"
        HandBrakeCLI -i "${file}" --main-feature -o /media/raid/mp4/"${file%.*}.mov" -f mp4 -O --strict-anamorphic -e x264 -q 20 -a 1 -E faac -6 dpl2 -R Auto -B 160 -D 0.0 --markers="${file}-chapters.csv" -x ref=2:bframes=2:subq=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0 --verbose=1
    fi
done
Run Code Online (Sandbox Code Playgroud)

回答您的问题:

  1. 我建议只按计划运行脚本,而不是添加软件。
  2. 两者都可以,背景可能是最方便的。
  3. 我认为它们是一种对文件进行排队的方法,我只是串行运行它,即一次运行一个直到完成,
  4. 不,Handbrake 不需要安装这些文件。