botspot-screen-recorder
# Botspot's Screen Recorder (BSR) [](https://github.com/Botspot/pi-apps) All-in-one simple screen recording tool for wlroots-based Wayland compositors like LabWC, Wayfire, and Sway. - Record audio - Record the screen - Record your webcam - Record the sound going to the speakers - **Or all of the above, all at once!** π BSR is: - Super lightweight - Just one shell script - Aligned with KISS principles - Ready to do its best on hardware that lacks hardware-accelerated video encoding (such as Raspberry Pi) BSR has flexible operation modes. | | Screen + Webcam | Screen only | Webcam only | None | | -- | -- | -- | -- | -- | | **System Audio** | `β ` Supported | `β ` Supported | `β ` Supported | `β ` Supported | | **Microphone** | `β ` Supported | `β ` Supported | `β ` Supported | `β ` Supported | | **Both** | `β ` Supported | `β ` Supported | `β ` Supported | `β ` Supported | | **None** | `β ` Supported | `β ` Supported | `β ` Supported | | - Video processing options: - Record a fixed rectanglular section of the screen. (crop feature) - Mirror the webcam feed. - Custom screen recording frame rate. - Custom video quality (high/medium/low) - Downscale the output video by a factor of 2. For example, a 1920x1080 screen or webcam can be encoded as 960x540 video file to reduce filesize and CPU usage. - Reduce video file size by 60% without quality reduction, by re-encoding the video file with libx264's `slower` compression preset. ### Screenshots:   ### Supported systems: - Any distro using a [Wayland wlroots-based compositor](https://github.com/solarkraft/awesome-wlroots?tab=readme-ov-file#compositors). - 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. ### Download and run: ``` 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` ### Debian packages to install: 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 ``` ### Arch support: [This user](https://forums.raspberrypi.com/viewtopic.php?p=2316250&sid=98556ae27fa88a9adb8a26c0adc58165#p2316250) says this command works on Arch: If BSR detects all necessary packages are installed, it should not try to use apt to install anything. Let me know otherwise. ``` sudo pacman -S --needed ffmpeg gcc git meson mpv ninja slurp v4l-utils wf-recorder wlr-randr yad ``` ### Usage 1. Run the script. 2. Choose your options and click Start recording. 3. Stop the recording when done. 4. Profit. 5. Your chosen presets are saved to `~/.config/botspot-screen-recorder.conf` for next time. ### Tips for using the on-screen webcam feed - 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. :( ### Update to latest version Simply run BSR. It auto-updates using `git pull`. ### Command-line flags 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. ### Keyboard shortcuts This is an open discussion. Would you find it useful to launch/start/stop BSR using keyboard shortcuts? Let me know. # Feedback requested!! 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. ### Notable open source projects used in BSR: - [MPV](https://github.com/mpv-player/mpv) for the on-screen webcam feed - [wf-recorder](https://github.com/ammen99/wf-recorder) for recording the screen - [ffmpeg](https://ffmpeg.org/) used in the background for conversion and encoding ### How long did it take to write BSR? 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.