High performance screen/audio recorder for wlroots Usage: wl-screenrec [OPTIONS] Options: --no-hw don't use the GPU encoder, download the frames onto the CPU and use a software encoder. Ignored if `encoder` is supplied --no-cursor don't capture the cursor -f, --filename filename to write to. container type is detected from extension [default: screenrecord.mp4] -g, --geometry geometry to capture, format x,y WxH. Compatible with the output of `slurp`. Mutually exclusive with --output -o, --output Which output (display) to record. Mutually exclusive with --geometry. Defaults to your only display if you only have one [default: ""] -m, --max-fps limit maximum framerate into the encoder. Note that by default, wl-screenrec only copies frames when the contents have changed, so it can drop below this -v, --verbose... add very loud logging. can be specified multiple times --dri-device which dri device to use for vaapi. by default, this is obtained from the linux-dmabuf-v1 protocol when using wlr-screencopy, and from ext-image-copy-capture-session if using ext-image-copy-capture, if present. if not present, /dev/dri/renderD128 is guessed --low-power [default: auto] [possible values: auto, on, off] --codec which video codec to use. Ignored if `--ffmpeg-encoder` is supplied [default: auto] [possible values: auto, avc, hevc, vp8, vp9, av1] --ffmpeg-muxer Which ffmpeg muxer to use. Guessed from output filename by default --ffmpeg-muxer-options Options to pass to the muxer. Format looks like key=val,key2=val2 --ffmpeg-encoder Use this to force a particular ffmpeg encoder. Generally, this is not necessary and the combo of --codec and --hw can get you to where you need to be --ffmpeg-encoder-options Options to pass to the encoder. Format looks like key=val,key2=val2 --audio-codec Which audio codec to use. Ignored if `--ffmpeg-audio-encoder` is supplied [default: auto] [possible values: auto, aac, mp3, flac, opus] --audio-bitrate audio bitrate to encode at. Unit is bytes per second, 16 kB is 128 kbps --ffmpeg-audio-encoder Use this to force a particular audio ffmpeg encoder. By default, this is guessed from the muxer (which is guess by the file extension if --ffmpeg-muxer isn't passed) --encode-pixfmt which pixel format to encode with. not all codecs will support all pixel formats. This should be a ffmpeg pixel format string, like nv12 or x2rgb10. If the encoder supports vaapi memory, it will use this pixel format type but in vaapi memory --encode-resolution what resolution to encode at. example: 1920x1080. Default is the resolution of the captured region. If your goal is reducing filesize, it's suggested to try --bitrate/-b first -b, --bitrate bitrate to encode at. Unit is bytes per second, so 5 MB is 40 Mbps [default: "5 MB"] --history run in a mode where the screen is recorded, but nothing is written to the output file until SIGUSR1 is sent to the process. Then, it writes the most recent N seconds to a file and continues recording --audio record audio with the stream. Defaults to the default audio capture device --audio-device which audio device to record from. list devices with `pactl list short sources` [default: default] --audio-backend which ffmpeg audio capture backend (see https://ffmpeg.org/ffmpeg-devices.html`) to use. you almost certainally want to specify --audio-device if you use this, as the values depend on the backend used [default: pulse] --no-damage copy every frame, not just unique frames. This can be helpful to get a non-variable framerate video, but is generally discouraged as it uses much more resources. Useful for testing --gop-size GOP (group of pictures) size --generate-completions print completions for the specified shell to stdout [possible values: bash, elvish, fish, powershell, zsh] --capture-backend which capture backend to use [default: auto] [possible values: auto, wlr-screencopy, ext-image-copy-capture] -h, --help Print help -V, --version Print version