Improve record-window script

801a71b0d3d548d69c1bbe8f22d337cf969dc84e
Alexis Sellier committed ago 1 parent 4241aad1
bin/record-window +22 -11
2 2
3 3
unset x y w h
4 4
5 5
mkdir -p $HOME/recordings
6 6
7 -
FPS=${FPS:-4}
8 -
SCALE=${SCALE:-.5}
7 +
FPS=${FPS:-6}
8 +
SCALE=${SCALE:-1}
9 +
NAME=${1:-unknown}
9 10
10 -
eval $(xwininfo -id $(xdotool getactivewindow) |
11 +
# NOTE: To get the active window: `xwininfo -id $(xdotool getactivewindow)`
12 +
13 +
eval $(xwininfo -name "$NAME" |
11 14
    sed -n -e "s/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p" \
12 15
           -e "s/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p" \
13 16
           -e "s/^ \+Width: \+\([0-9]\+\).*/w=\1/p" \
14 17
           -e "s/^ \+Height: \+\([0-9]\+\).*/h=\1/p" )
15 18
16 -
now="$(date +"%S%M%H%d%m%Y")"
19 +
now="$(date +"%Y%m%d-%H%M%S")"
17 20
tmp="$(mktemp).gif"
18 21
22 +
let x=$x+1
23 +
let y=$y+1
24 +
25 +
OUT="$HOME/recordings/recording-$NAME-$now.gif"
26 +
19 27
ffmpeg -v warning \
20 -
	     -video_size ${w}x${h} \
21 -
			 -framerate 6 \
22 -
			 -f x11grab \
23 -
			 -i :0.0+${x},${y} \
24 -
			 -vf fps=$FPS,scale=iw*$SCALE:ih*$SCALE:flags=lanczos \
25 -
			 -gifflags +transdiff -y \
26 -
			 "$HOME/recordings/recording-$now.gif"
28 +
         -video_size ${w}x${h} \
29 +
             -framerate 4 \
30 +
             -f x11grab \
31 +
             -i :0.0+${x},${y} \
32 +
             -vf fps=$FPS,scale=iw*$SCALE:ih*$SCALE:flags=lanczos \
33 +
             -gifflags +transdiff -y \
34 +
             "$OUT"
35 +
36 +
echo "saved to '$OUT'"
27 37
38 +
# TIP: convert FILE.gif -strip -coalesce -layers Optimize OPTIMIZED.gif