OS Manuals

/usr/bin/wf-recorder

Screen recorder for wlroots-based Wayland compositors, encoding through the ffmpeg libraries in software (libx264) or with VA-API

From wf-recorder 0.6.0-r2 (enterprise-packages), captured 2026-11-08 by running wf-recorder --help (exit 0). permalink

Usage: wf-recorder [OPTION]... -f [FILE]...
Screen recording of wlroots-based compositors

With no FILE, start recording the current screen.

Use Ctrl+C to stop.

  -a, --audio[=DEVICE]      Starts recording the screen with audio.
                            [=DEVICE] argument is optional.
                            In case you want to specify the audio device which will capture
                            the audio, you can run this command with the name of that device.
                            You can find your device by running: pactl list sources | grep Name
                            Specify device like this: -a<device> or --audio=<device>

  -c, --codec               Specifies the codec of the video. These can be found by using:
                            ffmpeg -encoders
                            To modify codec parameters, use -p <option_name>=<option_value>

  -r, --framerate           Changes framerate to constant framerate with a given value.

  -d, --device              Selects the device to use when encoding the video
                            Some drivers report support for rgb0 data for vaapi input but
                            really only support yuv.

  --no-dmabuf               By default, wf-recorder will try to use only GPU buffers and copies if
                            using a GPU encoder. However, this can cause issues on some systems. In such
                            cases, this option will disable the GPU copy and force a CPU one.

  -D, --no-damage           By default, wf-recorder will request a new frame from the compositor
                            only when the screen updates. This results in a much smaller output
                            file, which however has a variable refresh rate. When this option is
                            on, wf-recorder does not use this optimization and continuously
                            records new frames, even if there are no updates on the screen.

  -f <filename>.ext         By using the -f option the output file will have the name :
                            filename.ext and the file format will be determined by provided
                            while extension .ext . If the extension .ext provided is not
                            recognized by your FFmpeg muxers, the command will fail.
                            You can check the muxers that your FFmpeg installation supports by
                            running: ffmpeg -muxers

  -m, --muxer               Set the output format to a specific muxer instead of detecting it
                            from the filename.

  -x, --pixel-format        Set the output pixel format. These can be found by running:
                            ffmpeg -pix_fmts

  -g, --geometry            Selects a specific part of the screen. The format is "x,y WxH".

  -h, --help                Prints this help screen.

  -v, --version             Prints the version of wf-recorder.

  -l, --log                 Generates a log on the current terminal. Debug purposes.

  -L, --list-output          List the available outputs.

  -o, --output              Specify the output where the video is to be recorded.

  -p, --codec-param         Change the codec parameters.
                            -p <option_name>=<option_value>

  -F, --filter              Specify the ffmpeg filter string to use. For example,
                            -F scale_vaapi=format=nv12 is used for VAAPI.

  -b, --bframes             This option is used to set the maximum number of b-frames to be used.
                            If b-frames are not supported by your hardware, set this to 0.

  -B. --buffrate            This option is used to specify the buffers expected framerate. this
                            may help when encoders are expecting specific or limited framerate.

  --audio-backend           Specifies the audio backend among the available backends, for ex.
                            --audio-backend=pipewire

  -C, --audio-codec         Specifies the codec of the audio. These can be found by running:
                            ffmpeg -encoders
                            To modify codec parameters, use -P <option_name>=<option_value>

  -X, --sample-format       Set the output audio sample format. These can be found by running:
                            ffmpeg -sample_fmts

  -R, --sample-rate         Changes the audio sample rate in HZ. The default value is 48000.

  -P, --audio-codec-param   Change the audio codec parameters.
                            -P <option_name>=<option_value>

  -y, --overwrite           Force overwriting the output file without prompting.

Examples:

  Video Only:

  - wf-recorder                         Records the video. Use Ctrl+C to stop recording.
                                        The video file will be stored as recording.mp4 in the
                                        current working directory.

  - wf-recorder -f <filename>.ext       Records the video. Use Ctrl+C to stop recording.
                                        The video file will be stored as <filename>.ext in the
                                        current working directory.

  Video and Audio:

  - wf-recorder -a                      Records the video and audio. Use Ctrl+C to stop recording.
                                        The video file will be stored as recording.mp4 in the
                                        current working directory.

  - wf-recorder -a -f <filename>.ext    Records the video and audio. Use Ctrl+C to stop recording.
                                        The video file will be stored as <filename>.ext in the
                                        current working directory.
Options (25)
OptionDescriptionSource
-a, --audio DEVICEStarts recording the screen with audio.help + man
-c, --codec output_codecSpecifies the codec of the video.help + man
-r, --framerate framerateChanges framerate to constant framerate with a given value.help + man
-d, --device encoding_deviceSelects the device to use when encoding the video Some drivers report support for rgb0 data for vaapi input but really only support yuv.help + man
--no-dmabufBy default, wf-recorder will try to use only GPU buffers and copies if using a GPU encoder.help + man
-D, --no-damageBy default, wf-recorder will request a new frame from the compositor only when the screen updates.help + man
-f, --file filename>.extBy using the -f option the output file will have the name : filename.ext and the file format will be determined by provided while extension .ext .help + man
-m, --muxer muxerSet the output format to a specific muxer instead of detecting it from the filename.help + man
-x, --pixel-format pixel_formatSet the output pixel format.help + man
-g, --geometry screen_geometrySelects a specific part of the screen.help + man
-h, --helpPrints this help screen.help + man
-v, --versionPrints the version of wf-recorder.help + man
-l, --logGenerates a log on the current terminal.help + man
-L, --list-outputList the available outputs.help + man
-o, --outputSpecify the output where the video is to be recorded.help + man
-p, --codec-param option_name=option_valueChange the codec parameters.help + man
-F, --filter filter_stringSpecify the ffmpeg filter string to use.help + man
-b, --bframes max_b_framesThis option is used to set the maximum number of b-frames to be used.help + man
-B, --buffrate --buffrateThis option is used to specify the buffers expected framerate.help + man
--audio-backend audio_backendSpecifies the audio backend among the available backends, for ex.help + man
-C, --audio-codec output_audio_codecSpecifies the codec of the audio.help + man
-X, --sample-format sample_formatSet the output audio sample format.help + man
-R, --sample-rate sample_rateChanges the audio sample rate, in HZ.help + man
-P, --audio-codec-param option_name=option_valueChange the audio codec parameters.help + man
-y, --overwriteForce overwriting the output file without prompting.help + man
Examples (5) from the manual page, untested

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.