edited README

This commit is contained in:
fduncanh
2022-04-22 16:38:53 -04:00
parent c6fb678cfd
commit 1c61f78c4a
3 changed files with 20 additions and 13 deletions

View File

@@ -17,11 +17,11 @@
<p>Connections to the UxPlay server by iOS/MacOS clients can be initiated both in AirPlay Mirror mode (which streams lossily-compressed AAC audio while mirroring the client screen, or in the alternative AirPlay Audio mode which streams Apple Lossless (ALAC) audio without screen mirroring (the accompanying metadata and cover art in this mode is not displayed). <em>Switching between these two modes during an active connection is possible: in Mirror mode, close the mirror window and start an Audio mode connection, switch back by initiating a Mirror mode connection.</em> <strong>Note that Apple DRM (as in Apple TV app content on the client) cannot be decrypted by UxPlay, and (unlike with a true AppleTV), the client cannot run a http connection on the server instead of streaming content from one on the client.</strong></p>
<h3 id="possibility-for-using-hardware-accelerated-h264-video-decoding-if-available.">Possibility for using hardware-accelerated h264 video-decoding, if available.</h3>
<p>UxPlay uses <a href="https://gstreamer.freedesktop.org">GStreamer</a> Plugins for rendering audio and video, This means that video and audio are supported “out of the box”, using a choice of plugins. AirPlay streams video in h264 format: gstreamer decoding is plugin agnostic, and uses accelerated GPU hardware h264 decoders if available; if not, software decoding is used.</p>
<p>For systems with Intel integrated graphics, hardware GPU decoding with the gstreamer VAAPI plugin is preferable. VAAPI is open-source, and in addition to Intel, can support some AMD GPUs (the open-source “Nouveau” drivers for NVIDIA graphics are also in principle supported when VAAPI is supplemented with firmware extracted from the proprietary NVIDIA drivers).</p>
<p>For systems with Intel or AMD integrated graphics, hardware GPU decoding with the gstreamer VAAPI plugin is preferable. VAAPI is open-source, and in addition to Intel and AMD graphics, the open-source “Nouveau” drivers for NVIDIA graphics are also in principle supported: see <a href="https://nouveau.freedesktop.org/VideoAcceleration.html">here</a>, which requires VAAPI to be supplemented with firmware extracted from the proprietary NVIDIA drivers.</p>
<p>For NVIDIA graphics with the proprietary drivers, the <code>nvh264dec</code> plugin (included in gstreamer1.0-plugins-bad since GStreamer-1.18.0) can be used for accelerated video decoding on the NVIDIA GPU after NVIDIAs CUDA driver <code>libcuda.so</code> is installed. This plugin should be used with options <code>uxplay -vd nvh264dec -vs glimagesink</code>. For GStreamer-1.16.3 or earlier, the plugin is called <code>nvdec</code>, and must be built by the user: see <a href="https://github.com/FDH2/UxPlay/wiki/NVIDIA-nvdec-and-nvenc-plugins">these instructions</a>. This older form of the plugin should be used with the <code>-vd nvdec -vs glimagesink</code> uxplay options.</p>
<ul>
<li><p><strong>GPU Support for Raspberry Pi</strong></p>
<p>Raspberry Pi (RPi) computers can run UxPlay with software decoding of h264 video (by adding <code>-avdec</code> to the uxplay options) but this usually has unacceptable latency, and hardware-accelerated decoding by the Pis built-in Broadcom GPU should be used. RPi OS (Bullseye) has abandoned the omx (OpenMAX) driver used till now for this by <a href="http://github.com/FD-/RPiPlay">RPiPlay</a>, in favor of v4l2 (Video4Linux2). The GStreamer Video4Linux2 plugin only works with UxPlay since GStreamer-1.21.0.0 on the development branch, but a (partial) backport to 1.18.4 for RPi OS (Bullseye) has already appeared in current updates. In case the full update has not yet appeared, or you are using a different distribution, you can find <a href="https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches">patching instructions</a> in the <a href="https://github.com/FDH2/UxPlay/wiki">UxPlay Wiki</a>. Patches for GStreamer-1.18.5 (used in Ubuntu 21.10 for RPi) and GStreamer-1.20.1 (used in Manjaro for RPi) are also available. On a non-“Desktop” system without X11 that uses framebuffer video (such as RPi OS Bullseye “Lite”) use option <code>uxplay -rpi</code> with the patched GStreamer. On “Desktop” operating systems, use the options <code>uxplay -rpigl</code> (for openGL video), or <code>uxplay -rpiwl</code> (for Wayland video).</p></li>
<p>Raspberry Pi (RPi) computers can run UxPlay with software decoding of h264 video (by adding <code>-avdec</code> to the uxplay options) but this usually has unacceptable latency, and hardware-accelerated decoding by the Pis built-in Broadcom GPU should be used. RPi OS (Bullseye) has abandoned the omx (OpenMAX) driver used till now for this by <a href="http://github.com/FD-/RPiPlay">RPiPlay</a>, in favor of v4l2 (Video4Linux2). The GStreamer Video4Linux2 plugin only works with UxPlay since GStreamer-1.21.0.0 on the development branch, but a (partial) backport to 1.18.4 for RPi OS (Bullseye) has already appeared in current updates. In case the full update has not yet appeared, or you are using a different distribution, you can find <a href="https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches">patching instructions</a> in the <a href="https://github.com/FDH2/UxPlay/wiki">UxPlay Wiki</a>. Patches for GStreamer-1.18.5 (used in Ubuntu 21.10 for RPi) and GStreamer-1.20.1 (used in Manjaro for RPi) are also available. On a non-“Desktop” system without X11 that uses framebuffer video (such as RPi OS Bullseye “Lite”) use option <code>uxplay -rpi</code> with the patched GStreamer. On “Desktop” operating systems, use the options <code>uxplay -rpigl</code> (for openGL video), or <code>uxplay -rpiwl</code> (for Wayland video); note that option <code>-rpigl</code> was working very well on systems with the 5.10.x Linux kernel, but the recent upgrade of RPi OS to 5.15.x kernels seems to have a regression that causes unacceptable latency.</p></li>
</ul>
<h3 id="note-to-packagers-openssl-3.0.0-solves-gpl-v3-license-issues.">Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues.</h3>
<p>Some Linux distributions such as Debian do not allow distribution of compiled GPL code linked to OpenSSL-1.1.1 because its “dual OpenSSL/SSLeay” license has some incompatibilities with GPL, unless all code authors have explicitly given an “exception” to allow such linking (the historical origins of UxPlay make this impossible to obtain). Other distributions treat OpenSSL as a “System Library” which the GPL allows linking to.</p>

View File

@@ -68,9 +68,10 @@ This means that video and audio are supported "out of the box", using a choice o
AirPlay streams video in h264 format: gstreamer decoding is plugin agnostic, and uses accelerated GPU hardware
h264 decoders if available; if not, software decoding is used.
For systems with Intel integrated graphics, hardware GPU decoding with the gstreamer VAAPI plugin is preferable. VAAPI is
open-source, and in addition to Intel, can support some AMD GPU's (the open-source "Nouveau" drivers for NVIDIA
graphics are also in principle supported when VAAPI is supplemented with firmware extracted from the proprietary NVIDIA drivers).
For systems with Intel or AMD integrated graphics, hardware GPU decoding with the gstreamer VAAPI plugin is preferable. VAAPI is
open-source, and in addition to Intel and AMD graphics, the open-source "Nouveau" drivers for NVIDIA
graphics are also in principle supported: see [here](https://nouveau.freedesktop.org/VideoAcceleration.html),
which requires VAAPI to be supplemented with firmware extracted from the proprietary NVIDIA drivers.
For NVIDIA graphics with the proprietary drivers, the `nvh264dec` plugin
(included in gstreamer1.0-plugins-bad since GStreamer-1.18.0)
@@ -96,7 +97,9 @@ This older form of the plugin should be used with the `-vd nvdec -vs glimagesi
On a non-"Desktop" system without X11 that uses
framebuffer video (such as RPi OS Bullseye "Lite") use option `uxplay -rpi` with the patched GStreamer.
On "Desktop" operating systems, use the options `uxplay -rpigl`
(for openGL video), or ``uxplay -rpiwl`` (for Wayland video).
(for openGL video), or ``uxplay -rpiwl`` (for Wayland video); note that option `-rpigl` was working very well on
systems with the 5.10.x Linux kernel,
but the recent upgrade of RPi OS to 5.15.x kernels seems to have a regression that causes unacceptable latency.
### Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues.

View File

@@ -85,12 +85,13 @@ h264 format: gstreamer decoding is plugin agnostic, and uses accelerated
GPU hardware h264 decoders if available; if not, software decoding is
used.
For systems with Intel integrated graphics, hardware GPU decoding with
the gstreamer VAAPI plugin is preferable. VAAPI is open-source, and in
addition to Intel, can support some AMD GPU's (the open-source "Nouveau"
drivers for NVIDIA graphics are also in principle supported when VAAPI
is supplemented with firmware extracted from the proprietary NVIDIA
drivers).
For systems with Intel or AMD integrated graphics, hardware GPU decoding
with the gstreamer VAAPI plugin is preferable. VAAPI is open-source, and
in addition to Intel and AMD graphics, the open-source "Nouveau" drivers
for NVIDIA graphics are also in principle supported: see
[here](https://nouveau.freedesktop.org/VideoAcceleration.html), which
requires VAAPI to be supplemented with firmware extracted from the
proprietary NVIDIA drivers.
For NVIDIA graphics with the proprietary drivers, the `nvh264dec` plugin
(included in gstreamer1.0-plugins-bad since GStreamer-1.18.0) can be
@@ -125,7 +126,10 @@ This older form of the plugin should be used with the
as RPi OS Bullseye "Lite") use option `uxplay -rpi` with the
patched GStreamer. On "Desktop" operating systems, use the options
`uxplay -rpigl` (for openGL video), or `uxplay -rpiwl` (for Wayland
video).
video); note that option `-rpigl` was working very well on systems
with the 5.10.x Linux kernel, but the recent upgrade of RPi OS to
5.15.x kernels seems to have a regression that causes unacceptable
latency.
### Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues.