47 lines
2.3 KiB
Plaintext
47 lines
2.3 KiB
Plaintext
|
#!/bin/sh
|
||
|
# dfmpeg
|
||
|
# dmenu gui for recording your screen with ffmpeg
|
||
|
# Licensed under MIT, written by speedie
|
||
|
# https://github.com/speediegamer/dfmpeg
|
||
|
|
||
|
defaultConfig() {
|
||
|
DFMPEG_DOTDIR="$HOME/.config/dfmpeg" # The directory where dotfiles are
|
||
|
DFMPEG_RESOLUTION="1920x1080" # The resolution to record in
|
||
|
DFMPEG_AUDIO_DEVICE="alsa" # How to capture audio (alsa/pulseaudio)
|
||
|
DFMPEG_FRAME_RATE="60" # Frame rate to capture in.
|
||
|
DFMPEG_RECORD_DEVICE="x11grab" # Probably do not change.
|
||
|
DFMPEG_OUTPUT_PATH="$HOME/Videos" # Path where videos will be saved.
|
||
|
DFMPEG_OUTPUT_FORMAT="mp4" # What format to use
|
||
|
DFMPEG_OUTPUT_FILENAME="$DFMPEG_OUTPUT_PATH/Dfmpeg-Output-$(date +"%d-%d-%y-%T").$DFMPEG_OUTPUT_FORMAT" # File name of the output. Probably don't need to change.
|
||
|
DFMPEG_WH=":0.0" # Width and height, no need to change, defaults should work.
|
||
|
DFMPEG_DMENU="dmenu" # Path to dmenu
|
||
|
DFMPEG_TERM="$TERMINAL" # Terminal to use when editing the configuration file.
|
||
|
DFMPEG_EDITOR="vim" # Editor to edit the config file with
|
||
|
}
|
||
|
|
||
|
defaultConfig
|
||
|
. "$DFMPEG_DOTDIR"/dfmpegrc
|
||
|
startrec="ffmpeg -f $DFMPEG_RECORD_DEVICE -s $DFMPEG_RESOLUTION -i $DFMPEG_WH -f $DFMPEG_AUDIO_DEVICE -r $DFMPEG_FRAME_RATE -i default $DFMPEG_OUTPUT_FILENAME"
|
||
|
startrec_no_audio="ffmpeg -f $DFMPEG_RECORD_DEVICE -s $DFMPEG_RESOLUTION -r $DFMPEG_FRAME_RATE -i $DFMPEG_WH $DFMPEG_OUTPUT_FILENAME"
|
||
|
stoprec="pkill ffmpeg"
|
||
|
dfmpeg_ver="2022-04-03-r1"
|
||
|
about_screen="dfmpeg $dfmpeg_ver."
|
||
|
about_screen_2="Licensed under MIT, written by speedie + contributors."
|
||
|
about_screen_3="https://github.com/speediegamer/dfmpeg"
|
||
|
|
||
|
case "$(printf 'Start\nStop\nStart-No-Audio\nConfigure\nExit\nAbout' | dmenu -p 'Record your screen:')" in
|
||
|
"Exit") DFMPEG_STATUS=idle && exit 0 ;;
|
||
|
"Start") DFMPEG_STATUS=recording && touch /tmp/dfmpeg-recording && $startrec && exit 0 ;;
|
||
|
"Stop") $stoprec && rm /tmp/dfmpeg-recording && DFMPEG_STATUS=idle ;;
|
||
|
"Configure") $DFMPEG_TERM $DFMPEG_EDITOR $DFMPEG_DOTDIR/dfmpegrc ;;
|
||
|
"Start-No-Audio") DFMPEG_STATUS=recording && touch /tmp/dfmpeg-recording && $startrec_no_audio && exit 0 ;;
|
||
|
"About")
|
||
|
echo $about_screen > $DFMPEG_DOTDIR/dfmpeg_about
|
||
|
echo $about_screen_2 >> $DFMPEG_DOTDIR/dfmpeg_about
|
||
|
echo $about_screen_3 >> $DFMPEG_DOTDIR/dfmpeg_about
|
||
|
$DFMPEG_TERM $DFMPEG_EDITOR $DFMPEG_DOTDIR/dfmpeg_about
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
exit 0 # This fixes a small bug.
|