42 lines
1.1 KiB
Bash
42 lines
1.1 KiB
Bash
#!/bin/sh
|
|
|
|
sleep $(dc -e "$RANDOM 1000 / p")
|
|
lockfile="/tmp/auto-encode-x264"
|
|
if [ -f "$lockfile" ]; then
|
|
exit 0
|
|
fi
|
|
touch "$lockfile"
|
|
notify() {
|
|
python "$script_dir/notify.py" '171327453212573696' "$1"
|
|
}
|
|
|
|
script=$1
|
|
script_dir=$(pwd)
|
|
base_dir=$(dirname $script)
|
|
done_dir="/home/sftp/kaleido/auto-encode/done"
|
|
cd "$base_dir"
|
|
if [ ! -f 'settings' ]; then
|
|
notify "Could not start encode, expected file ‘settings’ in `pwd`."
|
|
rm "$lockfile"
|
|
exit 0
|
|
fi
|
|
settings=$(cat 'settings')
|
|
notify "Starting encode $script."
|
|
output_file=$(basename $script .vpy).264
|
|
output=$( { nice -n 17 vspipe $(basename $script) -y - | x264 --demuxer y4m - $settings --output-depth 10 --threads 1 -o $output_file; } 2>&1 )
|
|
ok=$?
|
|
output_filtered=$( echo $output | sed -E 's/(x264)?\s?\[/\n\[/g' | grep -v '
|
|
' )
|
|
if [ $ok -ne 0 ]; then
|
|
notify "Encode $script failed"
|
|
notify "$output_filtered"
|
|
rm "$lockfile"
|
|
exit 0
|
|
else
|
|
mv "$output_file" "$done_dir"
|
|
mv "$script" "$done_dir"
|
|
notify "$script successfully encoded."
|
|
notify "$output_filtered"
|
|
fi
|
|
rm -f "$lockfile"
|
|
rm -f /tmp/auto-encode
|