diff options
| author | Luke Smith <luke@lukesmith.xyz> | 2018-04-10 23:08:43 -0700 |
|---|---|---|
| committer | Luke Smith <luke@lukesmith.xyz> | 2018-04-10 23:08:43 -0700 |
| commit | f61ab667856a6896a0395a84c85cc4c1f139c630 (patch) | |
| tree | 2d9c9c6353d837e53695cb3d664d4926a25ad33c /.scripts/screencast | |
| parent | e2225d418d38e53f63bb1c279cc8b9af45ea6e3a (diff) | |
| download | eibhear-f61ab667856a6896a0395a84c85cc4c1f139c630.tar.gz eibhear-f61ab667856a6896a0395a84c85cc4c1f139c630.tar.zst eibhear-f61ab667856a6896a0395a84c85cc4c1f139c630.zip | |
Overhaul of screencasting scripts
Diffstat (limited to '.scripts/screencast')
| -rwxr-xr-x | .scripts/screencast | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/.scripts/screencast b/.scripts/screencast new file mode 100755 index 0000000..cd37ab9 --- /dev/null +++ b/.scripts/screencast @@ -0,0 +1,36 @@ +#!/bin/bash + +# This script records a screencast with audio and video. +# It runs an appropriate record script for either ALSA and Pulseaudio. +# It also names files smartly to prevent overwrites. + +# Picks a file name for the output file based on availability: +while [[ -f $HOME/screencast$n.mkv ]] +do + n=$((n+1)) +done +filename="$HOME/screencast$n.mkv" + +# For Pulseaudio with ALSA: +record_pulse() { \ +ffmpeg -y \ +-f x11grab \ +-framerate 60 \ +-s $(xdpyinfo | grep dimensions | awk '{print $2;}') \ +-i :0.0 \ +-f alsa -i default \ +-r 30 \ + -c:v libx264rgb -crf 0 -preset ultrafast -c:a flac $filename ;} + +# For ALSA: +record_alsa() { \ +ffmpeg -y \ +-f x11grab \ +-s $(xdpyinfo | grep dimensions | awk '{print $2;}') \ +-i :0.0 \ +-thread_queue_size 1024 \ + -f alsa -ar 44100 -i hw:1 \ + -c:v libx264 -r 30 -c:a flac $filename ;} + + +if [[ $(pgrep -x pulseaudio) ]]; then record_pulse; else record_alsa; fi |
