commit c243fe1fb80c0fdcdca599fff2fb998936b946ee
parent c5029f934a3fad94ef2d03d3ce62ad98b5e596e0
Author: Luke Smith <luke@lukesmith.xyz>
Date: Sat, 8 Sep 2018 22:43:47 -0400
recording scripts now more robust
Diffstat:
4 files changed, 18 insertions(+), 35 deletions(-)
diff --git a/.scripts/audio b/.scripts/audio
@@ -1,29 +1,22 @@
-#!/bin/bash
+#!/bin/sh
# This script records audio.
# 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/audio$n.flac ]]
+while [ -f "$HOME/audio$n.flac" ]
do
n=$((n+1))
done
filename="$HOME/audio$n.flac"
-# For Pulseaudio with ALSA:
-record_pulse() { \
ffmpeg \
-f alsa -i default \
-c:a flac \
-$filename ;}
+"$filename" &
-# For ALSA:
-record_alsa() { \
-ffmpeg -y \
--f alsa -ar 44100 -i hw:1 \
-$filename ;}
-
-if [[ $(pgrep -x pulseaudio) ]]; then record_pulse; else record_alsa; fi &
+# PID outputted for use by the killrecording script
+echo $! > ~/.recordingpid
# Updating i3blocks recording icon:
echo 🎙️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks
diff --git a/.scripts/killrecording b/.scripts/killrecording
@@ -1,6 +1,6 @@
#!/bin/sh
-killall -e screencast audio video
+kill -9 "$(cat ~/.recordingpid)"
# Update i3bar.
echo "" > ~/.recordingicon
diff --git a/.scripts/screencast b/.scripts/screencast
@@ -1,38 +1,26 @@
-#!/bin/bash
+#!/bin/sh
# 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 ]]
+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;}') \
+-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 ;}
+ -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 &
+# PID outputted for use by the killrecording script
+echo $! > ~/.recordingpid
# Updating i3blocks recording icon:
echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks
diff --git a/.scripts/video b/.scripts/video
@@ -1,10 +1,10 @@
-#!/bin/bash
+#!/bin/sh
# This script records video.
# It also names files smartly to prevent overwrites.
# Picks a file name for the output file based on availability:
-while [[ -f $HOME/video$n.mkv ]]
+while [ -f "$HOME/video$n.mkv" ]
do
n=$((n+1))
done
@@ -13,9 +13,11 @@ filename="$HOME/video$n.mkv"
# The actual ffmpeg command:
ffmpeg \
-f x11grab \
--s $(xdpyinfo | grep dimensions | awk '{print $2;}') \
+-s "$(xdpyinfo | grep dimensions | awk '{print $2;}')" \
-i :0.0 \
- -c:v libx264 -qp 0 -r 30 $filename &
+ -c:v libx264 -qp 0 -r 30 "$filename" &
+# PID outputted for use by the killrecording script
+echo $! > ~/.recordingpid
# Updating i3blocks recording icon:
echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks