37 lines
1.1 KiB
Bash
37 lines
1.1 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Originally created by Robin Voetter (https://github.com/Snektron),
|
||
|
# then modified by me (https://github.com/SijmenSchoon).
|
||
|
|
||
|
if [ -f /tmp/screenrecord.pid ]; then
|
||
|
pkill -P $(cat "/tmp/screenrecord.pid")
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
read -r x y w h < <(slop -f "%x %y %w %h" -q)
|
||
|
if [ -z "$x" ]; then
|
||
|
echo "Cancelled"
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
id=$(notify-send.sh -p -u low "Starting recording in 3 seconds"); sleep 1
|
||
|
notify-send.sh -r "$id" -u low "Starting recording in 2 seconds"; sleep 1
|
||
|
notify-send.sh -r "$id" -u low -t 500 "Starting recording in 1 seconds"; sleep 1
|
||
|
|
||
|
{
|
||
|
date=$(date '+%Y%M%d-%H%M%S')
|
||
|
ffmpeg -video_size "$w"x"$h" \
|
||
|
-framerate 30 \
|
||
|
-f x11grab \
|
||
|
-i :0.0+"$x","$y" \
|
||
|
-vf "scale=trunc(iw/4)*2:trunc(ih/4)*2" \
|
||
|
-pix_fmt yuv420p \
|
||
|
"$HOME/Videos/sr-$date.mp4"
|
||
|
|
||
|
rm /tmp/screenrecord.pid
|
||
|
notify-send.sh -u low "Stopped recording" "Saved recording to ~/Videos/sr-$date.mp4"
|
||
|
xclip -sel clip <<< "$HOME/Videos/sr-$date.mp4"
|
||
|
} &
|
||
|
|
||
|
echo "$!" > /tmp/screenrecord.pid
|