Помощь скрипта пакетной конвертации Handbrake для установки выходного расширения, указанного в официальных пресетах

Помощь скрипта пакетной конвертации Handbrake для установки выходного расширения, указанного в официальных пресетах

С помощью многочисленных обсуждений в сети 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в папку с предустановленным именем, если ее нет - создайте папку.

Спасибо!

Связанный контент