#!/bin/sh

if [ -z $(which ffmpeg) ]
then
    echo "Missing ffmpeg package, please install it!"
    exit 1
fi

if [ -z $(which shnsplit) ]
then
    echo "Missing shntool package, please install it!"
    exit 1
fi

if [ ! -z $1 ]
then
    if [ $1 == 'cut' ] 
    then
       ffmpeg -i "$2" -ss $3 -t $4 -c:v copy -c:a copy "$5"
    fi
    
    if [ $1 == 'shrink' ]
    then
       ffmpeg -i "$2" -vcodec libx264 -crf 15 -filter:v fps=25 -s 1280x720 -c:a copy "$3"
    fi

    if [ $1 == 'record' ]
    then
       device_id=$(pactl list short sources | grep output | awk '{print $1}')
       if [ $2 == 'mic' ]
       then
           microphone_id=$(pactl list short sources | grep input | awk '{print $1}')
           ffmpeg -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i $device_id -f pulse -ac 2 -i $microphone_id  -filter_complex "[1:0][2:0]amix=inputs=2:duration=shortest" ~/Videos/$(date "+%F-%N").mkv &
       else
	   ffmpeg -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i $device_id ~/Videos/$(date "+%F-%N").mkv &
       fi
       echo "$!" > ~/.local/share/ffmpeg/recent-recording
    fi
    
    if [ $1 == 'stop' ]
    then
       kill $(cat ~/.local/share/ffmpeg/recent-recording)
    fi

    if [ $1 == 'cue' ]
    then
       shnsplit -f $2 $3
    fi
else
    echo "cut:"
    echo "ffmpeg -i \$2 -ss \$3 -t \$4 -c:v copy -c:a copy \$5"
    echo "shrink:"
    echo "ffmpeg -i \$2 -vcodec libx264 -crf 15 -filter:v fps=25 -s 1280x720 -c:a copy\$3"
    echo "record:"
    echo "ffmpeg -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i 57 ~/Videos/\$(date \"+%F-%N\").mkv &"
    echo "cue:"
    echo "shnsplit -f \$2 \$3"
fi