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"但输出扩展名仍然mp4mkv


附加要求:
这不是问题的一部分,但如果你们中的任何人可以帮助我进一步改进脚本,以便将输出保存到DEST=~/hbCLI/dest/$PRESET而不是意味着DEST=~/hbCLI/dest将输出保存到具有预设名称的文件夹中,如果它不存在 - 创建该文件夹。

谢谢!

相关内容