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:
132
README.md
132
README.md
@@ -28,10 +28,11 @@ 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.
|
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.
|
||||||
|
|
||||||
To use `VA-API` make sure you have `gstreamer1-vaapi` installed. Verify with:
|
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
|
```shell
|
||||||
|
gst-inspect-1.0 vah264dec
|
||||||
gst-inspect-1.0 vaapi
|
gst-inspect-1.0 vaapi
|
||||||
```
|
```
|
||||||
On some older GPUs you might need to export `GST_VAAPI_ALL_DRIVERS=1` environment variable.
|
On some older GPUs you might need to export `GST_VAAPI_ALL_DRIVERS=1` environment variable.
|
||||||
@@ -40,11 +41,13 @@ Other acceleration methods (supported by `GStreamer`) should also work, but I ha
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
Clapper uses `GStreamer` bindings from `GI` repository, so if your distro ships them as separate package, they must be installed first.
|
Clapper uses GTK4 along with `GStreamer` bindings from `GI` repository, so if your distro ships them as separate package, they must be installed first.
|
||||||
Additionally Clapper requires these `GStreamer` elements:
|
Additionally Clapper requires these `GStreamer` elements:
|
||||||
* [gtkglsink](https://gstreamer.freedesktop.org/documentation/gtk/gtkglsink.html)
|
* [gtk4glsink](https://gstreamer.freedesktop.org/documentation/gtk/gtkglsink.html)
|
||||||
* [glsinkbin](https://gstreamer.freedesktop.org/documentation/opengl/glsinkbin.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. 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://gitlab.freedesktop.org/Rafostar/gst-plugins-good/-/tree/GTK4) of my gstreamer GTK4 branch.
|
||||||
|
|
||||||
Other required plugins (codecs) depend on video format.
|
Other required plugins (codecs) depend on video format.
|
||||||
|
|
||||||
Recommended additional packages you should install manually via package manager:
|
Recommended additional packages you should install manually via package manager:
|
||||||
@@ -53,69 +56,90 @@ Recommended additional packages you should install manually via package manager:
|
|||||||
|
|
||||||
Please note that packages naming varies by distro.
|
Please note that packages naming varies by distro.
|
||||||
|
|
||||||
## Installation
|
|
||||||
Run in terminal:
|
|
||||||
```shell
|
|
||||||
meson builddir --prefix=/usr/local
|
|
||||||
sudo meson install -C builddir
|
|
||||||
```
|
|
||||||
|
|
||||||
Additional GStreamer elements installation:
|
|
||||||
<details>
|
|
||||||
<summary>Fedora</summary>
|
|
||||||
|
|
||||||
Enable RPM Fusion and run:
|
|
||||||
```shell
|
|
||||||
sudo dnf install \
|
|
||||||
gstreamer1-plugins-base \
|
|
||||||
gstreamer1-plugins-good-gtk \
|
|
||||||
gstreamer1-libav \
|
|
||||||
gstreamer1-vaapi
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>openSUSE</summary>
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo zypper install \
|
|
||||||
gstreamer-plugins-base \
|
|
||||||
gstreamer-plugins-good \
|
|
||||||
gstreamer-plugins-libav \
|
|
||||||
gstreamer-plugins-vaapi
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Arch Linux</summary>
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sudo pacman -S \
|
|
||||||
gst-plugins-base \
|
|
||||||
gst-plugin-gtk \
|
|
||||||
gst-libav \
|
|
||||||
gstreamer-vaapi
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## 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:
|
||||||
<details>
|
<details>
|
||||||
<summary>Fedora, openSUSE & SLE (rpm)</summary>
|
<summary><b>Debian, Fedora, openSUSE & Ubuntu</b></summary>
|
||||||
|
|
||||||
Pre-built packages are available here:<br>
|
Pre-built packages are available in [my repo](https://software.opensuse.org//download.html?project=home%3ARafostar&package=clapper) ([see status](https://build.opensuse.org/package/show/home:Rafostar/clapper))
|
||||||
[software.opensuse.org//download.html?project=home:sp1rit&package=clapper](https://software.opensuse.org//download.html?project=home%3Asp1rit&package=clapper) ([See status](https://build.opensuse.org/package/show/home:sp1rit/clapper))
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Arch Linux</summary>
|
<summary><b>Arch Linux</b></summary>
|
||||||
|
|
||||||
You can get clapper from the AUR: [clapper-git](https://aur.archlinux.org/packages/clapper-git), or
|
You can get Clapper from the AUR: [clapper-git](https://aur.archlinux.org/packages/clapper-git), or
|
||||||
```shell
|
```shell
|
||||||
cd pkgs/arch
|
cd pkgs/arch
|
||||||
makepkg -si
|
makepkg -si
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## Installation from source code
|
||||||
|
Run in terminal:
|
||||||
|
```shell
|
||||||
|
meson builddir --prefix=/usr/local
|
||||||
|
sudo meson install -C builddir
|
||||||
|
```
|
||||||
|
|
||||||
|
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-gtk4 \
|
||||||
|
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-good-gtk4 \
|
||||||
|
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-good-gtk4 \
|
||||||
|
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-plugin-gtk4 \
|
||||||
|
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