我尝试了这个脚本,其他人也喜欢它,但我想转换递归目录树并将文件放在同一目录中,扩展名为 .mp4 并删除 .avi 文件,经过多次试验和错误,我放弃了这段代码并搜索一个新的代码,我想记下
http://www.surlyjake.com/blog/2010/08/10/script-to-run-handbrake-recursively-through-a-folder-tree/
对于原始代码!
这是我修改后的脚本,顺便说一句,这个脚本简短、甜美且易于理解。
#!/bin/bash
# This Script Goes in Root Folder of TV show -- Example Folder Structure
# /Stargate/Season\ 1/Epiosde.avi
# /Stargate/Season\ 2/Epiosde.avi
# /Stargate/handbrake_folder.script
# Outputs all Files back inside same dir's and does all folders inside Startgate DIR
# /Stargate/Season\ 1/Epiosde.mp4
# /Stargate/Season\ 2/Epiosde.mp4
# PRESET = -o flags for CLI can be got from GUI under Activity Log or from https://trac.handbrake.fr/wiki/CLIGuide OR you can use actual Presets!
# PRESET="iPhone & iPod Touch"
PRESET="--modulus 2 -e x264 -q 20 --vfr -a 1 -E ac3 -6 5point1 -R Auto -B 384 -D 0 --gain 0 --audio-fallback ac3 --encoder-preset=veryfast --encoder-level="5.2" --encoder-profile=high --verbose=1"
if [ -z "$1" ] ; then
TRANSCODEDIR="."
else
TRANSCODEDIR="$1"
fi
find "$TRANSCODEDIR"/* -type f -name "*.avi" -exec bash -c 'HandBrakeCLI -i "$1" -o "${1%\.*}".mp4 --preset="$PRESET"' __ {} \; && find . -name '*.avi' -exec rm -r {} \;
请注意:这将转换然后删除文件树中脚本上方的所有 .AVI 文件!
随意删除
[-name "*.avi"] & [&& find . -name '*.avi' -exec rm -r {} \;]
禁用仅转换 .avi 和删除 .avi 或修改以适应另一个扩展。