手煞車批次轉換腳本協助設定官方預設指定的輸出副檔名

手煞車批次轉換腳本協助設定官方預設指定的輸出副檔名

在 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輸出將保存到具有預設名稱的資料夾中(如果不存在) - 創建該資料夾。

謝謝你!

相關內容