以下是我想在 Windows 7 中做的事情:
- 监视文件夹中的新 ISO 文件(蓝光 ISO)。
- 当检测到新文件时,在后台启动 Handbrake 并根据保存质量/文件名/位置的特定配置文件将 ISO 编码为 MKV(这需要安装 ISO 吗?)
- 如果 Handbrake 已在执行操作,则将检测到的新 ISO 添加到某种 Handbrake 队列中。
我不知道从哪里开始。一些问题:
- 我是否应该获取一些可以启动 VBScript 来完成这项工作的文件监控软件?
- Handbrake 可以在后台或通过控制台启动来执行我想要的操作吗?
- 有没有办法将其添加到 Handbrake 的队列中,或者至少检测作业何时完成?
- 如果我必须安装每个 ISO,我该如何自动完成此操作?
寻找如何实现这一目标的想法。
答案1
我曾经做过类似你正在寻找的事情。这是一个非常基本的循环,它搜索所有带有 .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
请注意,上述脚本将对 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
回答您的问题:
- 我建议只按计划运行脚本,而不是添加软件。
- 两种方法都可以,但背景可能是最方便的。
- 我认为他们有一种排队文件的方法,我只是按顺序运行它,即一次运行一个,直到完成,
- 不,Handbrake 不需要安装文件。