24 lines
695 B
Text
24 lines
695 B
Text
|
#!/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"
|