diff options
author | tdback <tyler@tdback.net> | 2025-01-27 22:45:38 -0500 |
---|---|---|
committer | tdback <tyler@tdback.net> | 2025-01-27 22:45:38 -0500 |
commit | 303aa81d25df5f96ce980f2d38efb4a8ffc8faf7 (patch) | |
tree | 9bf4a0330986a6b37549b1da8fd5a7bd77fcfa94 /record |
initial commit
Diffstat (limited to 'record')
-rwxr-xr-x | record | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -0,0 +1,23 @@ +#!/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" |