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:
|
# Look into HW video encoding to vp9 instead of h264:
|
||||||
# https://www.reddit.com/r/VP9/comments/g9uzzv/hardware_encoding_vp9_on_intel/
|
# https://www.reddit.com/r/VP9/comments/g9uzzv/hardware_encoding_vp9_on_intel/
|
||||||
|
|
||||||
|
log_file=""
|
||||||
fail() {
|
fail() {
|
||||||
echo "$*" >&2
|
echo "$*" >&2
|
||||||
|
if [[ -e ${log_file} ]]; then
|
||||||
|
rm ${log_file}
|
||||||
|
fi
|
||||||
exit -1
|
exit -1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,10 +54,16 @@ mstodate() {
|
|||||||
|
|
||||||
function move {
|
function move {
|
||||||
base="$(dirname "${IN}")"
|
base="$(dirname "${IN}")"
|
||||||
[ ! -d "${base}" ] && continue
|
if [ ! -d "${base}" ]; then
|
||||||
base=/remote/media/backup/"${base}"
|
continue
|
||||||
[ ! -d "${base}" ] && mkdir -p "${base}" || fail "Unable to mkdir '${base}'"
|
fi
|
||||||
[ -e "${base}" ] && mv "${IN}" "${base}"/ || fail "Unable to move '$IN'"
|
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 {
|
function convert {
|
||||||
@ -61,13 +71,15 @@ function convert {
|
|||||||
SRC_CODEC="$2"
|
SRC_CODEC="$2"
|
||||||
FORMAT="$3"
|
FORMAT="$3"
|
||||||
OUT="${IN/%.???/.mkv}"
|
OUT="${IN/%.???/.mkv}"
|
||||||
ORIG=${OUT}
|
IN="$(realpath "${IN}")"
|
||||||
|
OUT="$(realpath "${OUT}")"
|
||||||
|
ORIG="${OUT}"
|
||||||
if [[ "${OUT}" == "${IN}" ]]; then
|
if [[ "${OUT}" == "${IN}" ]]; then
|
||||||
OUT=${OUT/.mkv/.transcoded.mkv}
|
OUT="${OUT/.mkv/.transcoded.mkv}"
|
||||||
[ -e "${OUT}" ] && rm "${OUT}"
|
[ -e "${OUT}" ] && rm "${OUT}"
|
||||||
else
|
else
|
||||||
[ -e "${OUT}" ] && move && return 0
|
[ -e "${OUT}" ] && move && return 0
|
||||||
[ -e /remote/media/backup/"${OUT}" ] && return 0
|
[ -e /multimedia/backup/"${OUT}" ] && return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TITLE="${IN%.*}"
|
TITLE="${IN%.*}"
|
||||||
@ -94,7 +106,7 @@ function convert {
|
|||||||
-c copy
|
-c copy
|
||||||
-vf vpp_qsv=format=nv12
|
-vf vpp_qsv=format=nv12
|
||||||
-c:v h264_qsv
|
-c:v h264_qsv
|
||||||
-global_quality 25
|
-global_quality 20
|
||||||
"
|
"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -106,24 +118,23 @@ function convert {
|
|||||||
STARTTIME=$(date +%s)
|
STARTTIME=$(date +%s)
|
||||||
LASTTIME=${STARTTIME}
|
LASTTIME=${STARTTIME}
|
||||||
LASTPOS=0
|
LASTPOS=0
|
||||||
IN=$(realpath "${IN}")
|
DIN="$(dirname "${IN}")"
|
||||||
OUT=$(realpath "${OUT}")
|
DOUT="$(dirname "${OUT}")"
|
||||||
DIN=$(dirname "${IN}")
|
|
||||||
DOUT=$(dirname "${OUT}")
|
|
||||||
quiet="
|
quiet="
|
||||||
-v quiet
|
-v quiet
|
||||||
-loglevel fatal
|
-loglevel error
|
||||||
"
|
"
|
||||||
# quiet=""
|
# quiet=""
|
||||||
|
|
||||||
|
log_file=$(mktemp)
|
||||||
{
|
{
|
||||||
docker run \
|
docker run \
|
||||||
--device=/dev/dri \
|
--device=/dev/dri \
|
||||||
--user=$(id -u) \
|
--user=$(id -u) \
|
||||||
--rm \
|
--rm \
|
||||||
${ADD_GROUPS} \
|
${ADD_GROUPS} \
|
||||||
-v "${DIN}:${DIN}" \
|
-v "${DIN}":"${DIN}" \
|
||||||
-v "${DOUT}:${DOUT}" \
|
-v "${DOUT}":"${DOUT}" \
|
||||||
intel-media-ffmpeg \
|
intel-media-ffmpeg \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
${quiet} \
|
${quiet} \
|
||||||
@ -135,22 +146,25 @@ function convert {
|
|||||||
${output_flags} \
|
${output_flags} \
|
||||||
-movflags +faststart \
|
-movflags +faststart \
|
||||||
"${OUT}" \
|
"${OUT}" \
|
||||||
-y || echo "ffmpeg failed"
|
-y || echo "FFMPEG failed" | tee ${log_file}
|
||||||
} | while read line; do
|
} | while read line; do
|
||||||
if [[ "${line}" == "ffmpeg failed" ]]; then
|
if [[ "${line}" == "ffmpeg failed" ]]; then
|
||||||
fail "FFMPEG failed"
|
cat ${log_file}
|
||||||
|
fail "Terminating"
|
||||||
false
|
false
|
||||||
exit -1
|
exit -1
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
POS=$(echo $line | sed -n 's/^frame=*\(.*\)/\1/p')
|
POS=$(echo $line | sed -n 's/^frame=*\(.*\)/\1/p')
|
||||||
if [[ "${POS}" == "" ]]; then
|
if [[ "${POS}" == "" ]]; then
|
||||||
|
true
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
NOW=$(date +%s)
|
NOW=$(date +%s)
|
||||||
ELAPSEDTIME=$(( NOW - LASTTIME ))
|
ELAPSEDTIME=$(( NOW - LASTTIME ))
|
||||||
if (( ELAPSEDTIME <= 5 )); then
|
if (( ELAPSEDTIME <= 5 )); then
|
||||||
|
true
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -174,6 +188,7 @@ function convert {
|
|||||||
mv "${OUT}" "${IN}" || fail "Unable to mv '${OUT}' -> '${IN}'"
|
mv "${OUT}" "${IN}" || fail "Unable to mv '${OUT}' -> '${IN}'"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
rm ${log_file}
|
||||||
NOW=$(date +%s)
|
NOW=$(date +%s)
|
||||||
echo -e "\nCompleted in $(mstodate $(( NOW - STARTTIME ))000)"
|
echo -e "\nCompleted in $(mstodate $(( NOW - STARTTIME ))000)"
|
||||||
}
|
}
|
||||||
@ -199,6 +214,8 @@ function check_and_convert {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [ -z "$1" ]; then
|
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 \
|
find . -type f \
|
||||||
-and -not -path "./backup/*" | sort | while read file; do
|
-and -not -path "./backup/*" | sort | while read file; do
|
||||||
check_and_convert "${file}"
|
check_and_convert "${file}"
|
||||||
@ -208,3 +225,11 @@ else
|
|||||||
check_and_convert "${file}"
|
check_and_convert "${file}"
|
||||||
done
|
done
|
||||||
fi
|
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