С помощью многочисленных обсуждений в сети SE и других местах мне наконец удалось создать рабочий скрипт, который работает хорошо, за исключением предустановок Matroska. Я понимаю, что проблема в самом скрипте, так как он указывает расширение назначения как MP4.
Я ноль опыта в bash и не смог понять, как улучшить скрипт, так что вместо предварительной установки расширения вывода он будет принимать расширения, указанные вофициальные пресеты.
Большинство контейнеров предустановок — MP4, поэтому они работают с большинством предустановок, кроме MKV. Вот пример скрипта, который работает с MP4:
#!/bin/bash
# Configure these as needed
SRC=~/hbCLI/src
DEST=~/hbCLI/dest
DEST_EXT=mp4
HANDBRAKE_CLI=HandBrakeCLI
PRESET="Fast 480p30"
IFS=$(echo -en "\n\b")
# The script itself
for FILE in `ls $SRC`
do
filename=$(basename $FILE)
extension=${filename##*.}
filename=${filename%.*}
$HANDBRAKE_CLI -i $SRC/$FILE -o $DEST/$filename.$DEST_EXT --preset="$PRESET" --optimize --two-pass
done
Однако для пресетов Matroska мне нужно изменить только строку PRESET="Fast 480p30"
на , PRESET="H.264 MKV 480p30"
но выходное расширение по-прежнему будет mp4
вместо mkv
.
Дополнительный запрос:
Это не часть вопроса, но если кто-нибудь из вас мог бы помочь мне улучшить скрипт дальше, чтобы вывод сохранялся в папку с заданным именем, DEST=~/hbCLI/dest/$PRESET
а не DEST=~/hbCLI/dest
в папку с предустановленным именем, если ее нет - создайте папку.
Спасибо!