videoscripts/handbrake-batch.sh

57 lines
1.5 KiB
Bash
Raw Normal View History

2021-11-01 22:51:42 -04:00
#!/bin/bash
# Copyright ©2018 Paco Hope
# See attached LICENSE.md file
#
# Config Variables
SRCDIR="/Volumes/Movies/Library/Home Movies"
DESTBASE="/Volumes/Shared/Movies/converted"
HANDBRAKE_CLI="/Users/paco/bin/HandBrakeCLI"
# The name of the preset, as you see it in the HandBrake window
PRESET="Fast 720p30"
FILEEXT="mp4"
### --- You shouldn't need to configure stuff below here. --- ###
export IFS="
"
# cd to the starting point
cd "${SRCDIR}"
# I'm searching for anything named .AVI, .avi, .MOV, or .mov
for FILE in $(find * -type f \( -iname '*avi' -o -iname '*mov' \))
do
filename="$(basename "${FILE}")"
dirname="$(dirname "${FILE}")"
DESTDIR="${DESTBASE}/${dirname}"
# If we need to make the destination directory,k do it.
if [ ! -d "${DESTDIR}" ]
then
echo "making \"${DESTDIR}\""
mkdir -p "${DESTDIR}"
fi
extension="${filename##*.}"
filename="${filename%.*}"
DESTFILE="${DESTDIR}/${filename}.${FILEEXT}"
# If the file doesn't already exist, let's run a conversion
if [ ! -r "${DESTFILE}" ]
then
$HANDBRAKE_CLI --verbose=0 \
-2 -i "${FILE}" \
-o "${DESTFILE}" \
--preset="${PRESET}"
# If the command was successful, set the file modification and creation
# times to be the same as the source file.
if [ -r "${DESTFILE}" ]
then
touch -a -m -r "${FILE}" "${DESTFILE}"
fi
else
# Already exists. Just warn and move on.
echo "\"${DESTFILE}\" exists. Skipping."
fi
done