All-in-one screen recording utility for wlroots Wayland compositors like Wayfire, LabWC and Sway.
Botspot Screen Recorder (BSR) makes it easy to record the screen on Wayland Pi OS. Without this, the only real option was to use the wf-recorder
command-line tool, which was quite limited in features.
BSR does use wf-recorder
in some modes, but it can also record the webcam and the screen at the same time in a "streaming gamer" style. The webcam feed is displayed as a window on the desktop to be captured with the rest of the screen, and it can be stretched and moved in real time. BSR also supports capturing the microphone and system audio both at once, so perfect for making any sort of Linux usage tutorials without needing to buy a physical HDMI capture card.
Of course, video encoding does use some CPU/GPU resources. There is no way around that, but BSR has been optimized as much as possible, also offering downscaling and framerate limiting to help reduce resource usage even further.
BSR is:
- Super lightweight
- Just one shell script
- Aligned with KISS principles
- Optimized for hardware like Raspberry Pi that lacks GPU-accelerated video encoding
BSR has flexible operation modes.
- Video source options:
- Record the screen and webcam. The webcam feed is displayed in a window that is captured in the screen recording.
- Record only the screen.
- Record only the webcam directly using ffmpeg.
- Record no video. (only audio)
- Audio source options:
- Capture both system output audio and microphone input.
- Capture only system audio.
- Capture only microphone input.
- Capture no audio. (only video)
- Video processing options:
- Record a fixed rectanglular section of the screen. (crop feature)
- Mirror the webcam feed.
- Limit the screen recording frame rate.
- Downscale the recorded screen by a factor of 2. For example, a 1920x1080 screen can be encoded as a 960x540 video file to reduce filesize and CPU usage.
- Any distro using a Wayland wlroots-based compositor.
- For audio capture, your system needs to be running PipeWire on top of Pulseaudio. If your system only uses Pulseaudio, contact me and I can try to see how possible it is to add support for your setup. It should be easy.
git clone https://github.com/Botspot/botspot-screen-recorder
./botspot-screen-recorder/screen-recorder.sh
On first run, BSR adds a convenient launcher to the start menu. To remove it from the start menu, run rm ~/.local/share/applications/bsr.desktop
None. The script installs them for you. For the sake of completeness, here they are: (most of these are just used to compile wf-recorder)
slurp ffmpeg ninja-build git meson mpv yad g++ wlr-randr v4l-utils wayland-protocols libavutil-dev libavfilter-dev libavdevice-dev libavcodec-dev libavformat-dev libswscale-dev libpulse-dev libgbm-dev libpipewire-0.3-dev libdrm-dev
I don't use Arch, but in theory you just need to install slurp ffmpeg mpv yad wlr-randr v4l-utils wf-recorder
from wherever you install packages from.
- Run the script.
- Choose your options and click Start recording.
- Stop the recording when done.
- Profit.
- Your chosen presets are saved to
~/.config/botspot-screen-recorder.conf
for next time.
- It can be paused using the pause button in the middle of the window.
- It can be resized and moved in real time. Click and drag anywhere on the window to move it.
- Double-click the webcam feed to toggle fullscreen. Press Escape to exit fullscreen.
- To keep the webcam feed visible above other windows, use your Wayland compositor to do it.
- If you are using the LabWC compositor, press Alt+Space then click Always on Top.
- If you are using Wayfire I am not aware of an easy way to do this.
cd botspot-screen-recorder
git pull
Once this is not in beta, this will be added to Pi-Apps and updates will be handled automatically then.
There are no command line flags. Go directly use wf-recorder for that. If you think I should add a new option, let me know.
This is an open discussion. Would you find it useful to launch/start/stop BSR using keyboard shortcuts? Let me know.
This is meant to become the SimpleScreenRecorder for wlroots. Contact me if you want to see a feature or option added, or if anything is not working as expected.
- MPV for the on-screen webcam feed
- wf-recorder for recording the screen
- ffmpeg used in the background for conversion and encoding
Just one night of coding nonstop instead of sleeping. From start to finish it was roughly 9 hours to write these 300 lines of shell script.