Fix names with spaces
Signed-off-by: James Ketrenos <jketreno@media.ketrenos.com>
This commit is contained in:
parent
6c95fc0765
commit
3bb489b3ad
@ -2,8 +2,12 @@
|
||||
# Look into HW video encoding to vp9 instead of h264:
|
||||
# https://www.reddit.com/r/VP9/comments/g9uzzv/hardware_encoding_vp9_on_intel/
|
||||
|
||||
log_file=""
|
||||
fail() {
|
||||
echo "$*" >&2
|
||||
if [[ -e ${log_file} ]]; then
|
||||
rm ${log_file}
|
||||
fi
|
||||
exit -1
|
||||
}
|
||||
|
||||
@ -50,10 +54,16 @@ mstodate() {
|
||||
|
||||
function move {
|
||||
base="$(dirname "${IN}")"
|
||||
[ ! -d "${base}" ] && continue
|
||||
base=/remote/media/backup/"${base}"
|
||||
[ ! -d "${base}" ] && mkdir -p "${base}" || fail "Unable to mkdir '${base}'"
|
||||
[ -e "${base}" ] && mv "${IN}" "${base}"/ || fail "Unable to move '$IN'"
|
||||
if [ ! -d "${base}" ]; then
|
||||
continue
|
||||
fi
|
||||
base=/multimedia/backup"${base}"
|
||||
if [ ! -d "${base}" ]; then
|
||||
mkdir -p "${base}" || fail "Unable to mkdir '${base}'"
|
||||
fi
|
||||
if [ -d "${base}" ]; then
|
||||
mv "${IN}" "${base}"/ || fail "Unable to move '$IN'"
|
||||
fi
|
||||
}
|
||||
|
||||
function convert {
|
||||
@ -61,13 +71,15 @@ function convert {
|
||||
SRC_CODEC="$2"
|
||||
FORMAT="$3"
|
||||
OUT="${IN/%.???/.mkv}"
|
||||
ORIG=${OUT}
|
||||
IN="$(realpath "${IN}")"
|
||||
OUT="$(realpath "${OUT}")"
|
||||
ORIG="${OUT}"
|
||||
if [[ "${OUT}" == "${IN}" ]]; then
|
||||
OUT=${OUT/.mkv/.transcoded.mkv}
|
||||
OUT="${OUT/.mkv/.transcoded.mkv}"
|
||||
[ -e "${OUT}" ] && rm "${OUT}"
|
||||
else
|
||||
[ -e "${OUT}" ] && move && return 0
|
||||
[ -e /remote/media/backup/"${OUT}" ] && return 0
|
||||
[ -e /multimedia/backup/"${OUT}" ] && return 0
|
||||
fi
|
||||
|
||||
TITLE="${IN%.*}"
|
||||
@ -94,7 +106,7 @@ function convert {
|
||||
-c copy
|
||||
-vf vpp_qsv=format=nv12
|
||||
-c:v h264_qsv
|
||||
-global_quality 25
|
||||
-global_quality 20
|
||||
"
|
||||
fi
|
||||
|
||||
@ -106,24 +118,23 @@ function convert {
|
||||
STARTTIME=$(date +%s)
|
||||
LASTTIME=${STARTTIME}
|
||||
LASTPOS=0
|
||||
IN=$(realpath "${IN}")
|
||||
OUT=$(realpath "${OUT}")
|
||||
DIN=$(dirname "${IN}")
|
||||
DOUT=$(dirname "${OUT}")
|
||||
DIN="$(dirname "${IN}")"
|
||||
DOUT="$(dirname "${OUT}")"
|
||||
quiet="
|
||||
-v quiet
|
||||
-loglevel fatal
|
||||
-loglevel error
|
||||
"
|
||||
# quiet=""
|
||||
|
||||
log_file=$(mktemp)
|
||||
{
|
||||
docker run \
|
||||
--device=/dev/dri \
|
||||
--user=$(id -u) \
|
||||
--rm \
|
||||
${ADD_GROUPS} \
|
||||
-v "${DIN}:${DIN}" \
|
||||
-v "${DOUT}:${DOUT}" \
|
||||
-v "${DIN}":"${DIN}" \
|
||||
-v "${DOUT}":"${DOUT}" \
|
||||
intel-media-ffmpeg \
|
||||
ffmpeg \
|
||||
${quiet} \
|
||||
@ -135,22 +146,25 @@ function convert {
|
||||
${output_flags} \
|
||||
-movflags +faststart \
|
||||
"${OUT}" \
|
||||
-y || echo "ffmpeg failed"
|
||||
-y || echo "FFMPEG failed" | tee ${log_file}
|
||||
} | while read line; do
|
||||
if [[ "${line}" == "ffmpeg failed" ]]; then
|
||||
fail "FFMPEG failed"
|
||||
cat ${log_file}
|
||||
fail "Terminating"
|
||||
false
|
||||
exit -1
|
||||
break
|
||||
fi
|
||||
POS=$(echo $line | sed -n 's/^frame=*\(.*\)/\1/p')
|
||||
if [[ "${POS}" == "" ]]; then
|
||||
true
|
||||
continue
|
||||
fi
|
||||
|
||||
NOW=$(date +%s)
|
||||
ELAPSEDTIME=$(( NOW - LASTTIME ))
|
||||
if (( ELAPSEDTIME <= 5 )); then
|
||||
true
|
||||
continue
|
||||
fi
|
||||
|
||||
@ -174,6 +188,7 @@ function convert {
|
||||
mv "${OUT}" "${IN}" || fail "Unable to mv '${OUT}' -> '${IN}'"
|
||||
fi
|
||||
}
|
||||
rm ${log_file}
|
||||
NOW=$(date +%s)
|
||||
echo -e "\nCompleted in $(mstodate $(( NOW - STARTTIME ))000)"
|
||||
}
|
||||
@ -199,6 +214,8 @@ function check_and_convert {
|
||||
}
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
find . -name '* *' -type d | while read file; do mv "${file}" "${file// /_}" || fail "Unable to rename dir ${file}"; done
|
||||
find . -name '* *' -type f | while read file; do mv "${file}" "${file// /_}" || fail "Unable to rename file ${file}"; done
|
||||
find . -type f \
|
||||
-and -not -path "./backup/*" | sort | while read file; do
|
||||
check_and_convert "${file}"
|
||||
@ -208,3 +225,11 @@ else
|
||||
check_and_convert "${file}"
|
||||
done
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
To transfer the updated files:
|
||||
|
||||
rsync -avprlP --remove-source-files /multimedia/Downloads/ azurite:/multimedia/
|
||||
find /multimedia/Downloads/ -type d -empty -delete
|
||||
|
||||
EOF
|
||||
|
Loading…
x
Reference in New Issue
Block a user