#!/bin/sh | |
FILE=$1 && shift | |
# screen with and height | |
wh=$(xrandr | grep '*' | awk '{ print $1 }') | |
w=$(echo $wh | awk -F'x' '{ print $1 }') | |
h=$(echo $wh | awk -F'x' '{ print $2 }') | |
if [ -z $FPS ]; then | |
FPS=10 | |
fi | |
if [ -z $Q ]; then | |
Q=10 | |
fi | |
if [ -z $Y ]; then | |
Y=$h | |
fi | |
if [ -z $X ]; then | |
X=$w | |
fi | |
if [ -z $FILE ]; then | |
FILE=$(date).mkv | |
fi | |
wmctrl -r :SELECT: -e 0,0,0,$X,$Y | |
while [ true ] ; do | |
if [ ! -f "$FILE" ]; then | |
break | |
fi | |
FILE=new-$FILE | |
done | |
VIDEO="-f x11grab -s ${X}x$Y -r $FPS -i $DISPLAY -q:v $Q -codec:v libx264" | |
AUDIO="-f pulse -ac 2 -ar 44100 -i default" | |
##[pulse @ 0xd845a57520] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8) | |
## https://nowardev.wordpress.com/2015/03/24/ffmpeg-and-the-message-thread-message-queue-blocking-consider-raising-the-thread_queue_size-option-current-value-8-alsa-buffer-xrun/ | |
FLAGS="-thread_queue_size 512" | |
#[x11grab @ 0x7e9bc27320] Stream #0: not enough frames to estimate rate; consider increasing probesize | |
# https://ffmpeg.org/pipermail/ffmpeg-user/2014-May/021227.html | |
FLAGS="$FLAGS -probesize 10M" | |
if [ ! -z $NO_AUDIO ]; then | |
AUDIO="" | |
fi | |
cmd="ffmpeg $FLAGS $AUDIO $VIDEO \"$FILE\"" | |
>&2 echo "$cmd" | |
>&2 echo -n Live in 3 sleep 0.25 | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo -n 2 | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo -n 1 | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo -n . | |
sleep 0.25 | |
>&2 echo Recording! | |
ffmpeg $FLAGS $AUDIO $VIDEO "$FILE" | |
>&2 echo Created $FILE |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment