466 lines
6.8 KiB
HTML
466 lines
6.8 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of WF-RECORDER</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>WF-RECORDER</H1>
|
|
Section: User Commands (1)<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
<BR>BSD mandoc<BR>
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
|
|
|
|
<B>wf-recorder</B>
|
|
|
|
- simple screen recording program for wlroots-based compositors
|
|
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
<B>wf-recorder</B>
|
|
|
|
[-<B>abcdDefghlmoptvx</B>
|
|
|
|
]
|
|
|
|
[-<B>a , -audio </B>[<I>DEVICE</I>
|
|
|
|
]
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>b, -bframes </B><I>max_b_frames</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>c, -codec </B><I>output_codec</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>d, -device </B><I>encoding_device</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>D, -no-damage</B>
|
|
|
|
]
|
|
|
|
[-<B>e, -opencl </B>[<I>opencl_device</I>
|
|
|
|
]
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>f </B><I>filename.ext</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>g, -geometry </B><I>geometry</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>h, -help</B>
|
|
|
|
]
|
|
|
|
[-<B>l, -log</B>
|
|
|
|
]
|
|
|
|
[-<B>m, -muxer </B><I>muxer</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>o, -output </B><I>output</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>p, -codec-param </B>[<I>option_param=option_value</I>
|
|
|
|
]
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>t, -force-yuv</B>
|
|
|
|
]
|
|
|
|
[-<B>v, -version</B>
|
|
|
|
]
|
|
|
|
[-<B>x, -pixel-format</B>
|
|
|
|
]
|
|
|
|
<A NAME="lbAD"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
<B>wf-recorder</B>
|
|
|
|
|
|
is a tool built to record your screen on Wayland compositors.
|
|
It makes use of
|
|
<B>wlr-screencopy</B>
|
|
|
|
for capturing video and
|
|
<A HREF="/cgi-bin/man/man2html?1+ffmpeg">ffmpeg</A>(1)
|
|
|
|
|
|
for encoding it.
|
|
<P>
|
|
|
|
In its simplest form, run
|
|
<B>wf-recorder</B>
|
|
|
|
|
|
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
|
|
<I>codec.</I>
|
|
|
|
<P>
|
|
|
|
The options are as follows:
|
|
<P>
|
|
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="1"><B>-a , -audio </B>[<I>DEVICE</I>
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Starts recording the screen with audio.
|
|
<P>
|
|
|
|
<I>DEVICE</I>
|
|
|
|
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
|
|
|
|
<P>
|
|
|
|
<DT id="2"><B>-b , -bframes </B><I>max_b_frames</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Sets the maximum number of B-Frames to use.
|
|
<P>
|
|
|
|
<DT id="3"><B>-c , -codec</B>
|
|
|
|
|
|
<DD>
|
|
<I>output_codec</I>
|
|
|
|
Specifies the codec of the video. Supports GIF output as well.
|
|
<P>
|
|
|
|
To modify codec parameters, use
|
|
-<B>p</B>
|
|
|
|
<I>option_name=option_value</I>
|
|
|
|
<P>
|
|
|
|
<DT id="4"><B>-d , -device </B><I>encoding_device</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Selects the device to use when encoding the video.
|
|
<P>
|
|
|
|
Some drivers report support for
|
|
`rgb0'
|
|
|
|
data for vaapi input but really only support yuv.
|
|
Use the
|
|
-<B>t , -force-yuv</B>
|
|
|
|
option in addition to the vaapi options to convert the
|
|
data in software, before sending it to the GPU.
|
|
<P>
|
|
|
|
<DT id="5"><B>-D , -no-damage</B>
|
|
|
|
|
|
<DD>
|
|
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.
|
|
<P>
|
|
|
|
<DT id="6"><B>-e , -opencl </B><I>opencl_device</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Attempts to use OpenCL if
|
|
<B>wf-recorder</B>
|
|
|
|
|
|
was built with OpenCL support and
|
|
-<B>t , -force-yuv</B>
|
|
|
|
are specified, even without vaapi GPU encoding.
|
|
Use
|
|
-<B>e , -opencl</B>
|
|
|
|
<I>opencl_device</I>
|
|
|
|
to use a specific OpenCL device, where
|
|
<I>opencl_device</I>
|
|
|
|
is one of the devices listed.
|
|
<P>
|
|
|
|
<DT id="7"><B>-f </B><I>filename.ext</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
By using the
|
|
-<B>f</B>
|
|
|
|
option, the output file will have the name
|
|
<I>filename.ext</I>
|
|
|
|
and the file format will be determined by the provided extension.
|
|
If the extension is not recognized by your
|
|
<A HREF="/cgi-bin/man/man2html?1+ffmpeg">ffmpeg</A>(1)
|
|
|
|
|
|
muxers, the command will fail.
|
|
<P>
|
|
|
|
You can check the muxers that your
|
|
<A HREF="/cgi-bin/man/man2html?1+ffmpeg">ffmpeg</A>(1)
|
|
|
|
|
|
installation supports by running
|
|
|
|
<BLOCKQUOTE><TT>$ ffmpeg -muxers</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
<DT id="8"><B>-g , -geometry </B><I>screen_geometry</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Selects a specific part of the screen.
|
|
<P>
|
|
|
|
<DT id="9"><B>-h , -help</B>
|
|
|
|
|
|
<DD>
|
|
Prints the help screen.
|
|
<P>
|
|
|
|
<DT id="10"><B>-l , -log</B>
|
|
|
|
|
|
<DD>
|
|
Generates a log on the current terminal. For debug purposes.
|
|
<P>
|
|
|
|
<DT id="11"><B>-m , -muxer </B><I>muxer</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Set the output format to a specific muxer instead of detecting it from the filename.
|
|
<P>
|
|
|
|
<DT id="12"><B>-o , -output</B>
|
|
|
|
|
|
<DD>
|
|
Specify the output where the video is to be recorded.
|
|
<P>
|
|
|
|
<DT id="13"><B>-p , -codec-param </B>[<I>option_name=option_value</I>
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Change the codec parameters.
|
|
<P>
|
|
|
|
<DT id="14"><B>-t , -force-yuv</B>
|
|
|
|
|
|
<DD>
|
|
Use this option in addition to the vaapi options to convert
|
|
the data in software, before sending it to the GPU.
|
|
<P>
|
|
|
|
<DT id="15"><B>-v , -version</B>
|
|
|
|
|
|
<DD>
|
|
Print the version of wf-recorder.
|
|
<P>
|
|
|
|
<DT id="16"><B>-x , -pixel-format </B><I>pixel_format</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Set the output pixel format.
|
|
<P>
|
|
|
|
List available formats using
|
|
|
|
<BLOCKQUOTE><TT>$ ffmpeg -pix_fmts</TT></BLOCKQUOTE>
|
|
</DL>
|
|
<P>
|
|
|
|
<A NAME="lbAE"> </A>
|
|
<H2>EXAMPLES</H2>
|
|
|
|
To select a specific part of the screen you can either use
|
|
-<B>-g </B><I>geometry</I>
|
|
|
|
|
|
|
|
or
|
|
use <A HREF="https://github.com/emersion/slurp">https://github.com/emersion/slurp</A> for interactive selection of the
|
|
screen area that will be recorded:
|
|
|
|
<BLOCKQUOTE><TT>$ wf-recorder -g "$(slurp)"</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
You can record screen and sound simultaneously with
|
|
|
|
<BLOCKQUOTE><TT>$ wf-recorder --audio --file=recording_with_audio.mp4</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
To specify a
|
|
<I>codec</I>
|
|
|
|
use the
|
|
-<B>c </B><I>codec</I>
|
|
|
|
|
|
|
|
option. To modify codec parameters,
|
|
-<B>p</B>
|
|
|
|
<I>option_name=option_value.</I>
|
|
|
|
<P>
|
|
|
|
To set a specific output format, use the
|
|
-<B>m muxer</B>
|
|
|
|
option. For example, to
|
|
output to a v
|
|
<B>ideo4linux2</B>
|
|
|
|
loopback you might use:
|
|
|
|
<BLOCKQUOTE><TT>$ wf-recorder --muxer=v4l2 --codec=rawvideo --file=/dev/video2</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
To use GPU encoding, use a VAAPI codec (for ex.
|
|
`h264_vaapi'
|
|
|
|
) and specify a GPU
|
|
device to use with the
|
|
-<B>d</B>
|
|
|
|
option:
|
|
|
|
<BLOCKQUOTE><TT>$ wf-recorder -f test-vaapi.mkv -c h264_vaapi -d /dev/dri/renderD128</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
Some drivers report support for
|
|
`rgb0'
|
|
|
|
data for
|
|
`vaapi'
|
|
|
|
input but really only support yuv planar formats.
|
|
In this case, use the
|
|
-<B>t , -force-yuv</B>
|
|
|
|
option in addition to the
|
|
`vaapi'
|
|
|
|
options to convert the data to yuv planar data before sending it to the GPU.
|
|
<A NAME="lbAF"> </A>
|
|
<H2>SEE ALSO</H2>
|
|
|
|
<A HREF="/cgi-bin/man/man2html?1+ffmpeg">ffmpeg</A>(1),
|
|
|
|
|
|
<A HREF="/cgi-bin/man/man2html?1+pactl">pactl</A>(1)
|
|
|
|
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="17"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="18"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="19"><A HREF="#lbAD">DESCRIPTION</A><DD>
|
|
<DT id="20"><A HREF="#lbAE">EXAMPLES</A><DD>
|
|
<DT id="21"><A HREF="#lbAF">SEE ALSO</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:05:29 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|