ハンドブレーキのバッチ変換スクリプトは、公式プリセットで指定された出力拡張子を設定するのに役立ちます。

ハンドブレーキのバッチ変換スクリプトは、公式プリセットで指定された出力拡張子を設定するのに役立ちます。

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

PRESET="Fast 480p30"ただし、Matroska プリセットの場合は、 の行を に変更するだけで済みますPRESET="H.264 MKV 480p30"が、出力拡張子は ではmp4なく のままですmkv


追加リクエスト:
DEST=~/hbCLI/dest/$PRESET質問の一部ではありませんが、スクリプトをさらに改善して、出力が保存されるのではなく、プリセット名のフォルダーに保存さ れるように手伝ってくれる方がいらっしゃいましDEST=~/hbCLI/destたら、フォルダーが存在しない場合は作成してください。

ありがとうございます!

関連情報