diff --git a/scripts/rec b/scripts/rec index 6dd6052..6a35d96 100755 --- a/scripts/rec +++ b/scripts/rec @@ -1,17 +1,19 @@ -#!/bin/sh +#!/usr/bin/env fish -record() { +function record sleep 2 - ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0 -f alsa -i recorder \ - -c:v libx264 -preset ultrafast \ + withcap sys_admin -- ffmpeg -f alsa -i recorder \ + -vaapi_device /dev/dri/renderD128 -f kmsgrab -i - -r 60 \ + -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' \ + -c:v hevc_vaapi -qp 21 \ -c:a libopus -b:a 96k -ac 2 -ar 48000 \ -y recording.mkv >/dev/null 2>&1 & -} +end -if test "$1" = start; then - fish -ic 'set -U AUDIO record' - record & +if test ! -f recording.mkv + set -xU AUDIO_OUT record + record else - fish -ic 'set -U AUDIO' + set -xU AUDIO_OUT pkill ffmpeg -fi +end