Compare commits

...

2 Commits

Author SHA1 Message Date
Sergey Kiselev 12fbce53a2 scrn-rec: A simple script for recording video from your desktop 5 months ago
Sergey Kiselev 9c6773d02d say: Added new command line option 9 months ago
  1. 10
      README.md
  2. 24
      say
  3. 41
      scrn-rec

10
README.md

@ -90,3 +90,13 @@ GUI-обёртка над `www/yt-dlp` для воспроизведения в
---
## scrn-rec
Скрипт для записи видео с экрана средствами `ffmpeg` и `x11grab`.
Для работы скрипта необходимы:
- `ffmpeg` (`multimedia/ffmpeg`), собранный с опцией `XCB`;
- `yad` (`x11/yad`).
---

24
say

@ -4,7 +4,7 @@
_usage() {
cat <<EOF
Usage:
say [-h] -c | -d | -g | -m <message> | -t <dev> [-n] -v <f|m> [-o <file>]
say [-h] -c | -d | -g | -m <message> | -t <dev> [-l loudness] [-n] [-v <f|m>] [-o <file>]
-h show this help message
@ -13,6 +13,7 @@ Usage:
-g godville.net
-m custom message
-t say device themperature (only cpu dev is supported)
-l voice loudness (1-100)
-n show notification
-v choice of voice - female or male
-o save to file
@ -94,7 +95,8 @@ if [ -z "${SAY_CMD}" ]; then
echo "Speech synthesizer not found"
exit 1
fi
SAY_PARAM="--rate 115 --pitch 110 --volume 30 --profile elena+slt"
LOUDNESS="--volume 30"
SAY_PARAM="--rate 115 --pitch 110 --profile elena+slt"
CURL="$( which curl )"
if [ -z "${CURL}" ]; then
@ -112,7 +114,7 @@ MSG=
SEND=0
SUMMARY=
while getopts cdghm:no:t:v: OPT
while getopts cdghm:l:no:t:v: OPT
do
case ${OPT} in
c|d|g|m|t)
@ -133,13 +135,23 @@ do
else
echo "Only one of the options -d, -f, -g, -m, -t is allowed."
exit 2
fi ;;
fi
;;
l)
L=${OPTARG}
if [ ${L} -lt 1 ]; then
L=1
elif [ ${L} -gt 100 ]; then
L=100
fi
LOUDNESS="--volume ${L}"
;;
n) SEND=1 ;;
o) SAY_PARAM="${SAY_PARAM} -o ${OPTARG}" ;;
v)
case ${OPTARG} in
f) ;;
m) SAY_PARAM="--rate 135 --pitch 80 --volume 30 --profile aleksandr+alan" ;;
m) SAY_PARAM="--rate 135 --pitch 80 --profile aleksandr+alan" ;;
*) _usage 2 ;;
esac
;;
@ -148,6 +160,8 @@ do
esac
done
SAY_PARAM="${SAY_PARAM} ${LOUDNESS}"
if [ "${ACTION}" != "message" ]; then
MSG="$( _${ACTION} ${DEV} )"
fi

41
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}" ) &
Loading…
Cancel
Save