diff options
author | tdback <tyler@tdback.net> | 2025-03-06 21:06:20 -0500 |
---|---|---|
committer | tdback <tyler@tdback.net> | 2025-03-06 21:06:20 -0500 |
commit | deac92eceeb497963f28f96c98add8c7c2787c73 (patch) | |
tree | c6795708de603e5e9fe57880d249ae05f227ab99 /record | |
parent | e6e371950b4075f152a50ec664a592cdecd95c7b (diff) |
Diffstat (limited to 'record')
-rwxr-xr-x | record | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -1,17 +1,19 @@ #!/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. +# video to './out.mp4' at 1080p. On NixOS, ffmpeg requires Xcb support. -die() { echo "$0: $*" >&2; exit 1; } -try() { "$@" || die "cannot $*"; } +set -eu while getopts ":r:h" args; do case "$args" in r) RESOLUTION="$OPTARG" ;; - h) die "record [-r RESOLUTION] FILE" ;; - *) die "-$OPTARG is not an option." ;; + h) echo "Usage: record [-r RESOLUTION] FILE" >&2 + exit 1 + ;; + *) printf "Invalid option: -%s\nSee '-h' for usage\n" "$OPTARG" >&2 + exit 1 + ;; esac done shift $((OPTIND - 1)) @@ -19,5 +21,5 @@ 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" +ffmpeg -y -f x11grab -s "$RESOLUTION" -framerate 60 -i :0.0 -f alsa \ + -i default -nostats -hide_banner -loglevel quiet "${FILE}.mp4" |