Linux
In Linux you will need to create a couple of bash scripts. But first by installing task spooler
sudo apt-get install task-spooler
Then create a couple of bash scripts.
/var/opt/nextpvr/scripts/PostProcessing.sh
#!/bin/bash
#!/usr/bin/env bash
#Input arguments
SOURCEFILENAME=$1 #full path + filename
CH_OID=$2 #Channel ID
OID=$3 #
DEV_OID=$4 #
REC_TITLE=$5 #
# Locally generated variables
#
# Change extensions to .mp4 and .xml
OUTFILE=`echo "$1" | sed s/\.ts/\.mp4/g`
XMLFILE=`echo "$1" | sed s/\.ts/\.xml/g`
TEMPDIR="/tmp"
MYPID=$$
echo "Calling Handbrake! .....................\r"
echo "Filename "$SOURCEFILENAME
echo "Vars "$@
tsp /var/opt/nextpvr/scripts/HandbrakeCLI.sh "$SOURCEFILENAME" "$CH_OID" "$OID" "$DEV_OID" "$REC_TITLE"
echo "Task Added to task-spooler.\r"
/var/opt/nextpvr/scripts/HandbrakeCLI.sh
#!/bin/bash
#!/usr/bin/env bash
#Input arguments
SOURCEFILENAME=$1 #full path + filename
CH_OID=$2 #Channel ID
OID=$3 #
DEV_OID=$4 #
REC_TITLE=$5 #
# Locally generated variables
#
# Change extensions to .mp4 and .xml
# 's/\(.*\)\/\(.*\)\.\(.*\)$/\1\/\2.mp4/
# s/\.ts/\.mp4/g
OUTFILE=`echo "$1" | sed 's/\(.*\)\/\(.*\)\.\(.*\)$/\1\/\2.mp4/'`
XMLFILE=`echo "$1" | sed s/\.ts/\.xml/g`
TEMPDIR="/tmp"
MYPID=$$
echo "Starting transcode ! .....................\r"
echo "Source file ! "$SOURCEFILENAME
echo "Output file ! "$OUTFILE
echo "PID ! "$MYPID
echo "Variable CH_OID ! "$CH_OID
echo "Variable OID ! "$OID
echo "Variable DEV_OID ! "$DEV_OID
echo "Variable REC_TITLE ! "$REC_TITLE
# run handbrakecli with a nice level of 19 so other processes can still use the CPU if needed
nice -n 19 HandBrakeCLI -i "$SOURCEFILENAME" -o "$OUTFILE" -e x264 -q 21 -O -r 30 --pfr \
-x ref=6:bframes=5:vbv-maxrate=62000:vbv-bufsize=62000 -X 720 --decomb --loose-anamorphic \
--modulus 2 --x264-tune film --x264-preset medium --h264-profile main --h264-level 4.1 -a 1,1 \
-E copy:ac3,faac -B auto,160 -R auto,auto -6 auto,dpl2 --audio-copy-mask aac,ac3,dtshd,dts,mp3 \
--audio-fallback ffac3 -f mp4 --verbose 1 2
#nice -n 19 HandBrakeCLI -i "$SOURCEFILENAME" -o "$OUTFILE" -e x264 -q 21 -O -r 30 --pfr \
#-x ref=6:bframes=5:vbv-maxrate=62000:vbv-bufsize=62000 -X 720 --decomb --loose-anamorphic \
#--modulus 2 --x264-tune film --x264-preset medium --h264-profile main --h264-level 4.1 -a 1,1 \
#-E copy:aac,ac3 -B auto,160 -R auto,auto -6 auto,dpl2 --audio-copy-mask aac,ac3,dtshd,dts,mp3 \
#--audio-fallback aac -f mp4 --all-subtitles --verbose 1 2
#HandbrakeCLI Result
handbrakeresult=$?
echo "HandBrakeCLI exited! exit code is:"
echo $handbrakeresult
if [ $handbrakeresult -eq 0 ]
then
#Cleanup
echo "Completed transcode! Cleaning up original recording and temp files.\r"
#rm -f /tmp/pp-$MYPID.log
rm -f "$SOURCEFILENAME"
else
echo "Handbrake did not return a exit code of 0, not cleaning up..."
fi
Then you can add some helper scripts to help manage the queue.
checkqueue.sh
#!/bin/bash
runuser -l nextpvr -c tsp
clearqueue.sh
#!/bin/bash
runuser -l nextpvr -c "tsp -C"
addjob.sh
#!/bin/bash
runuser -l nextpvr -c "/var/opt/nextpvr/scripts/PostProcessing.sh '$1'"