mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-15 00:34:05 +09:00
README edits
This commit is contained in:
17
README.html
17
README.html
@@ -3,7 +3,7 @@
|
||||
<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 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><em><strong>New:</strong> UxPlay > 1.38 now also supports the Airplay audio-only protocol as well as AirPlay Mirror protocol, and (when the client screen is not being mirrored) can play Apple Lossless (ALAC) 44100/16/2 audio streamed from the client in 2-channel stereo without video (the accompanying cover-art and metadata is received by the server, but not displayed). The initial connection to the client can be in AirPlay audio mode, or an initial Airplay Mirror connection can be switched to Airplay audio by closing the Mirror window and reconnecting in audio-only mode (this changes back to AAC audio if screen mirroring is (re)started).</em></p>
|
||||
<p>UxPlay is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. (UxPlay only uses GStreamer, and does not contain the alternative Raspberry-Pi-specific audio and video renderers also found in RPiPlay.) Tested on Ubuntu 20.04, Linux Mint 20.2, OpenSUSE 15.3, macOS 10.15, FreeBSD 13.0.</p>
|
||||
<p>Features: 1. Based on Gstreamer. 2. Video and audio are supported out of the box. 3. Gstreamer decoding is plugin agnostic. Uses accelerated decoders if available. VAAPI is preferable, (but don’t use VAAPI with nVidia). 4. Automatic screen orientation.</p>
|
||||
<p>Features: 1. Based on Gstreamer. 2. Video and audio are supported out of the box. 3. Gstreamer decoding is plugin agnostic. Uses accelerated decoders if available. For Intel graphics, VAAPI is preferable, (but don’t use VAAPI with nVidia). 4. Automatic screen orientation.</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>UxPlay can be built to use the “libcrypto” shared library from the recently-released OpenSSL- 3.0.0, which has a new Apache v2 license that is explicitly compatible with GPL v3 (see <a href="https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final/">this announcement</a> and <a href="https://www.openssl.org/blog/blog/2017/03/22/license/">this</a>).</p>
|
||||
<p>The new license resolves (or rather, makes irrelevant) a long-standing controversy over whether OpenSSL is a “System Library” to which GPL code can be freely linked, or not, in which case an explicit “GPL exception” must be added to the GPL license by all the authors (the historical origins of the UxPlay code make this impossible). <strong>The license issue only involves distribution of compiled code, not source code.</strong></p>
|
||||
@@ -11,7 +11,7 @@
|
||||
<p>An alternative is to replace the AES decryption code in lib/crypto.[c,h] (which is a wrapper for calls to OpenSSL’s libcrypto) with a GPL implementation.</p>
|
||||
<h1 id="getting-uxplay">Getting UxPlay:</h1>
|
||||
<p>Either download and unzip <a href="https://github.com/FDH2/UxPlay/archive/refs/heads/master.zip">UxPlay-master.zip</a>, or (if git is installed): “git clone https://github.com/FDH2/UxPlay”.</p>
|
||||
<p><em>This is a pull request on the original site https://github.com/antimof/UxPlay ; it may or may not ever get committed into the codebase on the antimof site, as that project appears to no longer be active. If the pull request ever gets committed, replace “FDH2” by “antimof” in the above.</em></p>
|
||||
<p>*This is a pull request on the original site https://github.com/antimof/UxPlay ; it may or may not ever get committed into the codebase on the antimof site, as that project appears to no longer be active.</p>
|
||||
<h1 id="building-this-version-linux-and-bsd">Building this version (Linux and *BSD):</h1>
|
||||
<p>(Instructions for Debian/Ubuntu; adapt these for other Linuxes; for macOS, see below).</p>
|
||||
<p>You need a C/C++ compiler (e.g. g++) with the standard development libraries installed.</p>
|
||||
@@ -26,8 +26,7 @@
|
||||
</ol>
|
||||
<p><em>Note that older cmake does not require the final “<code>.</code>” to specify the current directory as the source directory, but newer cmake requires it. If you intend to modify the code, use a separate “build” directory: replace “cmake [ ] .” by “mkdir build ; cd build ; cmake [ ] ..”; you can then get back to the clean source (with any changes you made) with “cd .. ; rm -rf build”.</em></p>
|
||||
<p>The above script installs the executable file “<code>uxplay</code>” to <code>/usr/local/bin</code>, (and installs a manpage to <code>/usr/local/man/man1</code> and README files to <code>/usr/local/share/doc/uxplay</code>). It can also be found in the build directory after the build processs. Run uxplay in a terminal window.</p>
|
||||
<p><strong>Note libplist-dev (which must be for libplist version 2.0 or greater) and (for ZOOMFIX) libx11-dev are new dependencies. Older distributions may only supply libplist 1.x, which is too old. [Installing libplist-dev (with libplist3) from ubuntu 18.04 solves this problem on ubuntu 16.04.]</strong></p>
|
||||
<p>_If you cannot find a libplist-2.x package that installs on your older distribution, and you don’t wish to upgrade, see the instructions below (in the macOS section) on building libplist from source (you need autoconf, automake, libtool, and may need to also install some libpython*-dev package) but (unlike the statically-linked macOS case) do not uninstall the libplist library after building uxplay; it must remain installed. It is in /usr/local/lib. If uxplay fails to find libplist when you run it, this is probably because /usr/local/lib is not in the library path (by default, this is the case in ubuntu). To fix this, run “sudo ldconfig” (you might also need to create a file /etc/ld.so.conf.d/libplist.conf containing the text “/usr/local/lib” before running ldconfig) to permanently add /usr/local/lib to the library path._</p>
|
||||
<p><strong>Note libplist-dev (which must be for libplist version 2.0 or greater) and (for ZOOMFIX) libx11-dev are new dependencies since the original antimof version UxPlay-1.2. Older Linux distributionsmay only supply libplist 1.x, which is too old. [Installing libplist-dev (with libplist3) from ubuntu 18.04 solves this problem on ubuntu 16.04.]</strong> _If you cannot find a libplist-2.x package that installs on your older distribution, you can get it at <a href="https://github.com/libimobiledevice/libplist">https://github.com/libimobiledevice/libplist</a> and build it from source (you need build tools autoconf, automake, libtool, and may need to also install some libpython*-dev package). By default, libplist installs in /usr/local/lib. If this is not in the library path (as in ubuntu), create a file /etc/ld.so.conf.d/libplist.conf containing the text “/usr/local/lib”, and run “sudo ldconfig” to permanently add /usr/local/lib to the library path._</p>
|
||||
<p><strong>Red Hat, Fedora, CentOS:</strong> (sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel (+libX11-devel for ZOOMFIX). The required GStreamer packages are: gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-plugins-bad-free ( + gstreamer1-vaapi for intel graphics).</p>
|
||||
<p><strong>OpenSUSE:</strong> (sudo zypper install) libopenssl-devel libplist-devel avahi-compat-mDNSResponder-devel (+ libX11-devel for ZOOMFIX). The required GStreamer packages are: gstreamer-devel gstreamer-plugins-base-devel gstreamer-plugins-libav gstreamer-plugins-bad (+ gstreamer-plugins-vaapi for Intel graphics).</p>
|
||||
<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>
|
||||
@@ -37,16 +36,16 @@
|
||||
<p>These instructions for macOS asssume that the Xcode command-line developer tools are installed (if Xcode is installed, open the Terminal, type “sudo xcode-select –install” and accept the conditions).</p>
|
||||
<p>It is also assumed that CMake >= 3.13 is installed: this can be done with package managers <a href="http://www.macports.org">MacPorts</a>, <a href="http://finkproject.org">Fink</a> or <a href="http://brew.sh">Homebrew</a>, or by a download from <a href="https://cmake.org/download/">https://cmake.org/download/</a>.</p>
|
||||
<p>First get the latest macOS release of GStreamer-1.0 from <a href="https://gstreamer.freedesktop.org/download/">https://gstreamer.freedesktop.org/download/</a>. Install both the macOS runtime and development installer packages. Assuming that the latest release is 1.18.5 they are <code>gstreamer-1.0-1.18.5-x86_64.pkg</code> and <code>gstreamer-1.0-devel-1.18.5-x86_64.pkg</code>. 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).</p>
|
||||
<p>Next install OpenSSL-1.1.1 and libplist: these can be built from source (see below) but it’s easier to get them using MacPorts “sudo port install openssl libplist-devel” or Homebrew “brew install openssl libplist”. Only the static forms of the two libraries will used for the macOS build, so they do not need to remain installed after you have built uxplay: if you don’t have MacPorts or Homebrew installed, you can just install one of these package-managers before building uxplay, and uninstall it afterwards if you don’t want to keep it. Unfortunately, Fink’s openssl11-dev package currently doesn’t supply the static (libcrypto.a) form of the needed library libcrypto, and its libplist1 package is too old.</p>
|
||||
<p>Next install OpenSSL and libplist: these can be built from source (see below) but it is easier to get them using MacPorts “sudo port install openssl libplist-devel” or Homebrew “brew install openssl libplist”. Only the static forms of the two libraries will used for the macOS build, so they do not need to remain installed after you have built uxplay: if you don’t have MacPorts or Homebrew installed, you can just install one of these package-managers before building uxplay, and uninstall it afterwards if you do not want to keep it. Unfortunately, Fink’s openssl11-dev package currently doesn’t supply the static (libcrypto.a) form of the needed OpenSLL library libcrypto, and its libplist1 package is too old.</p>
|
||||
<p>Finally, build and install uxplay (without ZOOMFIX): open a terminal and change into the UxPlay source directory (“UxPlay-master” for zipfile downloads, “UxPlay” for “git clone” downloads) and build/install with “cmake . ; make ; sudo make install” (same as for Linux).</p>
|
||||
<p>The macOS build uses OpenGL, not X11, to create the mirror display window. This has some “quirks”: the window title is “OpenGL renderer” instead of the Airplay server name, but it is visible to screen-sharing apps (e.g., Zoom). The option -t <em>timeout</em> cannot be used because if the GStreamer pipeline is destroyed while the OpenGL window is still open, and uxplay is left running, a segfault occurs (this is an issue with the glimagesink GStreamer OpenGL plugin, not UxPlay). Also, the resolution settings “-s wxh” do not affect the (small) initial mirror window size, but the window can be expanded using the mouse or trackpad.</p>
|
||||
<p><strong><em>Building OpenSSL-1.1.1 and libplist from source on macOS</em></strong></p>
|
||||
<p>If you have have the standard GNU toolset (autoconf, automake, libtool, etc.) installed, you can also download and compile the source code for these libraries from <a href="https://www.openssl.org/source/">https://www.openssl.org/source/</a>, <a href="https://github.com/libimobiledevice/libplist">https://github.com/libimobiledevice/libplist</a>. Install the downloaded openssl-1.1.1 by opening a terminal in your Downloads directory, and unpacking the source distribution openssl-1.1.1x.tar.gz (where “x” is a “patch” label, currently given by “x” = “l”): (“tar -xvzf openssl-1.1.1x.tar.gz ; cd openssl-1.1.1x”). Then build/install with “./config ; make ; sudo make install_dev” and clean up after building uxplay with “sudo make uninstall” in the same directory. Similarly, for libplist, download the source as a zipfile from github as <a href="https://github.com/libimobiledevice/libplist/archive/refs/heads/master.zip">libplist-master.zip</a>, then unpack (“unzip libplist-master.zip ; cd libplist-master”), build/install (“./autogen.sh ; make ; sudo make install”) and clean up after uxplay is built with “sudo make uninstall” in the same directory.</p>
|
||||
<p><strong><em>Building OpenSSL and libplist from source on macOS</em></strong></p>
|
||||
<p>If you have have the standard GNU toolset (autoconf, automake, libtool, etc.) installed, you can also download and compile the source code for these libraries from <a href="https://www.openssl.org/source/">https://www.openssl.org/source/</a>, <a href="https://github.com/libimobiledevice/libplist">https://github.com/libimobiledevice/libplist</a>. Install the downloaded openssl by opening a terminal in your Downloads directory, and unpacking the source distribution openssl-3.0.0.tar.gz , (“tar -xvzf openssl-3.0.0.tar.gz ; cd openssl-3.0.0”). Then build/install with “./config ; make ; sudo make install_dev” and clean up after building uxplay with “sudo make uninstall” in the same directory. Similarly, for libplist, download the source as a zipfile from github as <a href="https://github.com/libimobiledevice/libplist/archive/refs/heads/master.zip">libplist-master.zip</a>, then unpack (“unzip libplist-master.zip ; cd libplist-master”), build/install (“./autogen.sh ; make ; sudo make install”) and clean up after uxplay is built with “sudo make uninstall” in the same directory.</p>
|
||||
<p><strong><em>Other ways (Homebrew, MacPorts) to install GStreamer on macOS (not recommended):</em></strong></p>
|
||||
<p>First make sure that pkgconfig is installed (Homebrew: “brew install pkgconfig” ; MacPorts: “sudo port install pkgconfig” ).</p>
|
||||
<ol type="a">
|
||||
<li><p>with Homebrew: “brew install gst-plugins-good gst-plugins-bad gst-libav”. This appears to be functionally equivalent to using GStreamer.framework, but causes a large number of extra packages to be installed by Homebrew as dependencies.</p></li>
|
||||
<li><p>with MacPorts: “sudo port install gstreamer1-gst-plugins-good gstreamer1-gst-plugins-bad gstreamer1-gst-libav”. The MacPorts GStreamer is built to use X11, so must be run from an XQuartz terminal, can use ZOOMFIX, and needs option “-vs ximagesink”. On an older unibody MacBook Pro, the default resolution wxh = 1920x1080 was too large for the non-retina display, but using option “-s 800x600” worked; However, the GStreamer pipeline is fragile against attempts to change the X11 window size, or to rotations that switch a connected client between portrait and landscape mode while uxplay is running. Using the MacPorts X11 GStreamer is only viable if the image size is left unchanged from the initial “-s wxh” setting (also use the iPad/iPhone setting that locks the screen orientation against switching between portrait and landscape mode as the device is rotated).</p></li>
|
||||
<li><p>with Homebrew: “brew install gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav”. This appears to be functionally equivalent to using GStreamer.framework, but causes a large number of extra packages to be installed by Homebrew as dependencies.</p></li>
|
||||
<li><p>with MacPorts: “sudo port install gstreamer1-gst-plugins-base gstreamer1-gst-plugins-good gstreamer1-gst-plugins-bad gstreamer1-gst-libav”. The MacPorts GStreamer is built to use X11, so must be run from an XQuartz terminal, can use ZOOMFIX, and needs option “-vs ximagesink”. On an older unibody MacBook Pro, the default resolution wxh = 1920x1080 was too large for the non-retina display, but using option “-s 800x600” worked; However, the GStreamer pipeline is fragile against attempts to change the X11 window size, or to rotations that switch a connected client between portrait and landscape mode while uxplay is running. Using the MacPorts X11 GStreamer is only viable if the image size is left unchanged from the initial “-s wxh” setting (also use the iPad/iPhone setting that locks the screen orientation against switching between portrait and landscape mode as the device is rotated).</p></li>
|
||||
</ol>
|
||||
<h1 id="troubleshooting"><strong>Troubleshooting:</strong></h1>
|
||||
<p>If uxplay starts, but stalls after “Initialized server socket(s)” appears, it is probably because a firewall is blocking access to the server on which it is running. If possible, either turn off the firewall to see if that is the problem, or get three consecutive network ports, starting at port n, all three in the range 1024-65535, opened for both tcp and udp, and use “uxplay -p n” (or open UDP 6000, 6001, 6011 TCP 7000,7001,7100 and use “uxplay -p”).</p>
|
||||
|
||||
39
README.md
39
README.md
@@ -34,11 +34,9 @@ Features:
|
||||
1. Based on Gstreamer.
|
||||
2. Video and audio are supported out of the box.
|
||||
3. Gstreamer decoding is plugin agnostic. Uses accelerated decoders if
|
||||
available. VAAPI is preferable, (but don't use VAAPI with nVidia).
|
||||
available. For Intel graphics, VAAPI is preferable, (but don't use VAAPI with nVidia).
|
||||
4. Automatic screen orientation.
|
||||
|
||||
|
||||
|
||||
### Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues.
|
||||
|
||||
UxPlay can be built to use the "libcrypto" shared library
|
||||
@@ -70,7 +68,6 @@ or (if git is installed): "git clone https://github.com/FDH2/UxPlay".
|
||||
original site https://github.com/antimof/UxPlay ; it may or may not ever
|
||||
get committed into the codebase on the antimof site, as that
|
||||
project appears to no longer be active.
|
||||
If the pull request ever gets committed, replace "FDH2" by "antimof" in the above.*
|
||||
|
||||
# Building this version (Linux and \*BSD):
|
||||
|
||||
@@ -100,16 +97,13 @@ It can also be found in the build directory after the build
|
||||
processs. Run uxplay in a terminal window.
|
||||
|
||||
|
||||
**Note libplist-dev (which must be for libplist version 2.0 or greater) and (for ZOOMFIX) libx11-dev are new dependencies. Older distributions
|
||||
may only supply libplist 1.x, which is too old. [Installing libplist-dev (with libplist3) from ubuntu 18.04 solves this problem on ubuntu 16.04.]**
|
||||
|
||||
_If you cannot find a libplist-2.x package that installs on your older distribution, and you don't wish to upgrade, see the instructions below
|
||||
(in the macOS section) on building libplist from source (you need autoconf, automake, libtool, and may need to also install some libpython*-dev package)
|
||||
but (unlike the statically-linked macOS case) do not uninstall the libplist library after building uxplay; it must remain installed.
|
||||
It is in /usr/local/lib. If uxplay fails to find libplist when you run it, this is probably because /usr/local/lib is not in the library path (by default,
|
||||
this is the case in ubuntu). To fix this, run "sudo ldconfig" (you might also need to create a file /etc/ld.so.conf.d/libplist.conf
|
||||
containing the text "/usr/local/lib" before running ldconfig) to permanently
|
||||
add /usr/local/lib to the library path._
|
||||
**Note libplist-dev (which must be for libplist version 2.0 or greater) and (for ZOOMFIX) libx11-dev are new dependencies since the original antimof version UxPlay-1.2. Older Linux
|
||||
distributionsmay only supply libplist 1.x, which is too old. [Installing libplist-dev (with libplist3) from ubuntu 18.04 solves this problem on ubuntu 16.04.]**
|
||||
_If you cannot find a libplist-2.x package that installs on your older distribution, you can get it at
|
||||
[https://github.com/libimobiledevice/libplist](https://github.com/libimobiledevice/libplist) and build it from source
|
||||
(you need build tools autoconf, automake, libtool, and may need to also install some libpython*-dev package).
|
||||
By default, libplist installs in /usr/local/lib. If this is not in the library path (as in ubuntu), create a
|
||||
file /etc/ld.so.conf.d/libplist.conf containing the text "/usr/local/lib", and run "sudo ldconfig" to permanently add /usr/local/lib to the library path._
|
||||
|
||||
**Red Hat, Fedora, CentOS:**
|
||||
(sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel (+libX11-devel for ZOOMFIX). The required
|
||||
@@ -150,13 +144,13 @@ 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-1.1.1 and libplist: these can be built from source (see below) but it's easier to get them using
|
||||
Next install OpenSSL and libplist: these can be built from source (see below) but it is easier to get them using
|
||||
MacPorts "sudo port install openssl libplist-devel" or Homebrew "brew install openssl libplist". Only the
|
||||
static forms of the two libraries will used for the macOS build, so they do not need to remain installed after you have built uxplay:
|
||||
if you don't have MacPorts or Homebrew installed, you can just install
|
||||
one of these package-managers before building uxplay, and uninstall it afterwards if you don't want to keep it.
|
||||
one of these package-managers before building uxplay, and uninstall it afterwards if you do not want to keep it.
|
||||
Unfortunately, Fink's openssl11-dev package currently doesn't supply the static (libcrypto.a) form of the
|
||||
needed library libcrypto, and its libplist1 package is too old.
|
||||
needed OpenSLL library libcrypto, and its libplist1 package is too old.
|
||||
|
||||
Finally, build and install uxplay (without ZOOMFIX): open a terminal and change into the UxPlay source directory
|
||||
("UxPlay-master" for zipfile downloads, "UxPlay" for "git clone" downloads) and build/install with
|
||||
@@ -172,16 +166,15 @@ Also, the resolution settings "-s wxh" do not affect
|
||||
the (small) initial mirror window size, but the window can be expanded using the mouse or trackpad.
|
||||
|
||||
|
||||
***Building OpenSSL-1.1.1 and libplist from source on macOS***
|
||||
***Building OpenSSL and libplist from source on macOS***
|
||||
|
||||
If you have have the standard GNU toolset (autoconf, automake, libtool, etc.) installed,
|
||||
you can also download and compile the source code for these libraries from
|
||||
[https://www.openssl.org/source/](https://www.openssl.org/source/),
|
||||
[https://github.com/libimobiledevice/libplist](https://github.com/libimobiledevice/libplist).
|
||||
Install the downloaded
|
||||
openssl-1.1.1 by opening a terminal in your Downloads directory, and unpacking the source distribution openssl-1.1.1x.tar.gz (where "x" is a "patch" label,
|
||||
currently given by "x" = "l"):
|
||||
("tar -xvzf openssl-1.1.1x.tar.gz ; cd openssl-1.1.1x"). Then build/install with
|
||||
openssl by opening a terminal in your Downloads directory, and unpacking the source distribution openssl-3.0.0.tar.gz ,
|
||||
("tar -xvzf openssl-3.0.0.tar.gz ; cd openssl-3.0.0"). Then build/install with
|
||||
"./config ; make ; sudo make install_dev" and clean up after building uxplay with "sudo make uninstall" in the same directory.
|
||||
Similarly, for libplist, download the source as a zipfile from github as
|
||||
[libplist-master.zip](https://github.com/libimobiledevice/libplist/archive/refs/heads/master.zip), then
|
||||
@@ -193,10 +186,10 @@ unpack ("unzip libplist-master.zip ; cd libplist-master"), build/install
|
||||
|
||||
First make sure that pkgconfig is installed (Homebrew: "brew install pkgconfig" ; MacPorts: "sudo port install pkgconfig" ).
|
||||
|
||||
(a) with Homebrew: "brew install gst-plugins-good gst-plugins-bad gst-libav". This appears to be functionally equivalent
|
||||
(a) with Homebrew: "brew install gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav". This appears to be functionally equivalent
|
||||
to using GStreamer.framework, but causes a large number of extra packages to be installed by Homebrew as dependencies.
|
||||
|
||||
(b) with MacPorts: "sudo port install gstreamer1-gst-plugins-good gstreamer1-gst-plugins-bad gstreamer1-gst-libav".
|
||||
(b) with MacPorts: "sudo port install gstreamer1-gst-plugins-base gstreamer1-gst-plugins-good gstreamer1-gst-plugins-bad gstreamer1-gst-libav".
|
||||
The MacPorts GStreamer is built to use X11, so must be run from an XQuartz terminal, can use ZOOMFIX, and needs
|
||||
option "-vs ximagesink". On an older unibody MacBook Pro, the default resolution wxh = 1920x1080 was too large for
|
||||
the non-retina display, but using option "-s 800x600" worked; However, the GStreamer pipeline is fragile against attempts to change
|
||||
|
||||
104
README.txt
104
README.txt
@@ -41,8 +41,8 @@ audio and video renderers also found in RPiPlay.) Tested on Ubuntu
|
||||
|
||||
Features: 1. Based on Gstreamer. 2. Video and audio are supported out of
|
||||
the box. 3. Gstreamer decoding is plugin agnostic. Uses accelerated
|
||||
decoders if available. VAAPI is preferable, (but don't use VAAPI with
|
||||
nVidia). 4. Automatic screen orientation.
|
||||
decoders if available. For Intel graphics, VAAPI is preferable, (but
|
||||
don't use VAAPI with nVidia). 4. Automatic screen orientation.
|
||||
|
||||
### Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues.
|
||||
|
||||
@@ -75,11 +75,10 @@ Either download and unzip
|
||||
[UxPlay-master.zip](https://github.com/FDH2/UxPlay/archive/refs/heads/master.zip),
|
||||
or (if git is installed): "git clone https://github.com/FDH2/UxPlay".
|
||||
|
||||
*This is a pull request on the original site
|
||||
\*This is a pull request on the original site
|
||||
https://github.com/antimof/UxPlay ; it may or may not ever get committed
|
||||
into the codebase on the antimof site, as that project appears to no
|
||||
longer be active. If the pull request ever gets committed, replace
|
||||
"FDH2" by "antimof" in the above.*
|
||||
longer be active.
|
||||
|
||||
Building this version (Linux and \*BSD):
|
||||
========================================
|
||||
@@ -122,24 +121,19 @@ the build directory after the build processs. Run uxplay in a terminal
|
||||
window.
|
||||
|
||||
**Note libplist-dev (which must be for libplist version 2.0 or greater)
|
||||
and (for ZOOMFIX) libx11-dev are new dependencies. Older distributions
|
||||
may only supply libplist 1.x, which is too old. \[Installing
|
||||
libplist-dev (with libplist3) from ubuntu 18.04 solves this problem on
|
||||
ubuntu 16.04.\]**
|
||||
|
||||
and (for ZOOMFIX) libx11-dev are new dependencies since the original
|
||||
antimof version UxPlay-1.2. Older Linux distributionsmay only supply
|
||||
libplist 1.x, which is too old. \[Installing libplist-dev (with
|
||||
libplist3) from ubuntu 18.04 solves this problem on ubuntu 16.04.\]**
|
||||
\_If you cannot find a libplist-2.x package that installs on your older
|
||||
distribution, and you don't wish to upgrade, see the instructions below
|
||||
(in the macOS section) on building libplist from source (you need
|
||||
autoconf, automake, libtool, and may need to also install some
|
||||
libpython\*-dev package) but (unlike the statically-linked macOS case)
|
||||
do not uninstall the libplist library after building uxplay; it must
|
||||
remain installed. It is in /usr/local/lib. If uxplay fails to find
|
||||
libplist when you run it, this is probably because /usr/local/lib is not
|
||||
in the library path (by default, this is the case in ubuntu). To fix
|
||||
this, run "sudo ldconfig" (you might also need to create a file
|
||||
/etc/ld.so.conf.d/libplist.conf containing the text "/usr/local/lib"
|
||||
before running ldconfig) to permanently add /usr/local/lib to the
|
||||
library path.\_
|
||||
distribution, you can get it at
|
||||
<https://github.com/libimobiledevice/libplist> and build it from source
|
||||
(you need build tools autoconf, automake, libtool, and may need to also
|
||||
install some libpython\*-dev package). By default, libplist installs in
|
||||
/usr/local/lib. If this is not in the library path (as in ubuntu),
|
||||
create a file /etc/ld.so.conf.d/libplist.conf containing the text
|
||||
"/usr/local/lib", and run "sudo ldconfig" to permanently add
|
||||
/usr/local/lib to the library path.\_
|
||||
|
||||
**Red Hat, Fedora, CentOS:** (sudo yum install) openssl-devel
|
||||
libplist-devel avahi-compat-libdns\_sd-devel (+libX11-devel for
|
||||
@@ -188,17 +182,17 @@ 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-1.1.1 and libplist: these can be built from source
|
||||
(see below) but it's easier to get them using MacPorts "sudo port
|
||||
install openssl libplist-devel" or Homebrew "brew install openssl
|
||||
libplist". Only the static forms of the two libraries will used for the
|
||||
macOS build, so they do not need to remain installed after you have
|
||||
built uxplay: if you don't have MacPorts or Homebrew installed, you can
|
||||
just install one of these package-managers before building uxplay, and
|
||||
uninstall it afterwards if you don't want to keep it. Unfortunately,
|
||||
Next install OpenSSL and libplist: these can be built from source (see
|
||||
below) but it is easier to get them using MacPorts "sudo port install
|
||||
openssl libplist-devel" or Homebrew "brew install openssl libplist".
|
||||
Only the static forms of the two libraries will used for the macOS
|
||||
build, so they do not need to remain installed after you have built
|
||||
uxplay: if you don't have MacPorts or Homebrew installed, you can just
|
||||
install one of these package-managers before building uxplay, and
|
||||
uninstall it afterwards if you do not want to keep it. Unfortunately,
|
||||
Fink's openssl11-dev package currently doesn't supply the static
|
||||
(libcrypto.a) form of the needed library libcrypto, and its libplist1
|
||||
package is too old.
|
||||
(libcrypto.a) form of the needed OpenSLL library libcrypto, and its
|
||||
libplist1 package is too old.
|
||||
|
||||
Finally, build and install uxplay (without ZOOMFIX): open a terminal and
|
||||
change into the UxPlay source directory ("UxPlay-master" for zipfile
|
||||
@@ -215,16 +209,15 @@ glimagesink GStreamer OpenGL plugin, not UxPlay). Also, the resolution
|
||||
settings "-s wxh" do not affect the (small) initial mirror window size,
|
||||
but the window can be expanded using the mouse or trackpad.
|
||||
|
||||
***Building OpenSSL-1.1.1 and libplist from source on macOS***
|
||||
***Building OpenSSL and libplist from source on macOS***
|
||||
|
||||
If you have have the standard GNU toolset (autoconf, automake, libtool,
|
||||
etc.) installed, you can also download and compile the source code for
|
||||
these libraries from <https://www.openssl.org/source/>,
|
||||
<https://github.com/libimobiledevice/libplist>. Install the downloaded
|
||||
openssl-1.1.1 by opening a terminal in your Downloads directory, and
|
||||
unpacking the source distribution openssl-1.1.1x.tar.gz (where "x" is a
|
||||
"patch" label, currently given by "x" = "l"): ("tar -xvzf
|
||||
openssl-1.1.1x.tar.gz ; cd openssl-1.1.1x"). Then build/install with
|
||||
openssl by opening a terminal in your Downloads directory, and unpacking
|
||||
the source distribution openssl-3.0.0.tar.gz , ("tar -xvzf
|
||||
openssl-3.0.0.tar.gz ; cd openssl-3.0.0"). Then build/install with
|
||||
"./config ; make ; sudo make install\_dev" and clean up after building
|
||||
uxplay with "sudo make uninstall" in the same directory. Similarly, for
|
||||
libplist, download the source as a zipfile from github as
|
||||
@@ -239,25 +232,26 @@ recommended):***
|
||||
First make sure that pkgconfig is installed (Homebrew: "brew install
|
||||
pkgconfig" ; MacPorts: "sudo port install pkgconfig" ).
|
||||
|
||||
(a) with Homebrew: "brew install gst-plugins-good gst-plugins-bad
|
||||
gst-libav". This appears to be functionally equivalent to using
|
||||
GStreamer.framework, but causes a large number of extra packages to
|
||||
be installed by Homebrew as dependencies.
|
||||
(a) with Homebrew: "brew install gst-plugins-base gst-plugins-good
|
||||
gst-plugins-bad gst-libav". This appears to be functionally
|
||||
equivalent to using GStreamer.framework, but causes a large number
|
||||
of extra packages to be installed by Homebrew as dependencies.
|
||||
|
||||
(b) with MacPorts: "sudo port install gstreamer1-gst-plugins-good
|
||||
gstreamer1-gst-plugins-bad gstreamer1-gst-libav". The MacPorts
|
||||
GStreamer is built to use X11, so must be run from an XQuartz
|
||||
terminal, can use ZOOMFIX, and needs option "-vs ximagesink". On an
|
||||
older unibody MacBook Pro, the default resolution wxh = 1920x1080
|
||||
was too large for the non-retina display, but using option "-s
|
||||
800x600" worked; However, the GStreamer pipeline is fragile against
|
||||
attempts to change the X11 window size, or to rotations that switch
|
||||
a connected client between portrait and landscape mode while uxplay
|
||||
is running. Using the MacPorts X11 GStreamer is only viable if the
|
||||
image size is left unchanged from the initial "-s wxh" setting (also
|
||||
use the iPad/iPhone setting that locks the screen orientation
|
||||
against switching between portrait and landscape mode as the device
|
||||
is rotated).
|
||||
(b) with MacPorts: "sudo port install gstreamer1-gst-plugins-base
|
||||
gstreamer1-gst-plugins-good gstreamer1-gst-plugins-bad
|
||||
gstreamer1-gst-libav". The MacPorts GStreamer is built to use X11,
|
||||
so must be run from an XQuartz terminal, can use ZOOMFIX, and needs
|
||||
option "-vs ximagesink". On an older unibody MacBook Pro, the
|
||||
default resolution wxh = 1920x1080 was too large for the non-retina
|
||||
display, but using option "-s 800x600" worked; However, the
|
||||
GStreamer pipeline is fragile against attempts to change the X11
|
||||
window size, or to rotations that switch a connected client between
|
||||
portrait and landscape mode while uxplay is running. Using the
|
||||
MacPorts X11 GStreamer is only viable if the image size is left
|
||||
unchanged from the initial "-s wxh" setting (also use the
|
||||
iPad/iPhone setting that locks the screen orientation against
|
||||
switching between portrait and landscape mode as the device is
|
||||
rotated).
|
||||
|
||||
**Troubleshooting:**
|
||||
====================
|
||||
|
||||
Reference in New Issue
Block a user