README edits

This commit is contained in:
F. Duncanh
2023-10-05 13:26:03 -04:00
parent 9a207a00fe
commit 282ff3bdbd
3 changed files with 141 additions and 111 deletions

View File

@@ -47,47 +47,41 @@ format by Fedora 38 (“<code>sudo dnf install uxplay</code>”).</p></li>
UxPlay, a RPM “specfile” <strong>uxplay.spec</strong> is now provided
with recent <a
href="https://github.com/FDH2/UxPlay/releases">releases</a> (see their
“Assets”), and can also be found in the UxPlay source top directory.
This can be used to build an installable RPM package. First-time RPM
builders should first install the rpm-build and rpmdevtools packages,
then create the rpmbuild tree with “<code>rpmdev-setuptree</code>”. Then
download and copy uxplay.spec into <code>~/rpmbuild/SPECS</code>. In
that directory, run “<code>rpmdev-spectool -g -R uxplay.spec</code>” to
download the corresponding source file <code>uxplay-*.tar.gz</code> into
<code>~/rpmbuild/SOURCES</code> (“rpmdev-spectool” may also be just
called “spectool”); then run “<code>rpmbuild -ba uxplay.spec</code>
(you will need to install any required dependencies this reports). This
should create the uxplay RPM package in a subdirectory of
<code>~/rpmbuild/RPMS</code>. (<strong>uxplay.spec</strong> is tested on
Fedora 38, Rocky Linux 9.2, openSUSE Leap 15.5, Mageia 9, OpenMandriva,
PCLinuxOS; it can be easily modified to include dependency lists for
other RPM-based distributions.)</p></li>
<li><p>On Linux and *BSD the mDNS/DNS-SD (Bonjour/ZeroConf) local
network services needed by UxPlay are usually provided by Avahi:
<strong>if there is a firewall on the server that will host UxPlay, make
sure the default network port for mDNS queries (UDP 5353) is
open</strong>. (Uxplay can work without this port by using only the
hosts loopback interface, but its visibility to clients will be
degraded.) See the <a href="#troubleshooting">Troubleshooting</a>
section below for more details. (With a firewall, you also need to open
ports for UxPlay, and use the <code>-p &lt;n&gt;</code> option; see
<code>man uxplay</code> or <code>uxplay -h</code>.)</p></li>
“Assets”), and can also be found in the UxPlay source top directory. See
the section on using this specfile for <a
href="#building-an-installable-rpm-package">building an installable RPM
package</a>.</p></li>
</ul>
<p>After installation:</p>
<ul>
<li><p>(On Linux and *BSD): if a firewall is active on the server
hosting UxPlay, make sure the default network port (UDP 5353) for
mDNS/DNS-SD queries is open (see <a
href="#troubleshooting">Troubleshooting</a> below for more details);
also open three UDP and three TCP ports for Uxplay, and use the “uxplay
-p <n>” option (see “<code>man uxplay</code>” or
<code>uxplay -h</code>”).</p></li>
<li><p>Even if you install your distributions pre-compiled uxplay
binary package, you may need to read the instructions below for <a
href="#running-uxplay">running UxPlay</a> to see which of your
distributions <strong>GStreamer plugin packages</strong> you should
also install.</p></li>
<li><p>For hardware-accelerated video decoding on Raspberry Pi, Ubuntu
&lt; 23.04 needs GStreamer to be <a
<li><p>For Audio-only mode (Apple Music, etc.) best quality is obtained
with the option “uxplay -async”, but there is then a 2 second latency
imposed by iOS.</p></li>
<li><p>Add any UxPlay options you want to use as defaults to a startup
file <code>~/.uxplayrc</code> (see “<code>man uxplay</code>” or
<code>uxplay -h</code>” for format and other possible
locations).</p></li>
<li><p>On Raspberry Pi: If you use Ubuntu 22.10 or earlier, GStreamer
must be <a
href="https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches">patched</a>
(recommended but optional for Raspberry Pi OS (Bullseye), no longer
needed for Manjaro &gt;= 23.02). <em>(Only these three distributions
supply a kernel module maintained by Raspberry Pi outside the mainline
Linux kernel that accesses the firmware decoder in the Broadcom
GPU)</em>.</p></li>
<li><p>To (easily) compile the latest UxPlay from source, see the
section <a href="#getting-uxplay">Getting UxPlay</a>.</p></li>
to use hardware video decoding by the Broadcom GPU (also recommended but
optional for Raspberry Pi OS (Bullseye): use option
<code>uxplay -bt709</code>” if you do not use the patch).</p></li>
</ul>
<p>To (easily) compile the latest UxPlay from source, see the section <a
href="#getting-uxplay">Getting UxPlay</a>.</p>
<h1 id="detailed-description-of-uxplay">Detailed description of
UxPlay</h1>
<p>This project is a GPLv3 open source unix AirPlay2 Mirror server for
@@ -204,7 +198,9 @@ href="https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches"
Wiki</a>). Also requires the out-of-mainline Linux kernel module
bcm2835-codec maintained by Raspberry Pi, so far only included in
Raspberry Pi OS, and two other distributions (Ubuntu, Manjaro) available
with Raspberry Pi Imager.</p></li>
with Raspberry Pi Imager. <em>Note: The latest Raspberry Pi model 5 does
not provide hardware-accelerated (GPU) H264 decoding as its CPU is
powerful enough for satisfactory software decoding.</em></p></li>
</ul>
<h3 id="note-to-packagers">Note to packagers:</h3>
<p>UxPlays GPLv3 license does not have an added “GPL exception”
@@ -314,11 +310,10 @@ build process, if you wish to test before installing (in which case the
GStreamer plugins must first be installed).</p>
<h3 id="building-on-non-debian-linux-and-bsd">Building on non-Debian
Linux and *BSD</h3>
<p><strong>For those with RPM-based distributions, a RPM spec file
uxplay.spec is also available for building a rpm package with
rpmbuild</strong>. See <a
href="#packaging-status-linux-and-bsd-distributions">“Packaging
Status”</a> section above.</p>
<p>**For those with RPM-based distributions, a RPM spec file uxplay.spec
is also available: see <a
href="#building-an-installable-rpm-package">Building an installable rpm
package</a>.</p>
<ul>
<li><p><strong>Red Hat, or clones like CentOS (now continued as Rocky
Linux or Alma Linux):</strong> (sudo dnf install, or sudo yum install)
@@ -344,6 +339,22 @@ Either avahi-libdns or mDNSResponder must also be installed to provide
the dns_sd library. OpenSSL is already installed as a System
Library.</p></li>
</ul>
<h4 id="building-an-installable-rpm-package">Building an installable RPM
package</h4>
<p>First-time RPM builders should first install the rpm-build and
rpmdevtools packages, then create the rpmbuild tree with
<code>rpmdev-setuptree</code>”. Then download and copy uxplay.spec into
<code>~/rpmbuild/SPECS</code>. In that directory, run
<code>rpmdev-spectool -g -R uxplay.spec</code>” to download the
corresponding source file <code>uxplay-*.tar.gz</code> into
<code>~/rpmbuild/SOURCES</code> (“rpmdev-spectool” may also be just
called “spectool”); then run “<code>rpmbuild -ba uxplay.spec</code>
(you will need to install any required dependencies this reports). This
should create the uxplay RPM package in a subdirectory of
<code>~/rpmbuild/RPMS</code>. (<strong>uxplay.spec</strong> is tested on
Fedora 38, Rocky Linux 9.2, openSUSE Leap 15.5, Mageia 9, OpenMandriva,
PCLinuxOS; it can be easily modified to include dependency lists for
other RPM-based distributions.)</p>
<h2 id="running-uxplay">Running UxPlay</h2>
<h3
id="installing-plugins-debian-based-linux-systems-skip-if-you-built-a-complete-gstreamer-from-source">Installing
@@ -537,10 +548,11 @@ model B+)</strong>:</h3>
<code>-avdec</code>, it now works better than earlier, with the new
default timestamp-based synchronization to keep audio and video
synchronized.</p></li>
<li><p>For best performance, the Raspberry Pi needs the GStreamer
Video4linux2 plugin to use its Broadcom GPU hardware for decoding h264
video. This needs the bcm2835_codec kernel module which is maintained
outside the mainline Linux kernel by Raspberry Pi in the the <a
<li><p>For best performance, a Raspberry Pi <strong>older than model
5</strong> needs the GStreamer Video4linux2 plugin to use its Broadcom
GPU hardware for decoding h264 video. This needs the bcm2835_codec
kernel module which is maintained outside the mainline Linux kernel by
Raspberry Pi in the the <a
href="https://github.com/raspberrypi/linux">Raspberry Pi kernel
tree</a>, and the only distributions for R Pi that are known to supply
it include Raspberry Pi OS, Ubuntu, and Manjaro (all available from

View File

@@ -32,31 +32,30 @@ available on Arch-based systems through AUR. Since v. 1.66, uxplay is now also
* For other RPM-based distributions which have not yet packaged UxPlay, a RPM "specfile" **uxplay.spec** is now provided with recent
[releases](https://github.com/FDH2/UxPlay/releases) (see their "Assets"), and can also be found in the UxPlay source top directory.
This can be used to build an installable RPM package. First-time RPM builders should first install the rpm-build and rpmdevtools packages,
then create the rpmbuild tree with "`rpmdev-setuptree`". Then download and
copy uxplay.spec into ``~/rpmbuild/SPECS``. In that directory, run "`rpmdev-spectool -g -R uxplay.spec`" to download the corresponding
source file `uxplay-*.tar.gz` into ``~/rpmbuild/SOURCES`` ("rpmdev-spectool" may also be just called "spectool"); then
run "```rpmbuild -ba uxplay.spec```" (you will need to install
any required dependencies this reports). This should create the uxplay RPM package in a subdirectory of `~/rpmbuild/RPMS`.
(**uxplay.spec** is tested on Fedora 38, Rocky Linux 9.2, openSUSE Leap 15.5, Mageia 9, OpenMandriva, PCLinuxOS;
it can be easily modified to include dependency lists for other RPM-based distributions.)
See the section on using this specfile for [building an installable RPM package](#building-an-installable-rpm-package).
* On Linux and \*BSD the mDNS/DNS-SD (Bonjour/ZeroConf) local network services needed by UxPlay are usually provided by Avahi: **if
there is a firewall on the server that will host UxPlay, make sure the default network port for mDNS queries (UDP 5353) is open**. (Uxplay
can work without this port by using only the host's loopback interface, but its visibility to clients will be
degraded.) See the [Troubleshooting](#troubleshooting) section below for more details. (With a firewall, you also need to open
ports for UxPlay, and use the `-p <n>` option; see `man uxplay` or ``uxplay -h``.)
After installation:
* (On Linux and \*BSD): if a firewall is active on the server hosting UxPlay,
make sure the default network port (UDP 5353) for mDNS/DNS-SD queries is open (see
[Troubleshooting](#troubleshooting) below for more details); also open three UDP and three TCP ports for
Uxplay, and use the "uxplay -p <n>" option (see "`man uxplay`" or "``uxplay -h``").
* Even if you install your distribution's pre-compiled uxplay binary package, you may need to read the instructions below
for [running UxPlay](#running-uxplay) to see which of your distribution's **GStreamer plugin packages** you should also install.
* For hardware-accelerated video decoding on Raspberry Pi, Ubuntu < 23.04 needs GStreamer
to be [patched](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches) (recommended but optional
for Raspberry Pi OS (Bullseye), no longer needed for Manjaro >= 23.02).
_(Only these three distributions supply a kernel module maintained by Raspberry Pi outside the mainline Linux kernel
that accesses the firmware decoder in the Broadcom GPU)_.
* For Audio-only mode (Apple Music, etc.) best quality is obtained with the option "uxplay -async", but there is then
a 2 second latency imposed by iOS.
* To (easily) compile the latest UxPlay from source, see the section [Getting UxPlay](#getting-uxplay).
* Add any UxPlay options you want to use as defaults to a startup file `~/.uxplayrc`
(see "`man uxplay`" or "``uxplay -h``" for format and other possible locations).
* On Raspberry Pi: If you use Ubuntu 22.10 or earlier, GStreamer must
be [patched](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches) to use hardware video decoding by the Broadcom GPU
(also recommended but optional
for Raspberry Pi OS (Bullseye): use option "`uxplay -bt709`" if you do not use the patch).
To (easily) compile the latest UxPlay from source, see the section [Getting UxPlay](#getting-uxplay).
# Detailed description of UxPlay
This project is a GPLv3 open source unix AirPlay2 Mirror server for Linux, macOS, and \*BSD.
@@ -156,7 +155,8 @@ if not, software decoding is used.
in the [UxPlay Wiki](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches)). Also
requires the out-of-mainline Linux kernel module bcm2835-codec maintained by Raspberry Pi,
so far only included in Raspberry Pi OS, and two other distributions (Ubuntu, Manjaro) available
with Raspberry Pi Imager.
with Raspberry Pi Imager. _Note: The latest Raspberry Pi model 5 does not provide
hardware-accelerated (GPU) H264 decoding as its CPU is powerful enough for satisfactory software decoding._
### Note to packagers:
@@ -253,9 +253,8 @@ the GStreamer plugins must first be installed).
### Building on non-Debian Linux and \*BSD
**For those with RPM-based distributions, a RPM spec file uxplay.spec is also available for
building a rpm package with rpmbuild**. See ["Packaging Status"](#packaging-status-linux-and-bsd-distributions) section above.
**For those with RPM-based distributions, a RPM spec file uxplay.spec is also available: see
[Building an installable rpm package](#building-an-installable-rpm-package).
* **Red Hat, or clones like CentOS (now continued as Rocky Linux or Alma Linux):**
(sudo dnf install, or sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel
@@ -280,6 +279,15 @@ gstreamer-plugins-base-devel (+ libX11-devel for fullscreen X11).
Either avahi-libdns or mDNSResponder must also be installed to provide the dns_sd library.
OpenSSL is already installed as a System Library.
#### Building an installable RPM package
First-time RPM builders should first install the rpm-build and rpmdevtools packages,
then create the rpmbuild tree with "`rpmdev-setuptree`". Then download and
copy uxplay.spec into ``~/rpmbuild/SPECS``. In that directory, run "`rpmdev-spectool -g -R uxplay.spec`" to download the corresponding
source file `uxplay-*.tar.gz` into ``~/rpmbuild/SOURCES`` ("rpmdev-spectool" may also be just called "spectool"); then
run "```rpmbuild -ba uxplay.spec```" (you will need to install
any required dependencies this reports). This should create the uxplay RPM package in a subdirectory of `~/rpmbuild/RPMS`.
(**uxplay.spec** is tested on Fedora 38, Rocky Linux 9.2, openSUSE Leap 15.5, Mageia 9, OpenMandriva, PCLinuxOS;
it can be easily modified to include dependency lists for other RPM-based distributions.)
## Running UxPlay
@@ -430,7 +438,7 @@ See [Usage](#usage) for more run-time options.
* If you use the software-only (h264) video-decoding UxPlay option `-avdec`, it now works
better than earlier, with the new default timestamp-based synchronization to keep audio and video synchronized.
* For best performance, the Raspberry Pi needs the GStreamer Video4linux2 plugin to use
* For best performance, a Raspberry Pi **older than model 5** needs the GStreamer Video4linux2 plugin to use
its Broadcom GPU hardware for decoding h264 video. This needs the bcm2835_codec kernel module
which is maintained outside the mainline Linux kernel by Raspberry Pi in the
the [Raspberry Pi kernel tree](https://github.com/raspberrypi/linux), and the

View File

@@ -42,47 +42,40 @@ status](https://repology.org/badge/vertical-allrepos/uxplay.svg)](https://repolo
UxPlay, a RPM "specfile" **uxplay.spec** is now provided with recent
[releases](https://github.com/FDH2/UxPlay/releases) (see their
"Assets"), and can also be found in the UxPlay source top directory.
This can be used to build an installable RPM package. First-time RPM
builders should first install the rpm-build and rpmdevtools
packages, then create the rpmbuild tree with "`rpmdev-setuptree`".
Then download and copy uxplay.spec into `~/rpmbuild/SPECS`. In that
directory, run "`rpmdev-spectool -g -R uxplay.spec`" to download
the corresponding source file `uxplay-*.tar.gz` into
`~/rpmbuild/SOURCES` ("rpmdev-spectool" may also be just called
"spectool"); then run "`rpmbuild -ba uxplay.spec`" (you will need to
install any required dependencies this reports). This should create
the uxplay RPM package in a subdirectory of `~/rpmbuild/RPMS`.
(**uxplay.spec** is tested on Fedora 38, Rocky Linux 9.2, openSUSE
Leap 15.5, Mageia 9, OpenMandriva, PCLinuxOS; it can be easily
modified to include dependency lists for other RPM-based
distributions.)
See the section on using this specfile for [building an installable
RPM package](#building-an-installable-rpm-package).
- On Linux and \*BSD the mDNS/DNS-SD (Bonjour/ZeroConf) local network
services needed by UxPlay are usually provided by Avahi: **if there
is a firewall on the server that will host UxPlay, make sure the
default network port for mDNS queries (UDP 5353) is open**. (Uxplay
can work without this port by using only the host's loopback
interface, but its visibility to clients will be degraded.) See the
[Troubleshooting](#troubleshooting) section below for more details.
(With a firewall, you also need to open ports for UxPlay, and use
the `-p <n>` option; see `man uxplay` or `uxplay -h`.)
After installation:
- (On Linux and \*BSD): if a firewall is active on the server hosting
UxPlay, make sure the default network port (UDP 5353) for
mDNS/DNS-SD queries is open (see [Troubleshooting](#troubleshooting)
below for more details); also open three UDP and three TCP ports for
Uxplay, and use the "uxplay -p `<n>`{=html}" option (see
"`man uxplay`" or "`uxplay -h`").
- Even if you install your distribution's pre-compiled uxplay binary
package, you may need to read the instructions below for [running
UxPlay](#running-uxplay) to see which of your distribution's
**GStreamer plugin packages** you should also install.
- For hardware-accelerated video decoding on Raspberry Pi, Ubuntu \<
23.04 needs GStreamer to be
[patched](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches)
(recommended but optional for Raspberry Pi OS (Bullseye), no longer
needed for Manjaro \>= 23.02). *(Only these three distributions
supply a kernel module maintained by Raspberry Pi outside the
mainline Linux kernel that accesses the firmware decoder in the
Broadcom GPU)*.
- For Audio-only mode (Apple Music, etc.) best quality is obtained
with the option "uxplay -async", but there is then a 2 second
latency imposed by iOS.
- To (easily) compile the latest UxPlay from source, see the section
[Getting UxPlay](#getting-uxplay).
- Add any UxPlay options you want to use as defaults to a startup file
`~/.uxplayrc` (see "`man uxplay`" or "`uxplay -h`" for format and
other possible locations).
- On Raspberry Pi: If you use Ubuntu 22.10 or earlier, GStreamer must
be
[patched](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches)
to use hardware video decoding by the Broadcom GPU (also recommended
but optional for Raspberry Pi OS (Bullseye): use option
"`uxplay -bt709`" if you do not use the patch).
To (easily) compile the latest UxPlay from source, see the section
[Getting UxPlay](#getting-uxplay).
# Detailed description of UxPlay
@@ -201,7 +194,9 @@ used.
Also requires the out-of-mainline Linux kernel module bcm2835-codec
maintained by Raspberry Pi, so far only included in Raspberry Pi OS,
and two other distributions (Ubuntu, Manjaro) available with
Raspberry Pi Imager.
Raspberry Pi Imager. *Note: The latest Raspberry Pi model 5 does not
provide hardware-accelerated (GPU) H264 decoding as its CPU is
powerful enough for satisfactory software decoding.*
### Note to packagers:
@@ -310,10 +305,9 @@ GStreamer plugins must first be installed).
### Building on non-Debian Linux and \*BSD
**For those with RPM-based distributions, a RPM spec file uxplay.spec is
also available for building a rpm package with rpmbuild**. See
["Packaging Status"](#packaging-status-linux-and-bsd-distributions)
section above.
\*\*For those with RPM-based distributions, a RPM spec file uxplay.spec
is also available: see [Building an installable rpm
package](#building-an-installable-rpm-package).
- **Red Hat, or clones like CentOS (now continued as Rocky Linux or
Alma Linux):** (sudo dnf install, or sudo yum install) openssl-devel
@@ -341,6 +335,22 @@ section above.
avahi-libdns or mDNSResponder must also be installed to provide the
dns_sd library. OpenSSL is already installed as a System Library.
#### Building an installable RPM package
First-time RPM builders should first install the rpm-build and
rpmdevtools packages, then create the rpmbuild tree with
"`rpmdev-setuptree`". Then download and copy uxplay.spec into
`~/rpmbuild/SPECS`. In that directory, run
"`rpmdev-spectool -g -R uxplay.spec`" to download the corresponding
source file `uxplay-*.tar.gz` into `~/rpmbuild/SOURCES`
("rpmdev-spectool" may also be just called "spectool"); then run
"`rpmbuild -ba uxplay.spec`" (you will need to install any required
dependencies this reports). This should create the uxplay RPM package in
a subdirectory of `~/rpmbuild/RPMS`. (**uxplay.spec** is tested on
Fedora 38, Rocky Linux 9.2, openSUSE Leap 15.5, Mageia 9, OpenMandriva,
PCLinuxOS; it can be easily modified to include dependency lists for
other RPM-based distributions.)
## Running UxPlay
### Installing plugins (Debian-based Linux systems) (*skip if you built a complete GStreamer from source*)
@@ -529,11 +539,11 @@ See [Usage](#usage) for more run-time options.
timestamp-based synchronization to keep audio and video
synchronized.
- For best performance, the Raspberry Pi needs the GStreamer
Video4linux2 plugin to use its Broadcom GPU hardware for decoding
h264 video. This needs the bcm2835_codec kernel module which is
maintained outside the mainline Linux kernel by Raspberry Pi in the
the [Raspberry Pi kernel
- For best performance, a Raspberry Pi **older than model 5** needs
the GStreamer Video4linux2 plugin to use its Broadcom GPU hardware
for decoding h264 video. This needs the bcm2835_codec kernel module
which is maintained outside the mainline Linux kernel by Raspberry
Pi in the the [Raspberry Pi kernel
tree](https://github.com/raspberrypi/linux), and the only
distributions for R Pi that are known to supply it include Raspberry
Pi OS, Ubuntu, and Manjaro (all available from Raspberry Pi with