minor README update

This commit is contained in:
F. Duncanh
2023-01-19 08:18:42 -05:00
parent 1de43f914f
commit 05c5044205
3 changed files with 104 additions and 61 deletions

View File

@@ -234,11 +234,12 @@ that cmake>=3.4.1 is installed:
<code>build-essential</code> and <code>pkg-config</code> (or
<code>pkgconf</code>) to this if needed).</p>
<p>Make sure that your distribution provides OpenSSL 1.1.1 or later, and
libplist 2.0 or later. (This means Debian 10 “Buster”, Ubuntu 18.04 or
later.) If it does not, you may need to build and install these from
source (see instructions at the end of this README). If you have a
non-standard OpenSSL installation, you may need to set the environment
variable OPENSSL_ROOT_DIR (<em>e.g.</em> ,
libplist 2.0 or later. (This means Debian 10 “Buster” based systems
(e.g, Ubuntu 18.04) or newer; on Debian 10 systems “libplist” is an
older version, you need “libplist3”.) If it does not, you may need to
build and install these from source (see instructions at the end of this
README). If you have a non-standard OpenSSL installation, you may need
to set the environment variable OPENSSL_ROOT_DIR (<em>e.g.</em> ,
<code>export OPENSSL_ROOT_DIR=/usr/local/lib64</code>” if that is where
it is installed).</p>
<p>In a terminal window, change directories to the source directory of
@@ -348,8 +349,8 @@ start, with error: <strong>no element “avdec_aac”</strong>
<li><p><strong>OpenSUSE:</strong> (sudo zypper install) The required
GStreamer packages are: gstreamer-devel gstreamer-plugins-base-devel
gstreamer-plugins-libav gstreamer-plugins-bad (+ gstreamer-plugins-vaapi
for Intel graphics); in some cases, you may need to use gstreamer
packages for OpenSUSE from <a
for Intel graphics); in some cases, you may need to use gstreamer or
libav* packages for OpenSUSE from <a
href="https://ftp.gwdg.de/pub/linux/misc/packman/suse/">Packman</a>
“Essentials” (which provides packages including plugins that OpenSUSE
does not ship for license reasons).</p></li>
@@ -771,13 +772,15 @@ audiosink might not work on your system.)</p>
playing of streamed audio, but displays streamed video.</p>
<p><strong>-ao x.y</strong> adds an audio offset time in (decimal)
seconds to Audio-only (ALAC) streams to allow synchronization of sound
playing on the UxPlay server with video on the client. In the AirPlay
Legacy mode used by UxPlay, the client cannot obtain audio latency
information from the server, and appears to assume a latency of about 5
seconds. This can be corrected with offset values such as
<code>-ao 5</code> or <code>-ao 4.9</code>. The -ao option accepts
values of the offset between 0 and 10 seconds, as a decimal number which
it converts to a whole number of milliseconds.</p>
playing on the UxPlay server with video on the client which delays
playing the audio by <em>x.y</em> seconds (a decimal number). In the
AirPlay Legacy mode used by UxPlay, the client cannot obtain audio
latency information from the server, and appears to assume a latency of
about 5 seconds. This can be compensated for with offset values such as
<code>-ao 5</code> (but the effect of a pause in play etc., on the
client will also be delayed). The -ao option accepts values in the range
[0,10], which it converts to a whole number of milliseconds (-ao 1.2345
gives 1234 msec audio delay).</p>
<p><strong>-ca <em>filename</em></strong> provides a file (where
<em>filename</em> can include a full path) used for output of “cover
art” (from Apple Music, <em>etc.</em>,) in audio-only ALAC mode. This
@@ -875,11 +878,13 @@ present, set the environment variable OPEN_SSL_ROOT_DIR to point to the
correct one; on 64-bit Ubuntu, this is done by running
<code>export OPENSSL_ROOT_DIR=/usr/lib/X86_64-linux-gnu/</code> before
running cmake.</p>
<h3
id="uxplay-starts-but-either-stalls-or-stops-after-initialized-server-sockets-appears-without-the-server-name-showing-on-the-client.">1.
uxplay starts, but either stalls or stops after “Initialized server
socket(s)” appears (<em>without the server name showing on the
client</em>).</h3>
<h3 id="avahidns_sd-bonjourzeroconf-issues">1. <strong>Avahi/DNS_SD
Bonjour/Zeroconf issues</strong></h3>
<ul>
<li><strong>uxplay starts, but either stalls or stops after “Initialized
server socket(s)” appears (<em>without the server name showing on the
client</em>)</strong>.</li>
</ul>
<p>If UxPlay stops with the “No DNS-SD Server found” message, this means
that your network <strong>does not have a running Bonjour/zeroconf
DNS-SD server.</strong></p>
@@ -910,11 +915,21 @@ for airplay support.</em>)</p>
<p>If UxPlay stalls <em>without an error message</em> and <em>without
the server name showing on the client</em>, this is either
pre-UxPlay-1.60 behavior when no DNS-SD server was found, or a network
problem. After starting uxplay, use the utility
problem.</p>
<ul>
<li><strong>Avahi works at first, but new clients do not see UxPlay, or
clients that initially saw it stop doing so after they
disconnect</strong>.</li>
</ul>
<p>This is because Avahi is only using the “loopback” network interface,
and is not receiving mDNS queries from new clients that were not
listening when UxPlay started.</p>
<p>To check this, after starting uxplay, use the utility
<code>avahi-browse -a -t</code> in a different terminal window on the
server to verify that the UxPlay AirTunes and AirPlay services are
correctly registered (only the AirTunes service is used in the “Legacy”
AirPlay Mirror mode used by UxPlay).</p>
AirPlay Mirror mode used by UxPlay, bit the AirPlay service is used for
the initial contact).</p>
<p>The results returned by avahi-browse should show entries for uxplay
like</p>
<pre><code>+ eno1 IPv6 UxPlay AirPlay Remote Video local
@@ -928,9 +943,9 @@ like</p>
UxPlay host is probably blocking full DNS-SD service, and you need to
open the default UDP port 5353 for mDNS requests, as loopback-based
DNS-SD service is unreliable.</p>
<p>If the UxPlay service is listed by avahi-browse, but is not seen by
the client, the problem is likely to be a problem with the local
network.</p>
<p>If the UxPlay services are listed by avahi-browse as above, but are
not seen by the client, the problem is likely to be a problem with the
local network.</p>
<h3
id="uxplay-starts-but-stalls-after-initialized-server-sockets-appears-with-the-server-name-showing-on-the-client-but-the-client-fails-to-connect-when-the-uxplay-server-is-selected.">2.
uxplay starts, but stalls after “Initialized server socket(s)” appears,
@@ -1080,11 +1095,11 @@ as “SupportsLegacyPairing”) of the “features” plist code (reported to
the client by the AirPlay server) to be set. The “features” code and
other settings are set in <code>UxPlay/lib/dnssdint.h</code>.</p>
<h1 id="changelog">Changelog</h1>
<p>1.62 2023-01-14 Added Audio-only mode time offset -ao x to allow user
<p>1.62 2023-01-18 Added Audio-only mode time offset -ao x to allow user
synchronization of ALAC audio playing on the server with video, song
lyrics, etc. playing on the client. x = 5.0 appears to be optimal in
many cases. Quality fixes: change default fps to 60, cleanup in volume
changes, some bugfixes.</p>
changes, timestamps, some bugfixes.</p>
<p>1.61 2022-12-30 Removed -t option (workaround for an Avahi issue,
correctly solved by opening network port UDP 5353 in firewall). Remove
-g debug flag from CMAKE_CFLAGS. Postpend (instead of prepend) build

View File

@@ -193,8 +193,9 @@ pkgconf. Also make sure that cmake>=3.4.1 is installed:
(or ``pkgconf``) to this if needed).
Make sure that your distribution provides OpenSSL 1.1.1 or later, and
libplist 2.0 or later. (This means Debian 10 "Buster", Ubuntu 18.04 or
later.) If it does not, you may need to build and install these from
libplist 2.0 or later. (This means Debian 10 "Buster" based systems (e.g, Ubuntu 18.04) or newer;
on Debian 10 systems "libplist" is an older version, you need "libplist3".) If it does
not, you may need to build and install these from
source (see instructions at the end of this README). If you have a non-standard OpenSSL
installation, you may need to set the environment variable OPENSSL_ROOT_DIR
(_e.g._ , "`export OPENSSL_ROOT_DIR=/usr/local/lib64`" if that is where it is installed).
@@ -293,7 +294,7 @@ error: **no element "avdec_aac"** ]_.
(sudo zypper install)
The required GStreamer packages are: gstreamer-devel
gstreamer-plugins-base-devel gstreamer-plugins-libav gstreamer-plugins-bad (+ gstreamer-plugins-vaapi
for Intel graphics); in some cases, you may need to use gstreamer packages for OpenSUSE
for Intel graphics); in some cases, you may need to use gstreamer or libav* packages for OpenSUSE
from [Packman](https://ftp.gwdg.de/pub/linux/misc/packman/suse/) "Essentials"
(which provides packages including plugins that OpenSUSE does not ship for license reasons).
@@ -657,10 +658,11 @@ which will not work if a firewall is running.
**-as 0** (or just **-a**) suppresses playing of streamed audio, but displays streamed video.
**-ao x.y** adds an audio offset time in (decimal) seconds to Audio-only (ALAC) streams to allow synchronization of sound
playing on the UxPlay server with video on the client. In the AirPlay Legacy mode used by UxPlay, the client cannot
obtain audio latency information from the server, and appears to assume a latency of about 5 seconds. This can be corrected
with offset values such as `-ao 5` or ``-ao 4.9``. The -ao option accepts values of the offset between 0 and 10 seconds, as
a decimal number which it converts to a whole number of milliseconds.
playing on the UxPlay server with video on the client which delays playing the audio by _x.y_ seconds (a
decimal number). In the AirPlay Legacy mode used by UxPlay, the client cannot obtain audio latency information
from the server, and appears to assume a latency of about 5 seconds. This can be compensated for with offset values such
as `-ao 5` (but the effect of a pause in play etc., on the client will also be delayed). The -ao option accepts
values in the range [0,10], which it converts to a whole number of milliseconds (-ao 1.2345 gives 1234 msec audio delay).
**-ca _filename_** provides a file (where _filename_ can include a full path) used for output of "cover art"
(from Apple Music, _etc._,) in audio-only ALAC mode. This file is overwritten with the latest cover art as
@@ -744,7 +746,9 @@ Solution: when more than one installation of OpenSSL is present, set the environ
on 64-bit Ubuntu, this is done by
running `export OPENSSL_ROOT_DIR=/usr/lib/X86_64-linux-gnu/` before running cmake.
### 1. uxplay starts, but either stalls or stops after "Initialized server socket(s)" appears (_without the server name showing on the client_).
### 1. **Avahi/DNS_SD Bonjour/Zeroconf issues**
* **uxplay starts, but either stalls or stops after "Initialized server socket(s)" appears (_without the server name showing on the client_)**.
If UxPlay stops with the "No DNS-SD Server found" message, this means that your network **does not have a running Bonjour/zeroconf DNS-SD server.**
@@ -767,9 +771,15 @@ uncomment a line for airplay support._)
If UxPlay stalls _without an error message_ and _without the server name showing on the client_, this is either pre-UxPlay-1.60
behavior when no DNS-SD server was found, or a network problem.
After starting uxplay, use the utility ``avahi-browse -a -t`` in a different terminal window on the server to
* **Avahi works at first, but new clients do not see UxPlay, or clients that initially saw it stop doing so after they disconnect**.
This is because Avahi is only using the "loopback" network interface, and is not receiving mDNS queries from new clients that were not
listening when UxPlay started.
To check this, after starting uxplay, use the utility ``avahi-browse -a -t`` in a different terminal window on the server to
verify that the UxPlay AirTunes and AirPlay services are correctly registered (only the AirTunes service is
used in the "Legacy" AirPlay Mirror mode used by UxPlay).
used in the "Legacy" AirPlay Mirror mode used by UxPlay, bit the AirPlay service is used for the initial contact).
The results returned by avahi-browse should show entries for
uxplay like
@@ -788,7 +798,7 @@ If only the loopback ("lo") entries are shown, a firewall on the UxPlay host
is probably blocking full DNS-SD service, and you need to open the default UDP port 5353 for mDNS requests,
as loopback-based DNS-SD service is unreliable.
If the UxPlay service is listed by avahi-browse, but is not seen by the client,
If the UxPlay services are listed by avahi-browse as above, but are not seen by the client,
the problem is likely to be a problem with the local network.
@@ -910,10 +920,10 @@ tvOS 12.2.1); it seems that the use of "legacy" protocol just requires bit 27 (l
The "features" code and other settings are set in `UxPlay/lib/dnssdint.h`.
# Changelog
1.62 2023-01-14 Added Audio-only mode time offset -ao x to allow user synchronization of ALAC
1.62 2023-01-18 Added Audio-only mode time offset -ao x to allow user synchronization of ALAC
audio playing on the server with video, song lyrics, etc. playing on the client.
x = 5.0 appears to be optimal in many cases. Quality fixes: change default fps to 60,
cleanup in volume changes, some bugfixes.
cleanup in volume changes, timestamps, some bugfixes.
1.61 2022-12-30 Removed -t option (workaround for an Avahi issue, correctly solved by opening network
port UDP 5353 in firewall). Remove -g debug flag from CMAKE_CFLAGS. Postpend (instead

View File

@@ -237,11 +237,12 @@ cmake\>=3.4.1 is installed: "`sudo apt-get install cmake`" (add
`build-essential` and `pkg-config` (or `pkgconf`) to this if needed).
Make sure that your distribution provides OpenSSL 1.1.1 or later, and
libplist 2.0 or later. (This means Debian 10 "Buster", Ubuntu 18.04 or
later.) If it does not, you may need to build and install these from
source (see instructions at the end of this README). If you have a
non-standard OpenSSL installation, you may need to set the environment
variable OPENSSL_ROOT_DIR (*e.g.* ,
libplist 2.0 or later. (This means Debian 10 "Buster" based systems
(e.g, Ubuntu 18.04) or newer; on Debian 10 systems "libplist" is an
older version, you need "libplist3".) If it does not, you may need to
build and install these from source (see instructions at the end of this
README). If you have a non-standard OpenSSL installation, you may need
to set the environment variable OPENSSL_ROOT_DIR (*e.g.* ,
"`export OPENSSL_ROOT_DIR=/usr/local/lib64`" if that is where it is
installed).
@@ -350,7 +351,7 @@ need to be installed, depending on how your audio is set up.
are: gstreamer-devel gstreamer-plugins-base-devel
gstreamer-plugins-libav gstreamer-plugins-bad (+
gstreamer-plugins-vaapi for Intel graphics); in some cases, you may
need to use gstreamer packages for OpenSUSE from
need to use gstreamer or libav\* packages for OpenSUSE from
[Packman](https://ftp.gwdg.de/pub/linux/misc/packman/suse/)
"Essentials" (which provides packages including plugins that
OpenSUSE does not ship for license reasons).
@@ -793,12 +794,14 @@ displays streamed video.
**-ao x.y** adds an audio offset time in (decimal) seconds to Audio-only
(ALAC) streams to allow synchronization of sound playing on the UxPlay
server with video on the client. In the AirPlay Legacy mode used by
UxPlay, the client cannot obtain audio latency information from the
server, and appears to assume a latency of about 5 seconds. This can be
corrected with offset values such as `-ao 5` or `-ao 4.9`. The -ao
option accepts values of the offset between 0 and 10 seconds, as a
decimal number which it converts to a whole number of milliseconds.
server with video on the client which delays playing the audio by *x.y*
seconds (a decimal number). In the AirPlay Legacy mode used by UxPlay,
the client cannot obtain audio latency information from the server, and
appears to assume a latency of about 5 seconds. This can be compensated
for with offset values such as `-ao 5` (but the effect of a pause in
play etc., on the client will also be delayed). The -ao option accepts
values in the range \[0,10\], which it converts to a whole number of
milliseconds (-ao 1.2345 gives 1234 msec audio delay).
**-ca *filename*** provides a file (where *filename* can include a full
path) used for output of "cover art" (from Apple Music, *etc.*,) in
@@ -907,7 +910,11 @@ correct one; on 64-bit Ubuntu, this is done by running
`export OPENSSL_ROOT_DIR=/usr/lib/X86_64-linux-gnu/` before running
cmake.
### 1. uxplay starts, but either stalls or stops after "Initialized server socket(s)" appears (*without the server name showing on the client*).
### 1. **Avahi/DNS_SD Bonjour/Zeroconf issues**
- **uxplay starts, but either stalls or stops after "Initialized
server socket(s)" appears (*without the server name showing on the
client*)**.
If UxPlay stops with the "No DNS-SD Server found" message, this means
that your network **does not have a running Bonjour/zeroconf DNS-SD
@@ -939,11 +946,21 @@ a line for airplay support.*)
If UxPlay stalls *without an error message* and *without the server name
showing on the client*, this is either pre-UxPlay-1.60 behavior when no
DNS-SD server was found, or a network problem. After starting uxplay,
use the utility `avahi-browse -a -t` in a different terminal window on
the server to verify that the UxPlay AirTunes and AirPlay services are
correctly registered (only the AirTunes service is used in the "Legacy"
AirPlay Mirror mode used by UxPlay).
DNS-SD server was found, or a network problem.
- **Avahi works at first, but new clients do not see UxPlay, or
clients that initially saw it stop doing so after they disconnect**.
This is because Avahi is only using the "loopback" network interface,
and is not receiving mDNS queries from new clients that were not
listening when UxPlay started.
To check this, after starting uxplay, use the utility
`avahi-browse -a -t` in a different terminal window on the server to
verify that the UxPlay AirTunes and AirPlay services are correctly
registered (only the AirTunes service is used in the "Legacy" AirPlay
Mirror mode used by UxPlay, bit the AirPlay service is used for the
initial contact).
The results returned by avahi-browse should show entries for uxplay like
@@ -959,8 +976,9 @@ host is probably blocking full DNS-SD service, and you need to open the
default UDP port 5353 for mDNS requests, as loopback-based DNS-SD
service is unreliable.
If the UxPlay service is listed by avahi-browse, but is not seen by the
client, the problem is likely to be a problem with the local network.
If the UxPlay services are listed by avahi-browse as above, but are not
seen by the client, the problem is likely to be a problem with the local
network.
### 2. uxplay starts, but stalls after "Initialized server socket(s)" appears, *with the server name showing on the client* (but the client fails to connect when the UxPlay server is selected).
@@ -1119,11 +1137,11 @@ other settings are set in `UxPlay/lib/dnssdint.h`.
# Changelog
1.62 2023-01-14 Added Audio-only mode time offset -ao x to allow user
1.62 2023-01-18 Added Audio-only mode time offset -ao x to allow user
synchronization of ALAC audio playing on the server with video, song
lyrics, etc. playing on the client. x = 5.0 appears to be optimal in
many cases. Quality fixes: change default fps to 60, cleanup in volume
changes, some bugfixes.
changes, timestamps, some bugfixes.
1.61 2022-12-30 Removed -t option (workaround for an Avahi issue,
correctly solved by opening network port UDP 5353 in firewall). Remove