scripts/record

23 lines
695 B
Bash
Executable file

#!/bin/sh
# record: Record an mp4 video using ffmpeg. By default it will output the
# video to './out.mp4'. Requires ffmpeg to be built with Xcb support on NixOS.
# Screen resolution can be specified, but defaults to 1080p.
die() { echo "$0: $*" >&2; exit 1; }
try() { "$@" || die "cannot $*"; }
while getopts ":r:h" args; do
case "$args" in
r) RESOLUTION="$OPTARG" ;;
h) die "record [-r RESOLUTION] FILE" ;;
*) die "-$OPTARG is not an option." ;;
esac
done
shift $((OPTIND - 1))
FILE="${1:-out}"
: "${RESOLUTION:=1920x1080}"
try ffmpeg -y -f x11grab -s "$RESOLUTION" -framerate 60 -i :0.0 -f alsa \
-i default -nostats -hide_banner -loglevel quiet "${FILE}.mp4"