upload
This commit is contained in:
77
bin/mb-screenrec
Executable file
77
bin/mb-screenrec
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
#: mb-screenrec - very simple screen recorder
|
||||
CNF_FILE="$HOME"/.config/mabox/mb-screenrec.conf
|
||||
. "$CNF_FILE"
|
||||
|
||||
DATE=$(date +%Y%m%d_%H-%M-%S)
|
||||
FRAMERATE=${framerate:-30}
|
||||
EXT=${container:-webm}
|
||||
AUDIO=${record_audio:-no}
|
||||
SCREEN_SIZE=$(xdpyinfo | awk '/^ +dimensions/ {print $2}')
|
||||
# Alternative: xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'
|
||||
RECDIR="$(xdg-user-dir VIDEOS)/Recordings"
|
||||
|
||||
mkdir -p $RECDIR
|
||||
|
||||
if [ "$AUDIO" == "yes" ];then
|
||||
AUDIOCMD="-f pulse -ac 2 -i default"
|
||||
else
|
||||
AUDIOCMD=""
|
||||
fi
|
||||
|
||||
show_stop_icon () {
|
||||
case "$LANG" in
|
||||
pl*) STOP_INFO="Zatrzymaj nagrywanie";;
|
||||
*) STOP_INFO="Click to stop recording";;
|
||||
esac
|
||||
yad --notification --image media-playback-stop --text "${STOP_INFO}"
|
||||
kill $FFMPEG_PID
|
||||
wait $FFMPEG_PID
|
||||
|
||||
xdg-open $RECDIR
|
||||
}
|
||||
|
||||
rec_full () {
|
||||
ffmpeg -f x11grab \
|
||||
-video_size $SCREEN_SIZE \
|
||||
-framerate $FRAMERATE \
|
||||
-i :0.0+0,0 ${AUDIOCMD} \
|
||||
${RECDIR}/rec_${DATE}.${EXT} &
|
||||
FFMPEG_PID=$!
|
||||
|
||||
show_stop_icon
|
||||
}
|
||||
|
||||
|
||||
get_area () {
|
||||
read X Y W H <<<"$(slop -l -b 3 --color=0.3,0.4,0.6,0.4 -f '%x %y %w %h')"
|
||||
}
|
||||
sel_cancelled () {
|
||||
notify-send.sh -i mbcc "Error" "Selection was cancelled by keystroke or right-click."
|
||||
}
|
||||
|
||||
rec_area () {
|
||||
get_area
|
||||
if [ "$X" != "" ];then
|
||||
ffmpeg -f x11grab \
|
||||
-video_size ${W}x${H} \
|
||||
-framerate $FRAMERATE \
|
||||
-i :0.0+${X},${Y} ${AUDIOCMD} \
|
||||
${RECDIR}/rec_${DATE}.${EXT} &
|
||||
FFMPEG_PID=$!
|
||||
|
||||
show_stop_icon
|
||||
else
|
||||
sel_cancelled
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
case "$1" in
|
||||
-f|--fullscreen) rec_full;;
|
||||
-a|--area) rec_area;;
|
||||
*) ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user