https://github.com/SeaDve/Kooha
Elegantly record your screen
https://github.com/SeaDve/Kooha
gnome gstreamer gtk-rs gtk4 gtk4-rs linux rust screen-recorder video-recording wayland
Last synced: 10 months ago
JSON representation
Elegantly record your screen
- Host: GitHub
- URL: https://github.com/SeaDve/Kooha
- Owner: SeaDve
- License: gpl-3.0
- Created: 2021-03-04T08:45:11.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-25T01:34:06.000Z (about 1 year ago)
- Last Synced: 2024-10-26T14:49:58.012Z (about 1 year ago)
- Topics: gnome, gstreamer, gtk-rs, gtk4, gtk4-rs, linux, rust, screen-recorder, video-recording, wayland
- Language: Rust
- Homepage:
- Size: 5.47 MB
- Stars: 2,591
- Watchers: 16
- Forks: 69
- Open Issues: 52
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: COPYING
Awesome Lists containing this project
- stars - SeaDve/Kooha
- fucking-Awesome-Linux-Software - 
of `xdg-desktop-portal-wlr` wiki may help determine if your distro
has support for it out of the box. If it does, but it still doesn't work, you
can also check for the [troubleshooting checklist](https://github.com/emersion/xdg-desktop-portal-wlr/wiki/%22It-doesn't-work%22-Troubleshooting-Checklist).
## ⚙️ Experimental Features
These features are disabled by default due to stability issues and possible
performance degradation. However, they can be enabled manually by running Kooha
with `KOOHA_EXPERIMENTAL` env var set to `all` (e.g., `KOOHA_EXPERIMENTAL=all flatpak run io.github.seadve.Kooha`), or individually, by setting
`KOOHA_EXPERIMENTAL` to the following keys (e.g., `KOOHA_EXPERIMENTAL=experimental-formats,window-recording`):
| Feature | Description | Issues |
| ------------------------ | ----------------------------------------------------------------------- | ------------------------- |
| `all` | Enables all experimental features | - |
| `experimental-formats` | Enables other codecs (e.g., hardware-accelerate encoders, VP9, and AV1) | Stability |
| `multiple-video-sources` | Enables recording multiple monitor or windows | Stability and performance |
| `window-recording` | Enables recording a specific window | Flickering |
## 📋 Runtime Requirements
* pipewire
* gstreamer-plugin-pipewire
* xdg-desktop-portal
* xdg-desktop-portal-(e.g., gtk, kde, wlr)
## 🏗️ Building from source
### GNOME Builder
GNOME Builder is the environment used for developing this application.
It can use Flatpak manifests to create a consistent building and running
environment cross-distro. Thus, it is highly recommended you use it.
1. Download [GNOME Builder](https://flathub.org/apps/details/org.gnome.Builder).
2. In Builder, click the "Clone Repository" button at the bottom, using `https://github.com/SeaDve/Kooha.git` as the URL.
3. Click the build button at the top once the project is loaded.
### Meson
#### Prerequisites
The following packages are required to build Kooha:
* meson
* ninja
* appstreamcli (for checks)
* cargo
* x264 (for MP4)
* gstreamer
* gstreamer-plugins-base
* gstreamer-plugins-ugly (for MP4)
* gstreamer-plugins-bad (for VA encoders)
* glib2
* gtk4
* libadwaita
#### Build Instruction
```shell
git clone https://github.com/SeaDve/Kooha.git
cd Kooha
meson _build --prefix=/usr/local
ninja -C _build install
```
## 📦 Third-Party Packages
Unlike Flatpak, take note that these packages are not officially supported by the developer.
### Repology
You can also check out other third-party packages on [Repology](https://repology.org/project/kooha/versions).
## 🙌 Help translate Kooha
You can help Kooha translate into your native language. If you find any typos
or think you can improve a translation, you can use the [Weblate](https://hosted.weblate.org/engage/seadve/) platform.
## ☕ Support me and the project
Kooha is free and will always be for everyone to use. If you like the project and
would like to support it, you may [buy me a coffee](https://www.buymeacoffee.com/seadve).
## 💝 Acknowledgment
I would like to express my gratitude to the [contributors](https://github.com/SeaDve/Kooha/graphs/contributors)
and [translators](https://hosted.weblate.org/engage/seadve/) of the project.
I would also like to thank the open-source software projects, libraries, and APIs that were
used in developing this app, such as GStreamer, GTK, LibAdwaita, and many others, for making Kooha possible.
I would also like to acknowledge [RecApp](https://github.com/amikha1lov/RecApp), which greatly inspired the creation of Kooha,
as well as [GNOME Screenshot](https://gitlab.gnome.org/GNOME/gnome-screenshot), which served as a reference for Kooha's icon
design.