NameSizeMode
..
.local/bin/record 646 bytes ?rwxr-xr-x
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh
#                             _ 
#  _ __ ___  ___ ___  _ __ __| |
# | '__/ _ \/ __/ _ \| '__/ _` |
# | | |  __/ (_| (_) | | | (_| |
# |_|  \___|\___\___/|_|  \__,_|
#                               
# 2025 (C) Pablo
#
# Records the screen using ffmpeg

set -e

if [ $# -lt 1 ]; then
  printf "\e[1m\e[31mERROR:\e[0m No output file provided\n\e[1m\e[33mUSAGE:\e[0m record OUTPUT\n" >&2
  exit 1
fi

printf "\e[1m\e[34m=>\e[0m Starting screen recording! Press 'q' to quit...\n\n"
ffmpeg -f x11grab -framerate 30 -i :0.0 \
       -f pulse -i default -c:v libx264 \
       -preset ultrafast -pix_fmt yuv420p -c:a aac -b:a 192k \
       "$1"