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

Спасибо!

0