From d75d53fe79ee7cf0d2efd30d5e191def8c746056 Mon Sep 17 00:00:00 2001 From: Timmy Keller Date: Tue, 26 Oct 2021 02:25:17 -0500 Subject: changed a bunch of video scripts and added my first and possibly last python script, although it was fun --- video/screenrec | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'video/screenrec') diff --git a/video/screenrec b/video/screenrec index 91edcd0..fa6b628 100755 --- a/video/screenrec +++ b/video/screenrec @@ -1,6 +1,20 @@ #!/bin/sh newname() { defname="video"; name=$defname`ls | grep "^$defname[0-9]*" | wc -l | tr -d '[:blank:]'`.mkv; } -vs=`cat /sys/class/drm/*/modes | head -1` -vs=1366x768 [ -z "$1" ] && newname || name="$1" -ffmpeg -hide_banner -video_size $vs -framerate 60 -f x11grab -i :0.0+0,0 -c:v libx264 -preset ultrafast -qp 1 -pix_fmt yuv444p "$name" +# Get screen info. I suspect this script wouldn't work too well with multiple screens. Somebody else can add that +resinfo="$(xrandr | grep '*' | tr -s ' ')" +vs="$(echo "$resinfo" | cut -d' ' -f2)" +fr="$(echo "$resinfo" | sed 's/.*\s\([0-9]*\.[0-9]*\)\*.*/\1/')" +# -i is screen coordinates for top-leftmost screen +# Encoder settings are basically lossless and optimized for good speed, decent size, and great quality +# yuv444p colorspace is needed for a 24 bit rgb monitor, change for hdr. yuv420p is the default and is good for video, but is inadequate for screencasts +ffmpeg -hide_banner \ + -video_size $vs \ + -framerate $fr \ + -f x11grab \ + -i :0.0+0,0 \ + -c:v libx264 \ + -preset ultrafast \ + -qp 1 \ + -pix_fmt yuv444p \ + "$name" -- cgit v1.2.3