5

Вот что я хотел бы сделать в Windows 7:

  1. Отслеживайте папку для новых файлов ISO (Blu-ray ISO).
  2. Когда обнаружен новый файл, запустите Handbrake в фоновом режиме и закодируйте ISO в MKV на основе определенного профиля сохранения качества / имени файла / местоположения (требуется ли для этого установка ISO?)
  3. Если Handbrake уже выполняет операцию, добавьте новый обнаруженный ISO в очередь Handbrake какого-либо типа.

Я не знаю, с чего начать. Некоторые вопросы:

  • Должен ли я получить программное обеспечение для мониторинга файлов, которое запускает VBScript, который работает?
  • Можно ли запустить Handbrake в фоновом режиме или через консоль, чтобы сделать то, что я хочу?
  • Есть ли способ добавить в очередь для Handbrake или хотя бы определить, когда работа была завершена?
  • Если мне нужно смонтировать каждый ISO, как я могу сделать это также автоматически?

Ищете идеи о том, как этого добиться.

1 ответ1

2

Я делал что-то вроде того, что вы искали. Это очень простой цикл, который ищет все файлы с расширением .iso. Затем он кодирует их в пресет Xbox 360 с расширением .mp4. Сохраните этот файл как .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 на запуск сценария с заданным интервалом. Я запускаю мой каждую ночь в полночь, но если вам нужны более быстрые результаты, вы можете запускать его каждые 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

Чтобы ответить на ваши вопросы:

  1. Я бы порекомендовал просто запустить скрипт по расписанию, а не добавлять программное обеспечение.
  2. Либо будет работать, фон, вероятно, наиболее удобный.
  3. Я думаю, что это способ ставить в очередь файлы, я просто запускаю его последовательно, то есть по одному, пока это не будет сделано,
  4. Нет, Handbrake не требует монтирования файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .