blob: ba1bdc1f7449906c4c53d2a793b5b17173b18ea9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#!@zsh@/bin/zsh
set -o errexit
umask 022
ffmpeg() { { { @ffmpeg@/bin/ffmpeg $@ 1>&3 } 2>&1 | stdbuf -o 0 tr '\r' '\n' | grep -v --line-buffered -E '^$' 1>&2 } 3>&1 }
wDir=/srv/hlidskjalf
concatDir=${wDir}/concat
lastFile=${concatDir}/latest.mkv
fList=""
tmpFile=""
function cleanup() {
[[ -n "${fList}" ]] && rm -fv ${fList}
[[ -n "${tmpFile}" ]] && rm -fv ${tmpFile}
}
trap cleanup EXIT
fList=$(mktemp --tmpdir filelist.XXXXXX)
typeset -a findArg
findArg=()
if [[ -e ${lastFile} ]]; then
findArg=(-mtime -1 -a -newer ${lastFile})
else
findArg=(-mtime -1)
fi
find -L /srv/hlidskjalf \( -path /srv/hlidskjalf/concat -prune \) -o \( \( ${findArg} \) -type f -print \) | sort | >! ${fList}
cat ${fList} >&2
if [[ $(wc -l ${fList} | cut -d ' ' -f 1) -eq 0 ]]; then
exit 0
fi
newFile="${concatDir}/hlidskjalf.$(date +'%Y-%m-%d-%H-%M-%S').mkv"
tmpFile=$(mktemp --tmpdir=${concatDir} "${newfile:h}/.${newFile:t:r}.XXXXXX.mkv")
ffmpeg -safe 0 -f concat -i =(awk $'{ print "file \'"$0"\'" }' ${fList}) -c:v libx264 -r 30 -crf 27 -preset veryfast -vf 'scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2' -metadata "description=$(xargs -a ${fList} -- basename -s ".mkv")" ${tmpFile}
mv -v ${tmpFile} ${newFile}
queue.hel -p -r ${newFile}
ln -vfs $(realpath --relative-to=${lastFile:h} ${newFile}) ${lastFile}
|