recording scripts now more robust
This commit is contained in:
parent
c5029f934a
commit
c243fe1fb8
4 changed files with 18 additions and 35 deletions
|
@ -1,29 +1,22 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
# This script records audio.
|
# This script records audio.
|
||||||
# It runs an appropriate record script for either ALSA and Pulseaudio.
|
# It runs an appropriate record script for either ALSA and Pulseaudio.
|
||||||
# It also names files smartly to prevent overwrites.
|
# It also names files smartly to prevent overwrites.
|
||||||
|
|
||||||
# Picks a file name for the output file based on availability:
|
# Picks a file name for the output file based on availability:
|
||||||
while [[ -f $HOME/audio$n.flac ]]
|
while [ -f "$HOME/audio$n.flac" ]
|
||||||
do
|
do
|
||||||
n=$((n+1))
|
n=$((n+1))
|
||||||
done
|
done
|
||||||
filename="$HOME/audio$n.flac"
|
filename="$HOME/audio$n.flac"
|
||||||
|
|
||||||
# For Pulseaudio with ALSA:
|
|
||||||
record_pulse() { \
|
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
-f alsa -i default \
|
-f alsa -i default \
|
||||||
-c:a flac \
|
-c:a flac \
|
||||||
$filename ;}
|
"$filename" &
|
||||||
|
|
||||||
# For ALSA:
|
# PID outputted for use by the killrecording script
|
||||||
record_alsa() { \
|
echo $! > ~/.recordingpid
|
||||||
ffmpeg -y \
|
|
||||||
-f alsa -ar 44100 -i hw:1 \
|
|
||||||
$filename ;}
|
|
||||||
|
|
||||||
if [[ $(pgrep -x pulseaudio) ]]; then record_pulse; else record_alsa; fi &
|
|
||||||
# Updating i3blocks recording icon:
|
# Updating i3blocks recording icon:
|
||||||
echo 🎙️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks
|
echo 🎙️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
killall -e screencast audio video
|
kill -9 "$(cat ~/.recordingpid)"
|
||||||
|
|
||||||
# Update i3bar.
|
# Update i3bar.
|
||||||
echo "" > ~/.recordingicon
|
echo "" > ~/.recordingicon
|
||||||
|
|
|
@ -1,38 +1,26 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
# This script records a screencast with audio and video.
|
# This script records a screencast with audio and video.
|
||||||
# It runs an appropriate record script for either ALSA and Pulseaudio.
|
# It runs an appropriate record script for either ALSA and Pulseaudio.
|
||||||
# It also names files smartly to prevent overwrites.
|
# It also names files smartly to prevent overwrites.
|
||||||
|
|
||||||
# Picks a file name for the output file based on availability:
|
# Picks a file name for the output file based on availability:
|
||||||
while [[ -f $HOME/screencast$n.mkv ]]
|
while [ -f "$HOME/screencast$n.mkv" ]
|
||||||
do
|
do
|
||||||
n=$((n+1))
|
n=$((n+1))
|
||||||
done
|
done
|
||||||
filename="$HOME/screencast$n.mkv"
|
filename="$HOME/screencast$n.mkv"
|
||||||
|
|
||||||
# For Pulseaudio with ALSA:
|
|
||||||
record_pulse() { \
|
|
||||||
ffmpeg -y \
|
ffmpeg -y \
|
||||||
-f x11grab \
|
-f x11grab \
|
||||||
-framerate 60 \
|
-framerate 60 \
|
||||||
-s $(xdpyinfo | grep dimensions | awk '{print $2;}') \
|
-s "$(xdpyinfo | grep dimensions | awk '{print $2;}')" \
|
||||||
-i :0.0 \
|
-i :0.0 \
|
||||||
-f alsa -i default \
|
-f alsa -i default \
|
||||||
-r 30 \
|
-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:
|
# PID outputted for use by the killrecording script
|
||||||
record_alsa() { \
|
echo $! > ~/.recordingpid
|
||||||
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 &
|
|
||||||
# Updating i3blocks recording icon:
|
# Updating i3blocks recording icon:
|
||||||
echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks
|
echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
# This script records video.
|
# This script records video.
|
||||||
# It also names files smartly to prevent overwrites.
|
# It also names files smartly to prevent overwrites.
|
||||||
|
|
||||||
# Picks a file name for the output file based on availability:
|
# Picks a file name for the output file based on availability:
|
||||||
while [[ -f $HOME/video$n.mkv ]]
|
while [ -f "$HOME/video$n.mkv" ]
|
||||||
do
|
do
|
||||||
n=$((n+1))
|
n=$((n+1))
|
||||||
done
|
done
|
||||||
|
@ -13,9 +13,11 @@ filename="$HOME/video$n.mkv"
|
||||||
# The actual ffmpeg command:
|
# The actual ffmpeg command:
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
-f x11grab \
|
-f x11grab \
|
||||||
-s $(xdpyinfo | grep dimensions | awk '{print $2;}') \
|
-s "$(xdpyinfo | grep dimensions | awk '{print $2;}')" \
|
||||||
-i :0.0 \
|
-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:
|
# Updating i3blocks recording icon:
|
||||||
echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks
|
echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks
|
||||||
|
|
Loading…
Reference in a new issue