Update README.md

This commit is contained in:
Rafostar
2020-11-09 20:12:07 +01:00
committed by GitHub
parent 513904bd6d
commit 010fcf6dcf

View File

@@ -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.