mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-30 07:42:23 +02:00
Update README.md
This commit is contained in:
95
README.md
95
README.md
@@ -43,36 +43,17 @@ Using hardware acceleration is highly recommended. As stated in `GStreamer` wiki
|
|||||||
In the case of OpenGL based elements, the buffers have the GstVideoGLTextureUploadMeta meta, which
|
In the case of OpenGL based elements, the buffers have the GstVideoGLTextureUploadMeta meta, which
|
||||||
efficiently copies the content of the VA-API surface into a GL texture.
|
efficiently copies the content of the VA-API surface into a GL texture.
|
||||||
```
|
```
|
||||||
Clapper uses `OpenGL` based sinks, so when `VA-API` is available, both CPU and RAM usage is much lower. Especially if you have `gst-plugins-bad` 1.18+ with new `vah264dec` decoder which shares a single GL context with Clapper and uses DRM connection. If you have an AMD/Intel GPU, I highly recommend this new decoder.
|
Clapper uses `OpenGL` based sinks, so when `VA-API` is available, both CPU and RAM usage is much lower. Especially with `gst-plugins-bad` 1.18+ and new `vah264dec` decoder which shares a single GL context with Clapper and uses DRM connection. If you have an AMD/Intel GPU and use Wayland session, I highly recommend enabling this new decoder in Clapper `Preferences->Advanced->GStreamer`.
|
||||||
|
|
||||||
To use `VA-API` with H.264 videos, make sure you have `gst-plugins-bad` 1.18+. For other codecs additionally install `gstreamer1-vaapi`. Verify with:
|
|
||||||
```shell
|
|
||||||
gst-inspect-1.0 vah264dec
|
|
||||||
gst-inspect-1.0 vaapi
|
|
||||||
```
|
|
||||||
On some older GPUs you might need to export `GST_VAAPI_ALL_DRIVERS=1` environment variable.
|
|
||||||
|
|
||||||
Other acceleration methods (supported by `GStreamer`) should also work, but I have not tested them due to lack of hardware.
|
Other acceleration methods (supported by `GStreamer`) should also work, but I have not tested them due to lack of hardware.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## Requirements
|
## Installation from flatpak (recommended)
|
||||||
* **GTK4** >= 3.99.2
|
The flatpak package includes all required dependencies and codecs. Additionally it also has a few patches, thus some funcionalities work better (or are only available) on flatpak version (until my changes are accepted upstream).
|
||||||
* **GStreamer** >= 1.18 (with GstPlayer lib)
|
|
||||||
|
|
||||||
Clapper uses GTK4 along with `GStreamer` bindings from `GI` repository, so if your distro ships them as separate package, they must be installed first.
|
```sh
|
||||||
Additionally Clapper requires these `GStreamer` elements:
|
flatpak install https://rafostar.github.io/flatpak/com.github.rafostar.Clapper.flatpakref
|
||||||
* [gtk4glsink](https://gstreamer.freedesktop.org/documentation/gtk/gtkglsink.html)
|
```
|
||||||
* [glsinkbin](https://gstreamer.freedesktop.org/documentation/opengl/glsinkbin.html)
|
|
||||||
|
|
||||||
**Attention:** `gtk4glsink` is my own port of current GStreamer `gtkglsink` to GTK4. The element is not part of GStreamer yet (pending review). Fedora package is available in my [OBS repository](https://software.opensuse.org//download.html?project=home%3ARafostar&package=clapper). It will be installed along with Clapper if you add my repo to `dnf` package manager. Otherwise you might want to build it yourself from [source code](https://github.com/Rafostar/gst-plugins-good/tree/GTK4) of my gst-plugins-good GTK4 branch. Also please note that the GTK4 plugin is conflicting with the GTK3 version of the same plugin. You cannot install both.
|
|
||||||
|
|
||||||
Other required plugins (codecs) depend on video format.
|
|
||||||
|
|
||||||
Recommended additional packages you should install manually via package manager:
|
|
||||||
* `gstreamer-libav` - codecs required to play most videos
|
|
||||||
* `gstreamer-vaapi` - hardware acceleration
|
|
||||||
|
|
||||||
Please note that packages naming varies by distro.
|
|
||||||
|
|
||||||
## Packages
|
## Packages
|
||||||
The [pkgs folder](https://github.com/Rafostar/clapper/tree/master/pkgs) in this repository contains build scripts for various package formats. You can use them to build package yourself or download one of pre-built packages:
|
The [pkgs folder](https://github.com/Rafostar/clapper/tree/master/pkgs) in this repository contains build scripts for various package formats. You can use them to build package yourself or download one of pre-built packages:
|
||||||
@@ -93,69 +74,7 @@ makepkg -si
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
## Installation from source code
|
## Installation from source code
|
||||||
Run in terminal:
|
The requirements and how to build from git source code are described in the [wiki](https://github.com/Rafostar/clapper/wiki#installation-from-source-code).
|
||||||
```shell
|
|
||||||
meson builddir --prefix=/usr/local
|
|
||||||
sudo meson install -C builddir
|
|
||||||
```
|
|
||||||
|
|
||||||
Remember that you also need `gtk4glsink`. You can build it from my github fork of [gst-plugins-good](https://github.com/Rafostar/gst-plugins-good/tree/GTK4) using GTK4 branch.
|
|
||||||
|
|
||||||
Other required GStreamer elements installation:
|
|
||||||
<details>
|
|
||||||
<summary><b>Debian/Ubuntu</b></summary>
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo apt install \
|
|
||||||
gstreamer1.0-plugins-base \
|
|
||||||
gstreamer1.0-plugins-good \
|
|
||||||
gstreamer1.0-plugins-bad \
|
|
||||||
gstreamer1.0-gl \
|
|
||||||
gstreamer1.0-libav \
|
|
||||||
gstreamer-vaapi
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><b>Fedora</b></summary>
|
|
||||||
|
|
||||||
Enable RPM Fusion and run:
|
|
||||||
```shell
|
|
||||||
sudo dnf install \
|
|
||||||
gstreamer1-plugins-base \
|
|
||||||
gstreamer1-plugins-good \
|
|
||||||
gstreamer1-plugins-bad-free \
|
|
||||||
gstreamer1-plugins-bad-free-extras \
|
|
||||||
gstreamer1-libav \
|
|
||||||
gstreamer1-vaapi
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><b>openSUSE</b></summary>
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo zypper install \
|
|
||||||
gstreamer-plugins-base \
|
|
||||||
gstreamer-plugins-good \
|
|
||||||
gstreamer-plugins-bad \
|
|
||||||
gstreamer-plugins-libav \
|
|
||||||
gstreamer-plugins-vaapi
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><b>Arch Linux</b></summary>
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo pacman -S \
|
|
||||||
gst-plugins-base \
|
|
||||||
gst-plugins-good \
|
|
||||||
gst-plugins-bad-libs \
|
|
||||||
gst-libav \
|
|
||||||
gstreamer-vaapi
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Special Thanks
|
## Special Thanks
|
||||||
Many thanks to [sp1ritCS](https://github.com/sp1ritCS) for creating and maintaining package build files.
|
Many thanks to [sp1ritCS](https://github.com/sp1ritCS) for creating and maintaining package build files.
|
||||||
|
Reference in New Issue
Block a user