 |
|
| |
WF-RECORDER(1) |
FreeBSD General Commands Manual |
WF-RECORDER(1) |
wf-recorder —
simple screen recording program for wlroots-based
compositors
wf-recorder |
[-abcCdDefFghlmopPrRvxX ]
[-a, --audio
[=DEVICE]] [-b,
--bframes max_b_frames]
[-B, --buffrate
buffrate] [-c,
--codec output_codec]
[-r, --framerate
framerate] [-d,
--device encoding_device]
[--no-dmabuf ] [-D,
--no-damage ] [-f
filename.ext] [-F
filter_string] [-g,
--geometry geometry]
[-h, --help ]
[-l, --log ]
[-m, --muxer
muxer] [-o,
--output output]
[-p, --codec-param
[option_param=option_value]]
[-v, --version ]
[-x, --pixel-format ]
[--audio-backend
audio_backend] [-C,
--audio-codec
output_audio_codec] [-P,
--audio-codec-param
[option_param=option_value]]
[-R, --sample-rate
sample_rate] [-X,
--sample-format
sample_format] [-y,
--overwrite ] |
wf-recorder is a tool built to record your
screen on Wayland compositors. It makes use of
wlr-screencopy
for capturing video and
ffmpeg(1)
for encoding it.
In its simplest form, run wf-recorder to
start recording and use ‘Ctrl+C ’ to
stop. This will create a file called
‘recording.mp4 ’ in the current working
directory using the default codec.
The options are as follows:
-a ,
--audio [=DEVICE]
- Starts recording the screen with audio.
DEVICE argument is optional. In case you
want to specify the PulseAudio 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
-b ,
--bframes max_b_frames
- Sets the maximum number of B-Frames to use.
-B ,
--buffrate buffrate
- Tells the encoder a prediction of what framerate to expect. This preserves
VFR and Solves FPS limit issue of some encoders (like svt-av1). Should be
set to the same framerate as display.
-c ,
--codec output_codec
- Specifies the codec of the video. Supports GIF output as well.
To modify codec parameters, use -p
option_name=option_value
-r ,
--framerate framerate
- Sets hard constant framerate. Will duplicate frames to reach it. This
makes the resulting video CFR. Solves FPS limit issue of some encoders.
-d ,
--device encoding_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. Use the -x
yuv420 option in addition to the vaapi options to
convert the data in software, before sending it to the GPU.
--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 the provided extension. If the extension is not recognized
by your
ffmpeg(1)
muxers, the command will fail.
You can check the muxers that your
ffmpeg(1)
installation supports by running
$ ffmpeg -muxers
-F ,
--filter filter_string
- Set the ffmpeg filter to use. VAAPI requires
`scale_vaapi=format=nv12:out_range=full` to work.
-g ,
--geometry
screen_geometry
- Selects a specific part of the screen. The format is "x,y WxH".
-h ,
--help
- Prints the help screen.
-l ,
--log
- Generates a log on the current terminal. For debug purposes.
-m ,
--muxer muxer
- Set the output format to a specific muxer instead of detecting it from the
filename.
-o ,
--output
- Specify the output where the video is to be recorded.
-p ,
--codec-param
[option_name=option_value]
- Change the codec parameters.
-v ,
--version
- Print the version of wf-recorder.
-x ,
--pixel-format
pixel_format
- Set the output pixel format.
List available formats using
$ ffmpeg -pix_fmts
--audio-backend
audio_backend
- Specifies the audio backend to be used when -a is set.
-C ,
--audio-codec
output_audio_codec
- Specifies the codec of the audio.
-P ,
--audio-codec-param
[option_name=option_value]
- Change the audio codec parameters.
-R ,
--sample-rate sample_rate
- Changes the audio sample rate, in HZ. The default value is 48000.
-X ,
--sample-format
sample_format
- Set the output audio sample format.
List available formats using
$ ffmpeg
-sample_fmts
-y ,
--overwrite
- Force overwriting the output file without prompting.
To select a specific part of the screen you can either use
--g geometry or use
https://github.com/emersion/slurp for interactive selection of the screen
area that will be recorded:
$ wf-recorder -g
$(slurp)
You can record screen and sound simultaneously with
$ wf-recorder --audio
--file=recording_with_audio.mp4
To specify an audio device, use the
--a<DEVICE> or
---audio=<DEVICE> options.
To specify a codec use the
-c codec option. To modify
codec parameters, -p
option_name=option_value.
To set a specific output format, use the
-m, --muxer option. For
example, to output to a
video4linux2
loopback you might use:
$ wf-recorder --muxer=v4l2
--codec=rawvideo --file=/dev/video2
To use GPU encoding, use a VAAPI codec (for ex.
‘h264_vaapi ’ ) and specify a GPU
device to use with the -d option:
$ wf-recorder -f test-vaapi.mkv -c
h264_vaapi -d /dev/dri/renderD128
Some drivers report support for
‘rgb0 ’ data for
‘vaapi ’ input but really only support
yuv planar formats. In this case, use the -x
yuv420p option in addition to the
‘vaapi ’ options to convert the data to
yuv planar data before sending it to the GPU.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
|