From 05c504420594d0c718ec8ea5cfb989ad109b65ca Mon Sep 17 00:00:00 2001 From: "F. Duncanh" Date: Thu, 19 Jan 2023 08:18:42 -0500 Subject: [PATCH] minor README update --- README.html | 67 ++++++++++++++++++++++++++++++++--------------------- README.md | 36 +++++++++++++++++----------- README.txt | 62 +++++++++++++++++++++++++++++++------------------ 3 files changed, 104 insertions(+), 61 deletions(-) diff --git a/README.html b/README.html index af00efd..d315e89 100644 --- a/README.html +++ b/README.html @@ -234,11 +234,12 @@ that cmake>=3.4.1 is installed: 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).

In a terminal window, change directories to the source directory of @@ -348,8 +349,8 @@ start, with error: no element “avdec_aac”

  • OpenSUSE: (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 Packman “Essentials” (which provides packages including plugins that OpenSUSE does not ship for license reasons).

  • @@ -771,13 +772,15 @@ audiosink might not work on your system.)

    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 @@ -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 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

    +

    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.

    @@ -910,11 +915,21 @@ 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 +problem.

    + +

    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).

    +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

    +   eno1 IPv6 UxPlay                                        AirPlay Remote Video local
    @@ -928,9 +943,9 @@ like

    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, 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, @@ -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 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 -g debug flag from CMAKE_CFLAGS. Postpend (instead of prepend) build diff --git a/README.md b/README.md index d5db156..ce1a43e 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/README.txt b/README.txt index 3216243..c3ad03b 100644 --- a/README.txt +++ b/README.txt @@ -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