From 12fbce53a2b2659b810e24c2345a705545183817 Mon Sep 17 00:00:00 2001 From: Sergey Kiselev Date: Sat, 8 Nov 2025 20:43:34 +0500 Subject: [PATCH] scrn-rec: A simple script for recording video from your desktop --- README.md | 10 ++++++++++ scrn-rec | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 scrn-rec diff --git a/README.md b/README.md index 30de550..3a36f1d 100644 --- a/README.md +++ b/README.md @@ -90,3 +90,13 @@ GUI-обёртка над `www/yt-dlp` для воспроизведения в --- +## scrn-rec + +Скрипт для записи видео с экрана средствами `ffmpeg` и `x11grab`. + +Для работы скрипта необходимы: +- `ffmpeg` (`multimedia/ffmpeg`), собранный с опцией `XCB`; +- `yad` (`x11/yad`). + +--- + diff --git a/scrn-rec b/scrn-rec new file mode 100755 index 0000000..30ace77 --- /dev/null +++ b/scrn-rec @@ -0,0 +1,41 @@ +#!/bin/sh + +REC="$( which ffmpeg )" + +[ -z ${REC} ] && { + echo "ERR: ffmpeg not found in \$PATH" + exit 1 +} + +OPT="${HOME}/.local/tmp" +FIFO="${OPT}/scrn-rec.pipe" +DATE="$( date +%Y%m%d_%H%M%S )" +DIR="${HOME}/media/screencasts" +FILE="$( hostname | cut -d\. -f1 )-${DATE}.mp4" + +mkdir -p "${DIR}" || { + echo "ERR: can not create ${DIR} dir" + exit 1 +} + +mkfifo "${FIFO}" + +${REC} -y -f x11grab -video_size 1920x1080 \ + -i :0.0 -r 30 -codec:v libx264 \ + -pix_fmt yuv420p \ + -preset ultrafast \ + -crf 22 -threads 0 \ + "${DIR}/${FILE}" <"${FIFO}" & + +exec 3> "${FIFO}" + +( yad \ + --geometry="-340-32" \ + --title="STOP" \ + --window-icon="" \ + --undecorated \ + --skip-taskbar \ + --sticky \ + --on-top \ + --button='!gtk-stop:1'; echo "q" >&3; sleep 2; rm -f "${FIFO}" ) & +