mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-15 00:34:05 +09:00
README edits (Arch)
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
<p>Its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/iPadOS/macOS clients (iPhones, iPads, MacBooks) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix. UxPlay supports a “legacy” form of Apple’s AirPlay Mirror protocol introduced in iOS 12; client devices running iOS/iPadOS 9.3.5 or later are supported, as is a (non-free) Windows-based AirPlay-client software emulator, AirMyPC. (Details of what is publically known about Apple’s AirPlay2 protocol can be found <a href="https://github.com/SteeBono/airplayreceiver/wiki/AirPlay2-Protocol">here</a> and <a href="https://emanuelecozzi.net/docs/airplay2">here</a>).</p>
|
||||
<p>The UxPlay server and its client must be on the same local area network, on which a <strong>Bonjour/Zeroconf mDNS/DNS-SD server</strong> is also running (only DNS-SD “Service Discovery” service is strictly necessary, it is not necessary that the local network also be of the “.local” mDNS-based type). On Linux and BSD Unix servers, this is usually provided by <a href="https://www.avahi.org">Avahi</a>, through the avahi-daemon service, and is included in most Linux distributions (this service can also be provided by macOS, iOS or Windows servers).</p>
|
||||
<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>
|
||||
<p>UxPlay uses GStreamer Plugins for rendering audio and video, and does not offer the alternative Raspberry-Pi-specific audio and video renderers available in <a href="https://github.com/FD-/RPiPlay">RPiPlay</a>. It is tested on a number of systems, including (among others) Debian 10.11 “Buster” and 11.2 “Bullseye”, Ubuntu 20.04 and 21.10, Linux Mint 20.2, Pop!_OS 21.10 (NVIDIA edition), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, macOS 10.15.7, FreeBSD 13.0.</p>
|
||||
<p>UxPlay uses GStreamer Plugins for rendering audio and video, and does not offer the alternative Raspberry-Pi-specific audio and video renderers available in <a href="https://github.com/FD-/RPiPlay">RPiPlay</a>. It is tested on a number of systems, including (among others) Debian 10.11 “Buster” and 11.2 “Bullseye”, Ubuntu 20.04 and 21.10, Linux Mint 20.2, Pop!_OS 21.10 (NVIDIA edition), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, Arch Linux 5.16.8, macOS 10.15.7, FreeBSD 13.0.</p>
|
||||
<p>Using Gstreamer means that video and audio are supported “out of the box”, using a choice of plugins. Gstreamer decoding is plugin agnostic, and uses accelerated decoders if available. For Intel integrated graphics, the VAAPI plugin is preferable, (but don’t use it with NVIDIA).</p>
|
||||
<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>
|
||||
@@ -37,8 +37,9 @@
|
||||
<p>The above script installs the executable file “<code>uxplay</code>” to <code>/usr/local/bin</code>, (and installs a manpage to somewhere like <code>/usr/local/share/man/man1</code> and README files to somewhere like <code>/usr/local/share/doc/uxplay</code>). It can also be found in the build directory after the build processs.</p>
|
||||
<p><strong>Finally, run uxplay in a terminal window</strong>. If it is not seen by the iOS client’s drop-down “Screen Mirroring” panel, check that your DNS-SD server (usually avahi-daemon) is running: do this in a terminal window with <code>systemctl status avahi-daemon</code>. If this shows the avahi-daemon is not running, control it with <code>sudo systemctl [start,stop,enable,disable] avahi-daemon</code> (or avahi-daemon.service). If UxPlay is seen, but the client fails to connect when it is selected, there may be a firewall on the server that prevents UxPlay from receiving client connection requests unless some network ports are opened. See <a href="#troubleshooting">Troubleshooting</a> below for help with this or other problems. See <a href="#usage">Usage</a> for run-time options.</p>
|
||||
<ul>
|
||||
<li><p><strong>Red Hat, Fedora, CentOS (now continued as Rocky Linux or Alma Linux):</strong> (sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel (some from the “PowerTools” add-on repository) (+libX11-devel for ZOOMFIX). The required GStreamer packages (some from <a href="https://rpmfusion.org">rpmfusion.org</a>) are: gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-plugins-bad-free ( + gstreamer1-vaapi for intel graphics).</p></li>
|
||||
<li><p><strong>Red Hat, Fedora, CentOS (now continued as Rocky Linux or Alma Linux):</strong> (sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel (some from the “PowerTools” add-on repository) (+libX11-devel for ZOOMFIX). The required GStreamer packages (some from <a href="https://rpmfusion.org">rpmfusion.org</a>) are: gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for intel graphics).</p></li>
|
||||
<li><p><strong>OpenSUSE:</strong> (sudo zypper install) libopenssl-devel libplist-devel avahi-compat-mDNSResponder-devel (+ libX11-devel for ZOOMFIX). The required GStreamer packages (you may need to use versions from <a href="https://ftp.gwdg.de/pub/linux/misc/packman/suse/">Packman</a>) are: gstreamer-devel gstreamer-plugins-base-devel gstreamer-plugins-libav gstreamer-plugins-bad (+ gstreamer-plugins-vaapi for Intel graphics).</p></li>
|
||||
<li><p><strong>Arch Linux</strong> (sudo pacman -Syu) openssl libplist avahi gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav (+ gstreamer-vaapi for Intel graphics).</p></li>
|
||||
<li><p><strong>FreeBSD:</strong> (sudo pkg install) libplist gstreamer1, gstreamer1-libav, gstreamer1-plugins, gstreamer1-plugins-* (* = core, good, bad, x, gtk, gl, vulkan, pulse …), (+ gstreamer1-vaapi for Intel graphics). Either avahi-libdns or mDNSResponder must also be installed to provide the dns_sd library. OpenSSL is already installed as a System Library. “ZOOMFIX” is untested; don’t try to use it on FreeBSD unless you need it.</p></li>
|
||||
</ul>
|
||||
<h3 id="building-openssl-1.1.1-from-source.">Building OpenSSL >= 1.1.1 from source.</h3>
|
||||
@@ -158,6 +159,9 @@
|
||||
<li><strong>Juho Vähä-Herttua</strong> and contributors: Created an AirPlay audio server called <a href="https://github.com/juhovh/shairplay">ShairPlay</a>, including support for Fairplay based on PlayFair. Most of the code in <code>lib/</code> originally stems from this project. License: GNU LGPLv2.1+</li>
|
||||
<li><strong>dsafa22</strong>: Created an AirPlay 2 mirroring server <a href="https://github.com/dsafa22/AirplayServer">AirplayServer</a> (seems gone now), for Android based on ShairPlay. Code is preserved <a href="https://github.com/KqSMea8/AirplayServer">here</a>, and <a href="https://github.com/FDH2/UxPlay/wiki/AirPlay2">see here</a> for the description of the analysis of the AirPlay 2 mirror protocol that made RPiPlay possible, by the AirplayServer author. All code in <code>lib/</code> concerning mirroring is dsafa22’s work. License: GNU LGPLv2.1+</li>
|
||||
<li><strong>Florian Draschbacher</strong> and contributors: adapted dsafa22’s Android project for the Raspberry Pi, with extensive cleanups, debugging and improvements. The project <a href="https://github.com/FD-/RPiPlay">RPiPlay</a> is basically a port of dsafa22’s code to the Raspberry Pi, utilizing OpenMAX and OpenSSL for better performance on the Pi. License GPL v3.</li>
|
||||
</ul>
|
||||
<p>Independent of UxPlay, but used by it and bundled with it:</p>
|
||||
<ul>
|
||||
<li><strong>Fedor Indutny</strong> (of Node.js, and formerly Joyent, Inc) and contributors: Created an http parsing library called <a href="https://github.com/nodejs/llhttp">llhttp</a>. Located at <code>lib/llhttp/</code>. License: MIT</li>
|
||||
</ul>
|
||||
<h2 id="notes-on-airplay-protocol-versions-by-florian-draschbacher-rpiplay-creator">Notes on AirPlay protocol versions by Florian Draschbacher, RPiPlay creator</h2>
|
||||
|
||||
18
README.md
18
README.md
@@ -55,7 +55,7 @@ and does not offer the alternative Raspberry-Pi-specific
|
||||
audio and video renderers available in [RPiPlay](https://github.com/FD-/RPiPlay).
|
||||
It is tested on a number of systems, including (among others) Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10,
|
||||
Linux Mint 20.2, Pop!\_OS 21.10 (NVIDIA edition),
|
||||
Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, macOS 10.15.7, FreeBSD 13.0.
|
||||
Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, Arch Linux 5.16.8, macOS 10.15.7, FreeBSD 13.0.
|
||||
|
||||
Using Gstreamer means that video and audio are supported "out of the box", using a choice of plugins.
|
||||
Gstreamer decoding is plugin agnostic, and uses accelerated decoders if
|
||||
@@ -125,7 +125,7 @@ help with this or other problems. See [Usage](#usage) for run-time options.
|
||||
* **Red Hat, Fedora, CentOS (now continued as Rocky Linux or Alma Linux):**
|
||||
(sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel (some from the "PowerTools" add-on repository)
|
||||
(+libX11-devel for ZOOMFIX). The required GStreamer packages (some from [rpmfusion.org](https://rpmfusion.org)) are:
|
||||
gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-plugins-bad-free ( + gstreamer1-vaapi for intel graphics).
|
||||
gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for intel graphics).
|
||||
|
||||
* **OpenSUSE:**
|
||||
(sudo zypper install) libopenssl-devel libplist-devel
|
||||
@@ -133,6 +133,9 @@ avahi-compat-mDNSResponder-devel (+ libX11-devel for ZOOMFIX). The required
|
||||
GStreamer packages (you may need to use versions from [Packman](https://ftp.gwdg.de/pub/linux/misc/packman/suse/)) are:
|
||||
gstreamer-devel gstreamer-plugins-base-devel gstreamer-plugins-libav gstreamer-plugins-bad (+ gstreamer-plugins-vaapi for Intel graphics).
|
||||
|
||||
* **Arch Linux**
|
||||
(sudo pacman -Syu) openssl libplist avahi gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav (+ gstreamer-vaapi for Intel graphics).
|
||||
|
||||
* **FreeBSD:** (sudo pkg install) libplist gstreamer1, gstreamer1-libav, gstreamer1-plugins, gstreamer1-plugins-*
|
||||
(\* = core, good, bad, x, gtk, gl, vulkan, pulse ...), (+ gstreamer1-vaapi for Intel graphics).
|
||||
Either avahi-libdns or mDNSResponder must also be installed to provide the dns_sd library.
|
||||
@@ -187,10 +190,10 @@ this can be done with package managers [MacPorts](http://www.macports.org),
|
||||
First get the latest macOS release of GStreamer-1.0
|
||||
from [https://gstreamer.freedesktop.org/download/](https://gstreamer.freedesktop.org/download/).
|
||||
Install both the macOS runtime and development installer packages. Assuming that the latest release is 1.18.6
|
||||
they are ```gstreamer-1.0-1.18.6-x86_64.pkg``` and ```gstreamer-1.0-devel-1.18.6-x86_64.pkg```. (**Note: v1.20.0 is also available now, but if it does not work for you, use 1.18.6**.)
|
||||
Click on them to install (they install to
|
||||
/Library/FrameWorks/GStreamer.framework).
|
||||
It is recommended you use GStreamer.framework rather than install Gstreamer with Homebrew or MacPorts (see later).
|
||||
they are ```gstreamer-1.0-1.18.6-x86_64.pkg``` and ```gstreamer-1.0-devel-1.18.6-x86_64.pkg```. (**Note: v1.20.0 is also
|
||||
available now, but if it does not work for you, use 1.18.6**.) Click on them to install (they install to
|
||||
/Library/FrameWorks/GStreamer.framework). It is recommended you use GStreamer.framework rather than install
|
||||
Gstreamer with Homebrew or MacPorts (see later).
|
||||
|
||||
Next install OpenSSL and libplist: these can be built from source (see above); only the
|
||||
static forms of the two libraries will used for the macOS build, so you can uninstall them ("sudo make uninstall")
|
||||
@@ -631,6 +634,9 @@ Desktop Linux (antimof's work on code in `renderers/` was later backported to RP
|
||||
code in `lib/` concerning mirroring is dsafa22's work. License: GNU LGPLv2.1+
|
||||
* **Florian Draschbacher** and contributors: adapted dsafa22's Android project for the Raspberry Pi, with extensive cleanups, debugging and improvements. The
|
||||
project [RPiPlay](https://github.com/FD-/RPiPlay) is basically a port of dsafa22's code to the Raspberry Pi, utilizing OpenMAX and OpenSSL for better performance on the Pi. License GPL v3.
|
||||
|
||||
Independent of UxPlay, but used by it and bundled with it:
|
||||
|
||||
* **Fedor Indutny** (of Node.js, and formerly Joyent, Inc) and contributors: Created an http parsing library called [llhttp](https://github.com/nodejs/llhttp). Located at `lib/llhttp/`. License: MIT
|
||||
|
||||
## Notes on AirPlay protocol versions by Florian Draschbacher, RPiPlay creator
|
||||
|
||||
12
README.txt
12
README.txt
@@ -70,7 +70,7 @@ renderers available in [RPiPlay](https://github.com/FD-/RPiPlay). It is
|
||||
tested on a number of systems, including (among others) Debian 10.11
|
||||
"Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.2,
|
||||
Pop!\_OS 21.10 (NVIDIA edition), Rocky Linux 8.5 (a CentOS successor),
|
||||
OpenSUSE 15.3, macOS 10.15.7, FreeBSD 13.0.
|
||||
OpenSUSE 15.3, Arch Linux 5.16.8, macOS 10.15.7, FreeBSD 13.0.
|
||||
|
||||
Using Gstreamer means that video and audio are supported "out of the
|
||||
box", using a choice of plugins. Gstreamer decoding is plugin agnostic,
|
||||
@@ -171,8 +171,7 @@ options.
|
||||
repository) (+libX11-devel for ZOOMFIX). The required GStreamer
|
||||
packages (some from [rpmfusion.org](https://rpmfusion.org)) are:
|
||||
gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav
|
||||
gstreamer1-plugins-bad-free ( + gstreamer1-vaapi for intel
|
||||
graphics).
|
||||
gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for intel graphics).
|
||||
|
||||
- **OpenSUSE:** (sudo zypper install) libopenssl-devel libplist-devel
|
||||
avahi-compat-mDNSResponder-devel (+ libX11-devel for ZOOMFIX). The
|
||||
@@ -182,6 +181,10 @@ options.
|
||||
gstreamer-plugins-bad (+ gstreamer-plugins-vaapi for Intel
|
||||
graphics).
|
||||
|
||||
- **Arch Linux** (sudo pacman -Syu) openssl libplist avahi
|
||||
gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav (+
|
||||
gstreamer-vaapi for Intel graphics).
|
||||
|
||||
- **FreeBSD:** (sudo pkg install) libplist gstreamer1,
|
||||
gstreamer1-libav, gstreamer1-plugins, gstreamer1-plugins-\* (\* =
|
||||
core, good, bad, x, gtk, gl, vulkan, pulse ...), (+ gstreamer1-vaapi
|
||||
@@ -835,6 +838,9 @@ code included in UxPlay by inheritance from RPiPlay include:
|
||||
is basically a port of dsafa22's code to the Raspberry Pi, utilizing
|
||||
OpenMAX and OpenSSL for better performance on the Pi. License GPL
|
||||
v3.
|
||||
|
||||
Independent of UxPlay, but used by it and bundled with it:
|
||||
|
||||
- **Fedor Indutny** (of Node.js, and formerly Joyent, Inc) and
|
||||
contributors: Created an http parsing library called
|
||||
[llhttp](https://github.com/nodejs/llhttp). Located at
|
||||
|
||||
Reference in New Issue
Block a user