x11record.sh

script to capture a window by name (works on main screen only atm)
and write the output to file (or youtube)
This commit is contained in:
deflax 2018-02-11 15:35:04 +02:00 committed by GitHub
parent 8ed2ca6701
commit 4b72d75490
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

36
x11record.sh Normal file
View file

@ -0,0 +1,36 @@
#! /bin/bash
#
# afx
VBR="1500k"
FPS="30"
#QUAL="medium"
QUAL="veryfast"
YOUTUBE_URL="rtmp://a.rtmp.youtube.com/live2"
KEY="..."
WINNAME="Minecraft 1.12.2"
#####################
offset_x=`xwininfo -name "$WINNAME" | grep geometry | cut -d '+' -f2`
offset_y=`xwininfo -name "$WINNAME" | grep geometry | cut -d '+' -f3`
width=`xwininfo -name "$WINNAME" | grep Width | cut -d ':' -f2 | tail -c +2 | head -c -1`
height=`xwininfo -name "$WINNAME" | grep Height | cut -d ':' -f2 | tail -c +2 | head -c -1`
echo "x11 to youtube capture"
echo "-=-=-=-=-=-=-=-=-=-=-="
echo $WINNAME resolution: $width x $height
echo $WINNAME X offset: $offset_x
echo $WINNAME Y offset: $offset_y
echo " "
echo "Ready?"
read
ffmpeg \
-video_size "$width"x"$height" -f x11grab -s "$width"x"$height" -i :0.0+"$offset_x","$offset_y" \
-f pulse -ac 2 -i default \
-vcodec libx264 -pix_fmt yuv420p -preset $QUAL -r $FPS -g $(($FPS * 2)) -b:v $VBR \
-acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b:a 712000 -bufsize 512k \
test.mp4
# -f "$YOUTUBE_URL/$KEY"