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
|