mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-14 00:04:13 +09:00
README updates for 1.67
This commit is contained in:
175
README.html
175
README.html
@@ -3,38 +3,40 @@ id="uxplay-1.67-airplay-mirror-and-airplay-audio-server-for-linux-macos-and-unix
|
||||
1.67: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix
|
||||
(now also runs on Windows).</h1>
|
||||
<h3
|
||||
id="now-developed-at-the-github-site-httpsgithub.comfdh2uxplay-where-all-user-issues-should-be-posted.">Now
|
||||
id="now-developed-at-the-github-site-httpsgithub.comfdh2uxplay-where-all-user-issues-should-be-posted-and-latest-versions-can-be-found.">Now
|
||||
developed at the GitHub site <a
|
||||
href="https://github.com/FDH2/UxPlay">https://github.com/FDH2/UxPlay</a>
|
||||
(where all user issues should be posted).</h3>
|
||||
(where ALL user issues should be posted, and latest versions can be
|
||||
found).</h3>
|
||||
<ul>
|
||||
<li><em><strong>NEW in v1.67</strong>: support for one-time Apple-style
|
||||
“pin” code client authentication (“client-server pairing”) when the
|
||||
option “-pin” is used.</em></li>
|
||||
</ul>
|
||||
<h2 id="highlights">Highlights:</h2>
|
||||
<ul>
|
||||
<li><p>GPLv3, open source.</p></li>
|
||||
<li><p>Originally supported only AirPlay Mirror protocol, now has added
|
||||
<li>GPLv3, open source.</li>
|
||||
<li>Originally supported only AirPlay Mirror protocol, now has added
|
||||
support for AirPlay Audio-only (Apple Lossless ALAC) streaming from
|
||||
current iOS/iPadOS clients. <strong>There is no support for Airplay2
|
||||
video-streaming protocol, and none is planned.</strong></p></li>
|
||||
<li><p>macOS computers (2011 or later, both Intel and “Apple Silicon”
|
||||
M1/M2 systems) can act either as AirPlay clients, or as the server
|
||||
running UxPlay. Using AirPlay, UxPlay can emulate a second display for
|
||||
macOS clients.</p></li>
|
||||
<li><p>Support for older iOS clients (such as 32-bit iPad 2nd gen., iPod
|
||||
video-streaming protocol, and none is planned.</strong></li>
|
||||
<li>macOS computers (2011 or later, both Intel and “Apple Silicon” M1/M2
|
||||
systems) can act either as AirPlay clients, or as the server running
|
||||
UxPlay. Using AirPlay, UxPlay can emulate a second display for macOS
|
||||
clients.</li>
|
||||
<li>Support for older iOS clients (such as 32-bit iPad 2nd gen., iPod
|
||||
Touch 5th gen. and iPhone 4S, when upgraded to iOS 9.3.5, or later
|
||||
64-bit devices), plus a Windows AirPlay-client emulator,
|
||||
AirMyPC.</p></li>
|
||||
<li><p>Uses GStreamer plugins for audio and video rendering (with
|
||||
options to select different hardware-appropriate output “videosinks” and
|
||||
64-bit devices), plus a Windows AirPlay-client emulator, AirMyPC.</li>
|
||||
<li>Uses GStreamer plugins for audio and video rendering (with options
|
||||
to select different hardware-appropriate output “videosinks” and
|
||||
“audiosinks”, and a fully-user-configurable video streaming
|
||||
pipeline).</p></li>
|
||||
<li><p>Support for server behind a firewall.</p></li>
|
||||
<li><p>Raspberry Pi support <strong>both with and without hardware video
|
||||
decoding</strong> by the Broadcom GPU. <em>Tested on Raspberry Pi 5, Pi
|
||||
4 Model B and Pi 3 model B+.</em></p></li>
|
||||
<li><p>Support for running on Microsoft Windows (builds with the
|
||||
MinGW-64 compiler in the unix-like MSYS2 environment).</p></li>
|
||||
<li><p><em>NEW in v1.67: support for one-time Apple-style “pin” code
|
||||
client authentication (“client-server pairing”) when the option “-pin”
|
||||
is used.</em></p></li>
|
||||
pipeline).</li>
|
||||
<li>Support for server behind a firewall.</li>
|
||||
<li>Raspberry Pi support <strong>both with and without hardware video
|
||||
decoding</strong> by the Broadcom GPU. <em>Tested on Raspberry Pi Models
|
||||
3B+, 4B, and 5.</em></li>
|
||||
<li>Support for running on Microsoft Windows (builds with the MinGW-64
|
||||
compiler in the unix-like MSYS2 environment).</li>
|
||||
</ul>
|
||||
<h2 id="packaging-status-linux-and-bsd-distributions">Packaging status
|
||||
(Linux and *BSD distributions)</h2>
|
||||
@@ -104,12 +106,12 @@ Debian (10 “Buster”, 11 “Bullseye”, 12 “Bookworm”), Ubuntu (20.04 LT
|
||||
22.04 LTS, 23.04 (also Ubuntu derivatives Linux Mint, Pop!_OS), Red Hat
|
||||
and clones (Fedora 38, Rocky Linux 9.2), openSUSE Leap 15.5, Mageia 9,
|
||||
OpenMandriva “ROME”, PCLinuxOS, Arch Linux, Manjaro, and should run on
|
||||
any Linux system. Also tested on macOS 13.3 (Intel and M2), FreeBSD
|
||||
13.2, Windows 10 and 11 (64 bit).</p>
|
||||
<p>On Raspberry Pi 4 model B, it is tested on Raspberry Pi OS (Bullseye)
|
||||
(32- and 64-bit), Ubuntu 22.04 LTS and 23.04, Manjaro RPi4 23.02, and
|
||||
(without hardware video decoding) on openSUSE 15.5. Also tested on
|
||||
Raspberry Pi 3 model B+.</p>
|
||||
any Linux system. Also tested on macOS Catalina and Ventura (Intel) and
|
||||
Sonoma (M2), FreeBSD 14.0, Windows 10 and 11 (64 bit).</p>
|
||||
<p>On Raspberry Pi 4 model B, it is tested on Raspberry Pi OS (Bullseye
|
||||
and Bookworm) (32- and 64-bit), Ubuntu 22.04 LTS and 23.04, Manjaro RPi4
|
||||
23.02, and (without hardware video decoding) on openSUSE 15.5. Also
|
||||
tested on Raspberry Pi 3 model B+ and the new model 5.</p>
|
||||
<p>Its main use is to act like an AppleTV for screen-mirroring (with
|
||||
audio) of iOS/iPadOS/macOS clients (iPhone, iPod Touch, iPad, Mac
|
||||
computers) on the server display of a host running Linux, macOS, or
|
||||
@@ -454,6 +456,16 @@ mDNS queries) needed by Avahi</strong>. See <a
|
||||
href="#troubleshooting">Troubleshooting</a> below for help with this or
|
||||
other problems.</p>
|
||||
<ul>
|
||||
<li><p>Since v 1.67, the UxPlay option “<code>-pin</code>” allows
|
||||
clients to “pair” with the UxPlay server the first time they connect to
|
||||
it, by entering a 4-digit pin code that is displayed on the UxPlay
|
||||
terminal. (This is optional, but sometimes required if the client is a
|
||||
corporately-owned and -managed device with MDM Mobile Device
|
||||
Management.) Pairing occurs just once, is only recorded in the client,
|
||||
and persists unless the UxPlay public key (stored in $HOME/.uxplay.pem,
|
||||
or elsewhere if option <code>-key <filename></code> is used) is
|
||||
moved or deleted, after which a new key is generated. (Non-Apple clients
|
||||
might not implement the persistence feature.)</p></li>
|
||||
<li><p>By default, UxPlay is locked to its current client until that
|
||||
client drops the connection; since UxPlay-1.58, the option
|
||||
<code>-nohold</code> modifies this behavior so that when a new client
|
||||
@@ -461,7 +473,7 @@ requests a connection, it removes the current client and takes over.
|
||||
UxPlay 1.66 introduces a mechanism ( <code>-restrict</code>,
|
||||
<code>-allow <id></code>, <code>-block <id></code>) to
|
||||
control which clients are allowed to connect, using their “deviceID”
|
||||
(which appears to be immutable).</p></li>
|
||||
(which in Apple devices appears to be immutable).</p></li>
|
||||
<li><p>In Mirror mode, GStreamer has a choice of <strong>two</strong>
|
||||
methods to play video with its accompanying audio: prior to UxPlay-1.64,
|
||||
the video and audio streams were both played as soon as possible after
|
||||
@@ -598,23 +610,20 @@ useful. On a system without X11 (like R Pi OS Lite) with framebuffer
|
||||
video, use <code><videosink></code> = <code>kmssink</code>. With
|
||||
the Wayland video compositor, use <code><videosink></code> =
|
||||
<code>waylandsink</code>. When using the Video4Linux2 plugin to access
|
||||
hardware video decoding, an option <code>-v4l2</code> may be useful: for
|
||||
convenience, this also comes combined with various videosink options as
|
||||
<code>-rpi</code>, <code>-rpigl</code> <code>-rpifb</code>,
|
||||
<code>-rpiwl</code>, respectively provided for X11, X11 with OpenGL,
|
||||
framebuffer, and Wayland systems. <strong>You may find that just
|
||||
“<code>uxplay</code>”, (<em>without</em> <code>-v4l2</code> or
|
||||
<code>-rpi*</code> options, which lets GStreamer try to find the best
|
||||
hardware video decoding, an option <code>-v4l2</code> may be useful.
|
||||
<strong>You may find that just “<code>uxplay</code>”, (<em>without</em>
|
||||
the <code>-v4l2</code> option, which lets GStreamer try to find the best
|
||||
video solution by itself) provides the best results</strong> (the
|
||||
<code>-rpi*</code> options may be removed in a future release of
|
||||
UxPlay.)</p>
|
||||
former<code>-rpi*</code> options were equivalent to <code>-v4l2</code>
|
||||
or <code>-v4l2</code> plus one of the ‘-vs’ options, and were removed in
|
||||
UxPlay v1.67 as they do not apply to R Pi model 5.)</p>
|
||||
<ul>
|
||||
<li><p>If you are using Raspberry Pi OS (Bullseye) with Video4Linux2
|
||||
from unpatched GStreamer-1.18.4, you need the <code>-bt709</code> option
|
||||
with UxPlay-1.56 or later. Also don’t use options <code>-v4l2</code> and
|
||||
<code>-rpi*</code> with it, as they cause a crash if the client screen
|
||||
is rotated. (These issues do not occur when the latest GStreamer-1.18.4
|
||||
patch from the UxPlay Wiki has been applied.)</p></li>
|
||||
with UxPlay-1.56 or later. Also don’t use option <code>-v4l2</code> with
|
||||
it, as this causes a crash if the client screen is rotated. (These
|
||||
issues do not occur when the latest GStreamer-1.18.4 patch from the
|
||||
UxPlay Wiki has been applied.)</p></li>
|
||||
<li><p>Tip: to start UxPlay on a remote host (such as a Raspberry Pi)
|
||||
using ssh:</p></li>
|
||||
</ul>
|
||||
@@ -871,22 +880,20 @@ the mirror display (X11) window.</p>
|
||||
<p><strong>-nh</strong> Do not append “<span class="citation"
|
||||
data-cites="_hostname_">@_hostname_</span>” at the end of the AirPlay
|
||||
server name.</p>
|
||||
<p><strong>-pin [nnnn]</strong>: use Apple-style (one-time) “pin”
|
||||
authentication when a new client connects for the first time: a
|
||||
four-digit pin code is displayed on the terminal, and the client screen
|
||||
shows a login prompt for this to be entered. When “-pin” is used by
|
||||
itself, a new randon pin code is chosen for each authentication; “-pin
|
||||
nnnn” (e.g., “-pin 3939”) will set an unchanging fixed code. Persistence
|
||||
of client authentication requires that the public key of the UxPlay
|
||||
server remains the same each time it is started: this is achieved by
|
||||
storing the key in a file (which by default is $HOME/.uxplay.pem, but
|
||||
which can be changed with the <code>"-key <filename>"</code>
|
||||
option) which (if it does not exist) is created the first time the -pin
|
||||
option is used, and is subsequently read each time the server starts. So
|
||||
long as this file is not deleted or moved, clients will not have to
|
||||
authenticate again after their first successful authentication. <em>(Add
|
||||
a “pin” entry in the UxPlay startup file if you wish the UxPlay server
|
||||
to use this protocol).</em></p>
|
||||
<p><strong>-pin [nnnn]</strong>: (since v1.67) use Apple-style
|
||||
(one-time) “pin” authentication when a new client connects for the first
|
||||
time: a four-digit pin code is displayed on the terminal, and the client
|
||||
screen shows a login prompt for this to be entered. When “-pin” is used
|
||||
by itself, a new random pin code is chosen for each authentication; if
|
||||
“-pin nnnn” (e.g., “-pin 3939”) is used, this will set an unchanging
|
||||
fixed code. To retain client authentication after UxPlay restarts, at
|
||||
the first use of “-pin”, the server public key is written to file
|
||||
(default: $HOME/.uxplay.pem; can be changed with option
|
||||
<code>-key <filename></code>), and read back in at subsequent
|
||||
UxPlay startups. As long as this file is not deleted or moved, a client
|
||||
will not have to re-authenticate after an initial authentication.
|
||||
<em>(Add a “pin” entry in the UxPlay startup file if you wish the UxPlay
|
||||
server to use this protocol).</em></p>
|
||||
<p><strong>-vsync [x]</strong> (In Mirror mode:) this option
|
||||
(<strong>now the default</strong>) uses timestamps to synchronize audio
|
||||
with video on the server, with an optional audio delay in (decimal)
|
||||
@@ -992,16 +999,14 @@ Video4Linux2 plugin to recognize Apple’s use of an uncommon (but
|
||||
permitted) “full-range color” variant of the bt709 color standard for
|
||||
digital TV. This is no longer needed by GStreamer-1.20.4 and backports
|
||||
from it.</p>
|
||||
<p><strong>-rpi</strong> Equivalent to “-v4l2”. Use for “Desktop”
|
||||
Raspberry Pi systems with X11.</p>
|
||||
<p><strong>-rpi</strong> Equivalent to “-v4l2” (Not valid for Raspberry
|
||||
Pi model 5, and removed in UxPlay 1.67)</p>
|
||||
<p><strong>-rpigl</strong> Equivalent to “-rpi -vs glimagesink”.
|
||||
Sometimes better for “Desktop” Raspberry Pi systems with X11.</p>
|
||||
<p><strong>-rpifb</strong> Equivalent to “-rpi -vs kmssink” (use for
|
||||
Raspberry Pi systems using the framebuffer, like RPi OS Bullseye
|
||||
Lite).</p>
|
||||
<p><strong>-rpiwl</strong> Equivalent to “-rpi -vs waylandsink”, for
|
||||
Raspberry Pi “Desktop” systems using the Wayland video compositor (use
|
||||
for Ubuntu 21.10 for Raspberry Pi 4B).</p>
|
||||
(Removed since UxPlay 1.67)</p>
|
||||
<p><strong>-rpifb</strong> Equivalent to “-rpi -vs kmssink” (Removed
|
||||
since UxPlay 1.67)</p>
|
||||
<p><strong>-rpiwl</strong> Equivalent to “-rpi -vs waylandsink”.
|
||||
(Removed since UxPlay 1.67)</p>
|
||||
<p><strong>-as <em>audiosink</em></strong> chooses the GStreamer
|
||||
audiosink, instead of letting autoaudiosink pick it for you. Some
|
||||
audiosink choices are: pulsesink, alsasink, pipewiresink, osssink,
|
||||
@@ -1090,11 +1095,13 @@ H with V).</p>
|
||||
<p><strong>-r {R|L}</strong> 90 degree Right (clockwise) or Left
|
||||
(counter-clockwise) rotations; these image transforms are carried out
|
||||
after any <strong>-f</strong> transforms.</p>
|
||||
<p><strong>-m</strong> generates a random MAC address to use instead of
|
||||
the true hardware MAC number of the computer’s network card. (Different
|
||||
server_name, MAC addresses, and network ports are needed for each
|
||||
running uxplay if you attempt to run two instances of uxplay on the same
|
||||
computer.) If UxPlay fails to find the true MAC address of a network
|
||||
<p><strong>-m [mac]</strong> changes the MAC address (Device ID) used by
|
||||
UxPlay (default is to use the true hardware MAC address reported by the
|
||||
host computer’s network card). (Different server_name, MAC addresses,
|
||||
and network ports are needed for each running uxplay if you attempt to
|
||||
run more than one instance of uxplay on the same computer.) If [mac] (in
|
||||
form xx:xx:xx:xx:xx:xx, 6 hex octets) is not given, a random MAC address
|
||||
is generated. If UxPlay fails to find the true MAC address of a network
|
||||
card, (more specifically, the MAC address used by the first active
|
||||
network interface detected) a random MAC address will be used even if
|
||||
option <strong>-m</strong> was not specified. (Note that a random MAC
|
||||
@@ -1106,8 +1113,6 @@ set in the UxPlay startup file as a line “<code>key filename</code>” (no
|
||||
initial “-”), where <code>filename</code> is a full path. The filename
|
||||
may be enclosed in quotes (<code>"...."</code>), (and must be, if the
|
||||
filename has any blank spaces).</p>
|
||||
<p><strong>-t <em>timeout</em></strong> [This option was removed in
|
||||
UxPlay v.1.61.]</p>
|
||||
<p><strong>-vdmp</strong> Dumps h264 video to file videodump.h264. -vdmp
|
||||
n dumps not more than n NAL units to videodump.x.h264; x= 1,2,…
|
||||
increases each time a SPS/PPS NAL unit arrives. To change the name
|
||||
@@ -1412,7 +1417,9 @@ supports one client at a time). <strong>This change is now well-tested,
|
||||
but in case it causes any protocol failures, UxPlay can be reverted to
|
||||
the previous behavior by uncommenting the previous “FEATURES_1” setting
|
||||
(and commenting out the new one) in lib/dnssdint.h, and then rebuilding
|
||||
UxPlay.</strong></p>
|
||||
UxPlay.</strong> (“Pairing” is re-enabled when the new Apple-style
|
||||
one-time “pin” authentication is activated by running UxPlay with the
|
||||
“-pin” option introduced in UxPlay 1.67.)</p>
|
||||
<p>Protocol failure should not happen for iOS 9.3 or later clients.
|
||||
However, if a client uses the same older version of the protocol that is
|
||||
used by the Windows-based AirPlay client emulator <em>AirMyPC</em>, the
|
||||
@@ -1428,12 +1435,16 @@ an AppleTV3,2 (a 32 bit device) with a sourceVersion 220.68; this can
|
||||
also be changed in global.h. UxPlay also works if it declares itself as
|
||||
an AppleTV6,2 with sourceVersion 380.20.1 (an AppleTV 4K 1st gen,
|
||||
introduced 2017, running tvOS 12.2.1), so it does not seem to matter
|
||||
what UxPlay claims to be.</p>
|
||||
what version UxPlay claims to be.</p>
|
||||
<h1 id="changelog">Changelog</h1>
|
||||
<p>1.67 2023-11-29 Add support for Apple-style one-time pin
|
||||
authentication of clients with option “-pin”: (SRP6a authentication
|
||||
protocol) and public key persistence. Detection of (so far) unsupported
|
||||
H265 video when requesting high resolution over wired ethernet.</p>
|
||||
<p>1.67 2023-11-30 Add support for Apple-style one-time pin
|
||||
authentication of clients with option “-pin”: (uses SRP6a authentication
|
||||
protocol and public key persistence). Detection with error message of
|
||||
(currently) unsupported H265 video when requesting high resolution over
|
||||
wired ethernet. Removed rpi* options (which are not valid with new
|
||||
Raspberry Pi model 5, and can be replaced by combinations of other
|
||||
options). Added optional argument “mac” to “-m” option, to specify a
|
||||
replacement MAC address/Device ID. Update llhttp to v. 9.1.3.</p>
|
||||
<p>1.66 2023-09-05 Fix IPV6 support. Add option to restrict clients to
|
||||
those on a list of allowed deviceIDs, or to block connections from
|
||||
clients on a list of blocked deviceIDs. Fix for #207 from <span
|
||||
|
||||
94
README.md
94
README.md
@@ -1,7 +1,10 @@
|
||||
# UxPlay 1.67: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix (now also runs on Windows).
|
||||
|
||||
### Now developed at the GitHub site [https://github.com/FDH2/UxPlay](https://github.com/FDH2/UxPlay) (where all user issues should be posted).
|
||||
### Now developed at the GitHub site [https://github.com/FDH2/UxPlay](https://github.com/FDH2/UxPlay) (where ALL user issues should be posted, and latest versions can be found).
|
||||
|
||||
* _**NEW in v1.67**: support for one-time Apple-style "pin" code client authentication ("client-server
|
||||
pairing") when the option "-pin" is used._
|
||||
|
||||
## Highlights:
|
||||
|
||||
* GPLv3, open source.
|
||||
@@ -19,18 +22,18 @@
|
||||
to select different hardware-appropriate output "videosinks" and
|
||||
"audiosinks", and a fully-user-configurable video streaming pipeline).
|
||||
* Support for server behind a firewall.
|
||||
* Raspberry Pi support **both with and without hardware video decoding** by the Broadcom GPU. _Tested on Raspberry Pi 5, Pi 4 Model B and Pi 3 model B+._
|
||||
* Raspberry Pi support **both with and without hardware video decoding** by the
|
||||
Broadcom GPU. _Tested on Raspberry Pi Models 3B+, 4B, and 5._
|
||||
* Support for running on Microsoft Windows (builds with the MinGW-64 compiler in the
|
||||
unix-like MSYS2 environment).
|
||||
|
||||
* _NEW in v1.67: support for one-time Apple-style "pin" code client authentication ("client-server pairing") when the option "-pin" is used._
|
||||
|
||||
## Packaging status (Linux and \*BSD distributions)
|
||||
|
||||
[](https://repology.org/project/uxplay/versions).
|
||||
|
||||
* Install uxplay on Debian-based Linux systems with "`sudo apt install uxplay`"; on FreeBSD with "``sudo pkg install uxplay``". Also
|
||||
available on Arch-based systems through AUR. Since v. 1.66, uxplay is now also packaged in RPM format by Fedora 38 ("``sudo dnf install uxplay``").
|
||||
* Install uxplay on Debian-based Linux systems with "`sudo apt install uxplay`"; on FreeBSD
|
||||
with "``sudo pkg install uxplay``". Also available on Arch-based systems through AUR. Since v. 1.66,
|
||||
uxplay is now also packaged in RPM format by Fedora 38 ("``sudo dnf install uxplay``").
|
||||
|
||||
* 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.
|
||||
@@ -73,10 +76,11 @@ main [UxPlay site](https://github.com/FDH2/UxPlay)).
|
||||
UxPlay is tested on a number of systems, including (among others) Debian (10 "Buster", 11 "Bullseye", 12 "Bookworm"),
|
||||
Ubuntu (20.04 LTS, 22.04 LTS, 23.04 (also Ubuntu derivatives Linux Mint, Pop!\_OS), Red Hat and clones (Fedora 38,
|
||||
Rocky Linux 9.2), openSUSE Leap 15.5, Mageia 9, OpenMandriva "ROME", PCLinuxOS, Arch Linux, Manjaro, and should run on any Linux system.
|
||||
Also tested on macOS 13.3 (Intel and M2), FreeBSD 13.2, Windows 10 and 11 (64 bit).
|
||||
Also tested on macOS Catalina and Ventura (Intel) and Sonoma (M2), FreeBSD 14.0, Windows 10 and 11 (64 bit).
|
||||
|
||||
On Raspberry Pi 4 model B, it is tested on Raspberry Pi OS (Bullseye) (32- and 64-bit), Ubuntu 22.04 LTS and 23.04, Manjaro RPi4 23.02,
|
||||
and (without hardware video decoding) on openSUSE 15.5. Also tested on Raspberry Pi 3 model B+.
|
||||
On Raspberry Pi 4 model B, it is tested on Raspberry Pi OS (Bullseye and Bookworm) (32- and 64-bit),
|
||||
Ubuntu 22.04 LTS and 23.04, Manjaro RPi4 23.02, and (without hardware video decoding) on openSUSE 15.5.
|
||||
Also tested on Raspberry Pi 3 model B+ and the new model 5.
|
||||
|
||||
Its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/iPadOS/macOS clients
|
||||
(iPhone, iPod Touch, iPad, Mac computers) on the server display
|
||||
@@ -369,11 +373,19 @@ are opened: **if a firewall is active, also open UDP port 5353 (for mDNS queries
|
||||
needed by Avahi**. See [Troubleshooting](#troubleshooting) below for
|
||||
help with this or other problems.
|
||||
|
||||
* Since v 1.67, the UxPlay option "`-pin`" allows clients to "pair" with the UxPlay server
|
||||
the first time they connect to it, by entering
|
||||
a 4-digit pin code that is displayed on the UxPlay terminal. (This is optional, but sometimes required if the client is a
|
||||
corporately-owned and -managed device with MDM Mobile Device Management.) Pairing occurs just once, is only
|
||||
recorded in the client, and persists unless the
|
||||
UxPlay public key (stored in $HOME/.uxplay.pem, or elsewhere if option `-key <filename>` is used) is moved or deleted, after
|
||||
which a new key is generated. (Non-Apple clients might not implement the persistence feature.)
|
||||
|
||||
* By default, UxPlay is locked to
|
||||
its current client until that client drops the connection; since UxPlay-1.58, the option `-nohold` modifies this
|
||||
behavior so that when a new client requests a connection, it removes the current client and takes over. UxPlay 1.66 introduces
|
||||
a mechanism ( `-restrict`, ``-allow <id>``, ```-block <id>```) to control which clients are allowed to connect, using their
|
||||
"deviceID" (which appears to be immutable).
|
||||
"deviceID" (which in Apple devices appears to be immutable).
|
||||
|
||||
* In Mirror mode, GStreamer has a choice of **two** methods to play video with its accompanying audio: prior to UxPlay-1.64,
|
||||
the video and audio streams were both played as soon as possible after they arrived (the GStreamer "_sync=false_" method), with
|
||||
@@ -471,17 +483,16 @@ The basic uxplay options for R Pi are ```uxplay [-vs <videosink>]```. The
|
||||
choice `<videosink>` = ``glimagesink`` is sometimes useful.
|
||||
On a system without X11 (like R Pi OS Lite) with framebuffer video, use `<videosink>` = ``kmssink``.
|
||||
With the Wayland video compositor, use `<videosink>` = ``waylandsink``. When using the Video4Linux2
|
||||
plugin to access hardware video decoding, an option `-v4l2` may be useful: for convenience, this also comes
|
||||
combined with various videosink options as `-rpi`, ``-rpigl`` ``-rpifb``, ```-rpiwl```, respectively
|
||||
provided for X11, X11 with OpenGL, framebuffer, and Wayland systems.
|
||||
**You may find that just "`uxplay`", (_without_ ``-v4l2`` or ```-rpi*``` options, which lets GStreamer
|
||||
plugin to access hardware video decoding, an option `-v4l2` may be useful.
|
||||
**You may find that just "`uxplay`", (_without_ the ``-v4l2`` option, which lets GStreamer
|
||||
try to find the best video solution by itself)
|
||||
provides the best results** (the `-rpi*` options may be removed in a future release of UxPlay.)
|
||||
provides the best results** (the former`-rpi*` options were equivalent to `-v4l2` or ``-v4l2`` plus one of
|
||||
the '-vs' options, and were removed in UxPlay v1.67 as they do not apply to R Pi model 5.)
|
||||
|
||||
* If you are using Raspberry Pi OS (Bullseye) with Video4Linux2 from unpatched GStreamer-1.18.4, you
|
||||
need the `-bt709` option with UxPlay-1.56 or later.
|
||||
Also don't use options `-v4l2` and ``-rpi*`` with it, as they
|
||||
cause a crash if the client screen is rotated. (These issues do not occur when the latest GStreamer-1.18.4
|
||||
Also don't use option `-v4l2` with it, as this
|
||||
causes a crash if the client screen is rotated. (These issues do not occur when the latest GStreamer-1.18.4
|
||||
patch from the UxPlay Wiki has been applied.)
|
||||
|
||||
* Tip: to start UxPlay on a remote host (such as a Raspberry Pi) using ssh:
|
||||
@@ -689,13 +700,13 @@ with "`#`" are treated as comments, and ignored. Command line options supersede
|
||||
|
||||
**-nh** Do not append "@_hostname_" at the end of the AirPlay server name.
|
||||
|
||||
**-pin [nnnn]**: use Apple-style (one-time) "pin" authentication when a new client connects for the first time: a four-digit pin code is
|
||||
displayed on the terminal, and the client screen shows a login prompt for this to be entered. When "-pin" is used by itself, a new randon
|
||||
pin code is chosen for each authentication; "-pin nnnn" (e.g., "-pin 3939") will set an unchanging fixed code. Persistence of client
|
||||
authentication requires that the public key of the UxPlay server remains the same each time it is started: this is achieved by storing the key
|
||||
in a file (which by default is $HOME/.uxplay.pem, but which can be changed with the `"-key <filename>"` option) which (if it does not exist) is
|
||||
created the first time the -pin option is used, and is subsequently read each time the server starts. So long as this file is not deleted or moved,
|
||||
clients will not have to authenticate again after their first successful authentication. _(Add a "pin" entry in the UxPlay startup file if you wish the
|
||||
**-pin [nnnn]**: (since v1.67) use Apple-style (one-time) "pin" authentication when a new client connects for the first time: a four-digit pin code is
|
||||
displayed on the terminal, and the client screen shows a login prompt for this to be entered. When "-pin" is used by itself, a new random
|
||||
pin code is chosen for each authentication; if "-pin nnnn" (e.g., "-pin 3939") is used, this will set an unchanging fixed code.
|
||||
To retain client authentication after UxPlay restarts, at the first use of "-pin", the server public key is written to file (default: $HOME/.uxplay.pem; can
|
||||
be changed with option `-key <filename>`),
|
||||
and read back in at subsequent UxPlay startups. As long as this file is not deleted or moved, a
|
||||
client will not have to re-authenticate after an initial authentication. _(Add a "pin" entry in the UxPlay startup file if you wish the
|
||||
UxPlay server to use this protocol)._
|
||||
|
||||
**-vsync [x]** (In Mirror mode:) this option (**now the default**) uses timestamps to synchronize audio with video on the server,
|
||||
@@ -790,16 +801,13 @@ which will not work if a firewall is running.
|
||||
use of an uncommon (but permitted) "full-range color" variant of the bt709 color standard for digital TV.
|
||||
This is no longer needed by GStreamer-1.20.4 and backports from it.
|
||||
|
||||
**-rpi** Equivalent to "-v4l2 ". Use for "Desktop" Raspberry Pi systems with X11.
|
||||
**-rpi** Equivalent to "-v4l2 " (Not valid for Raspberry Pi model 5, and removed in UxPlay 1.67)
|
||||
|
||||
**-rpigl** Equivalent to "-rpi -vs glimagesink". Sometimes better for "Desktop" Raspberry Pi systems with X11.
|
||||
**-rpigl** Equivalent to "-rpi -vs glimagesink". (Removed since UxPlay 1.67)
|
||||
|
||||
**-rpifb** Equivalent to "-rpi -vs kmssink" (use for Raspberry Pi systems
|
||||
using the framebuffer, like RPi OS Bullseye Lite).
|
||||
**-rpifb** Equivalent to "-rpi -vs kmssink" (Removed since UxPlay 1.67)
|
||||
|
||||
**-rpiwl** Equivalent to "-rpi -vs waylandsink", for Raspberry
|
||||
Pi "Desktop" systems using the Wayland video compositor (use for
|
||||
Ubuntu 21.10 for Raspberry Pi 4B).
|
||||
**-rpiwl** Equivalent to "-rpi -vs waylandsink". (Removed since UxPlay 1.67)
|
||||
|
||||
**-as _audiosink_** chooses the GStreamer audiosink, instead of letting
|
||||
autoaudiosink pick it for you. Some audiosink choices are: pulsesink, alsasink, pipewiresink,
|
||||
@@ -872,10 +880,13 @@ which will not work if a firewall is running.
|
||||
**-r {R|L}** 90 degree Right (clockwise) or Left (counter-clockwise)
|
||||
rotations; these image transforms are carried out after any **-f** transforms.
|
||||
|
||||
**-m** generates a random MAC address to use instead of the true hardware MAC
|
||||
number of the computer's network card. (Different server_name, MAC
|
||||
**-m [mac]** changes the MAC address (Device ID) used by UxPlay (default is to use
|
||||
the true hardware MAC address reported by the host computer's network card).
|
||||
(Different server_name, MAC
|
||||
addresses, and network ports are needed for each running uxplay if you
|
||||
attempt to run two instances of uxplay on the same computer.)
|
||||
attempt to run more than one instance of uxplay on the same computer.)
|
||||
If [mac] (in form xx:xx:xx:xx:xx:xx, 6 hex octets) is not given, a random
|
||||
MAC address is generated.
|
||||
If UxPlay fails to find the true MAC address of a network card, (more
|
||||
specifically, the MAC address used by the first active network interface detected)
|
||||
a random MAC address will be used even if option **-m** was not specified.
|
||||
@@ -886,8 +897,6 @@ which will not work if a firewall is running.
|
||||
as a line "`key filename`" (no initial "-"), where ``filename`` is a full path. The filename may be enclosed
|
||||
in quotes (`"...."`), (and must be, if the filename has any blank spaces).
|
||||
|
||||
**-t _timeout_** [This option was removed in UxPlay v.1.61.]
|
||||
|
||||
**-vdmp** Dumps h264 video to file videodump.h264. -vdmp n dumps not more than n NAL units to
|
||||
videodump.x.h264; x= 1,2,... increases each time a SPS/PPS NAL unit arrives. To change the name
|
||||
_videodump_, use -vdmp [n] _filename_.
|
||||
@@ -1111,7 +1120,7 @@ connection setup, without a 5 second delay) by disabling "Supports Legacy Pairin
|
||||
on DNS-SD Service Discovery. Most clients will then not attempt the setup of a "shared secret key" when pairing, which is used by AppleTV for simultaneous
|
||||
handling of multiple clients (UxPlay only supports one client at a time).
|
||||
**This change is now well-tested, but in case it causes any protocol failures, UxPlay can be reverted to the previous behavior by uncommenting the previous "FEATURES_1" setting
|
||||
(and commenting out the new one) in lib/dnssdint.h, and then rebuilding UxPlay.**
|
||||
(and commenting out the new one) in lib/dnssdint.h, and then rebuilding UxPlay.** ("Pairing" is re-enabled when the new Apple-style one-time "pin" authentication is activated by running UxPlay with the "-pin" option introduced in UxPlay 1.67.)
|
||||
|
||||
|
||||
Protocol failure should not happen for iOS 9.3 or later clients. However, if a client
|
||||
@@ -1128,13 +1137,16 @@ Note that for DNS-SD Service Discovery, Uxplay declares itself to be an AppleTV3
|
||||
sourceVersion 220.68; this can also be changed in global.h.
|
||||
UxPlay also works if it declares itself as an AppleTV6,2 with
|
||||
sourceVersion 380.20.1 (an AppleTV 4K 1st gen, introduced 2017, running
|
||||
tvOS 12.2.1), so it does not seem to matter what UxPlay claims to be.
|
||||
tvOS 12.2.1), so it does not seem to matter what version UxPlay claims to be.
|
||||
|
||||
|
||||
# Changelog
|
||||
1.67 2023-11-29 Add support for Apple-style one-time pin authentication of clients with option "-pin":
|
||||
(SRP6a authentication protocol) and public key persistence. Detection of (so far)
|
||||
unsupported H265 video when requesting high resolution over wired ethernet.
|
||||
1.67 2023-11-30 Add support for Apple-style one-time pin authentication of clients with option "-pin":
|
||||
(uses SRP6a authentication protocol and public key persistence). Detection with error message
|
||||
of (currently) unsupported H265 video when requesting high resolution over wired ethernet.
|
||||
Removed rpi* options (which are not valid with new Raspberry Pi model 5, and can be replaced
|
||||
by combinations of other options). Added optional argument "mac" to "-m" option, to
|
||||
specify a replacement MAC address/Device ID. Update llhttp to v. 9.1.3.
|
||||
|
||||
1.66 2023-09-05 Fix IPV6 support. Add option to restrict clients to those on a list of allowed deviceIDs,
|
||||
or to block connections from clients on a list of blocked deviceIDs. Fix for #207 from
|
||||
|
||||
146
README.txt
146
README.txt
@@ -1,43 +1,36 @@
|
||||
# UxPlay 1.67: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix (now also runs on Windows).
|
||||
|
||||
### Now developed at the GitHub site <https://github.com/FDH2/UxPlay> (where all user issues should be posted).
|
||||
### Now developed at the GitHub site <https://github.com/FDH2/UxPlay> (where ALL user issues should be posted, and latest versions can be found).
|
||||
|
||||
- ***NEW in v1.67**: support for one-time Apple-style "pin" code
|
||||
client authentication ("client-server pairing") when the option
|
||||
"-pin" is used.*
|
||||
|
||||
## Highlights:
|
||||
|
||||
- GPLv3, open source.
|
||||
|
||||
- Originally supported only AirPlay Mirror protocol, now has added
|
||||
support for AirPlay Audio-only (Apple Lossless ALAC) streaming from
|
||||
current iOS/iPadOS clients. **There is no support for Airplay2
|
||||
video-streaming protocol, and none is planned.**
|
||||
|
||||
- macOS computers (2011 or later, both Intel and "Apple Silicon" M1/M2
|
||||
systems) can act either as AirPlay clients, or as the server running
|
||||
UxPlay. Using AirPlay, UxPlay can emulate a second display for macOS
|
||||
clients.
|
||||
|
||||
- Support for older iOS clients (such as 32-bit iPad 2nd gen., iPod
|
||||
Touch 5th gen. and iPhone 4S, when upgraded to iOS 9.3.5, or later
|
||||
64-bit devices), plus a Windows AirPlay-client emulator, AirMyPC.
|
||||
|
||||
- Uses GStreamer plugins for audio and video rendering (with options
|
||||
to select different hardware-appropriate output "videosinks" and
|
||||
"audiosinks", and a fully-user-configurable video streaming
|
||||
pipeline).
|
||||
|
||||
- Support for server behind a firewall.
|
||||
|
||||
- Raspberry Pi support **both with and without hardware video
|
||||
decoding** by the Broadcom GPU. *Tested on Raspberry Pi 5, Pi 4
|
||||
Model B and Pi 3 model B+.*
|
||||
|
||||
decoding** by the Broadcom GPU. *Tested on Raspberry Pi Models 3B+,
|
||||
4B, and 5.*
|
||||
- Support for running on Microsoft Windows (builds with the MinGW-64
|
||||
compiler in the unix-like MSYS2 environment).
|
||||
|
||||
- *NEW in v1.67: support for one-time Apple-style "pin" code client
|
||||
authentication ("client-server pairing") when the option "-pin" is
|
||||
used.*
|
||||
|
||||
## Packaging status (Linux and \*BSD distributions)
|
||||
|
||||
[
|
||||
below for help with this or other problems.
|
||||
|
||||
- Since v 1.67, the UxPlay option "`-pin`" allows clients to "pair"
|
||||
with the UxPlay server the first time they connect to it, by
|
||||
entering a 4-digit pin code that is displayed on the UxPlay
|
||||
terminal. (This is optional, but sometimes required if the client is
|
||||
a corporately-owned and -managed device with MDM Mobile Device
|
||||
Management.) Pairing occurs just once, is only recorded in the
|
||||
client, and persists unless the UxPlay public key (stored in
|
||||
\$HOME/.uxplay.pem, or elsewhere if option `-key <filename>` is
|
||||
used) is moved or deleted, after which a new key is generated.
|
||||
(Non-Apple clients might not implement the persistence feature.)
|
||||
|
||||
- By default, UxPlay is locked to its current client until that client
|
||||
drops the connection; since UxPlay-1.58, the option `-nohold`
|
||||
modifies this behavior so that when a new client requests a
|
||||
connection, it removes the current client and takes over. UxPlay
|
||||
1.66 introduces a mechanism ( `-restrict`, `-allow <id>`,
|
||||
`-block <id>`) to control which clients are allowed to connect,
|
||||
using their "deviceID" (which appears to be immutable).
|
||||
using their "deviceID" (which in Apple devices appears to be
|
||||
immutable).
|
||||
|
||||
- In Mirror mode, GStreamer has a choice of **two** methods to play
|
||||
video with its accompanying audio: prior to UxPlay-1.64, the video
|
||||
@@ -594,21 +599,19 @@ choice `<videosink>` = `glimagesink` is sometimes useful. On a system
|
||||
without X11 (like R Pi OS Lite) with framebuffer video, use
|
||||
`<videosink>` = `kmssink`. With the Wayland video compositor, use
|
||||
`<videosink>` = `waylandsink`. When using the Video4Linux2 plugin to
|
||||
access hardware video decoding, an option `-v4l2` may be useful: for
|
||||
convenience, this also comes combined with various videosink options as
|
||||
`-rpi`, `-rpigl` `-rpifb`, `-rpiwl`, respectively provided for X11, X11
|
||||
with OpenGL, framebuffer, and Wayland systems. **You may find that just
|
||||
"`uxplay`", (*without* `-v4l2` or `-rpi*` options, which lets GStreamer
|
||||
try to find the best video solution by itself) provides the best
|
||||
results** (the `-rpi*` options may be removed in a future release of
|
||||
UxPlay.)
|
||||
access hardware video decoding, an option `-v4l2` may be useful. **You
|
||||
may find that just "`uxplay`", (*without* the `-v4l2` option, which lets
|
||||
GStreamer try to find the best video solution by itself) provides the
|
||||
best results** (the former`-rpi*` options were equivalent to `-v4l2` or
|
||||
`-v4l2` plus one of the '-vs' options, and were removed in UxPlay v1.67
|
||||
as they do not apply to R Pi model 5.)
|
||||
|
||||
- If you are using Raspberry Pi OS (Bullseye) with Video4Linux2 from
|
||||
unpatched GStreamer-1.18.4, you need the `-bt709` option with
|
||||
UxPlay-1.56 or later. Also don't use options `-v4l2` and `-rpi*`
|
||||
with it, as they cause a crash if the client screen is rotated.
|
||||
(These issues do not occur when the latest GStreamer-1.18.4 patch
|
||||
from the UxPlay Wiki has been applied.)
|
||||
UxPlay-1.56 or later. Also don't use option `-v4l2` with it, as this
|
||||
causes a crash if the client screen is rotated. (These issues do not
|
||||
occur when the latest GStreamer-1.18.4 patch from the UxPlay Wiki
|
||||
has been applied.)
|
||||
|
||||
- Tip: to start UxPlay on a remote host (such as a Raspberry Pi) using
|
||||
ssh:
|
||||
@@ -876,21 +879,20 @@ will also now be the name shown above the mirror display (X11) window.
|
||||
**-nh** Do not append "@_hostname_" at the end of the AirPlay server
|
||||
name.
|
||||
|
||||
**-pin \[nnnn\]**: use Apple-style (one-time) "pin" authentication when
|
||||
a new client connects for the first time: a four-digit pin code is
|
||||
displayed on the terminal, and the client screen shows a login prompt
|
||||
for this to be entered. When "-pin" is used by itself, a new randon pin
|
||||
code is chosen for each authentication; "-pin nnnn" (e.g., "-pin 3939")
|
||||
will set an unchanging fixed code. Persistence of client authentication
|
||||
requires that the public key of the UxPlay server remains the same each
|
||||
time it is started: this is achieved by storing the key in a file (which
|
||||
by default is \$HOME/.uxplay.pem, but which can be changed with the
|
||||
`"-key <filename>"` option) which (if it does not exist) is created the
|
||||
first time the -pin option is used, and is subsequently read each time
|
||||
the server starts. So long as this file is not deleted or moved, clients
|
||||
will not have to authenticate again after their first successful
|
||||
authentication. *(Add a "pin" entry in the UxPlay startup file if you
|
||||
wish the UxPlay server to use this protocol).*
|
||||
**-pin \[nnnn\]**: (since v1.67) use Apple-style (one-time) "pin"
|
||||
authentication when a new client connects for the first time: a
|
||||
four-digit pin code is displayed on the terminal, and the client screen
|
||||
shows a login prompt for this to be entered. When "-pin" is used by
|
||||
itself, a new random pin code is chosen for each authentication; if
|
||||
"-pin nnnn" (e.g., "-pin 3939") is used, this will set an unchanging
|
||||
fixed code. To retain client authentication after UxPlay restarts, at
|
||||
the first use of "-pin", the server public key is written to file
|
||||
(default: \$HOME/.uxplay.pem; can be changed with option
|
||||
`-key <filename>`), and read back in at subsequent UxPlay startups. As
|
||||
long as this file is not deleted or moved, a client will not have to
|
||||
re-authenticate after an initial authentication. *(Add a "pin" entry in
|
||||
the UxPlay startup file if you wish the UxPlay server to use this
|
||||
protocol).*
|
||||
|
||||
**-vsync \[x\]** (In Mirror mode:) this option (**now the default**)
|
||||
uses timestamps to synchronize audio with video on the server, with an
|
||||
@@ -1004,18 +1006,16 @@ to recognize Apple's use of an uncommon (but permitted) "full-range
|
||||
color" variant of the bt709 color standard for digital TV. This is no
|
||||
longer needed by GStreamer-1.20.4 and backports from it.
|
||||
|
||||
**-rpi** Equivalent to "-v4l2". Use for "Desktop" Raspberry Pi systems
|
||||
with X11.
|
||||
**-rpi** Equivalent to "-v4l2" (Not valid for Raspberry Pi model 5, and
|
||||
removed in UxPlay 1.67)
|
||||
|
||||
**-rpigl** Equivalent to "-rpi -vs glimagesink". Sometimes better for
|
||||
"Desktop" Raspberry Pi systems with X11.
|
||||
**-rpigl** Equivalent to "-rpi -vs glimagesink". (Removed since UxPlay
|
||||
1.67)
|
||||
|
||||
**-rpifb** Equivalent to "-rpi -vs kmssink" (use for Raspberry Pi
|
||||
systems using the framebuffer, like RPi OS Bullseye Lite).
|
||||
**-rpifb** Equivalent to "-rpi -vs kmssink" (Removed since UxPlay 1.67)
|
||||
|
||||
**-rpiwl** Equivalent to "-rpi -vs waylandsink", for Raspberry Pi
|
||||
"Desktop" systems using the Wayland video compositor (use for Ubuntu
|
||||
21.10 for Raspberry Pi 4B).
|
||||
**-rpiwl** Equivalent to "-rpi -vs waylandsink". (Removed since UxPlay
|
||||
1.67)
|
||||
|
||||
**-as *audiosink*** chooses the GStreamer audiosink, instead of letting
|
||||
autoaudiosink pick it for you. Some audiosink choices are: pulsesink,
|
||||
@@ -1112,11 +1112,13 @@ degree rotation or inversion (which is the combination of H with V).
|
||||
rotations; these image transforms are carried out after any **-f**
|
||||
transforms.
|
||||
|
||||
**-m** generates a random MAC address to use instead of the true
|
||||
hardware MAC number of the computer's network card. (Different
|
||||
server_name, MAC addresses, and network ports are needed for each
|
||||
running uxplay if you attempt to run two instances of uxplay on the same
|
||||
computer.) If UxPlay fails to find the true MAC address of a network
|
||||
**-m \[mac\]** changes the MAC address (Device ID) used by UxPlay
|
||||
(default is to use the true hardware MAC address reported by the host
|
||||
computer's network card). (Different server_name, MAC addresses, and
|
||||
network ports are needed for each running uxplay if you attempt to run
|
||||
more than one instance of uxplay on the same computer.) If \[mac\] (in
|
||||
form xx:xx:xx:xx:xx:xx, 6 hex octets) is not given, a random MAC address
|
||||
is generated. If UxPlay fails to find the true MAC address of a network
|
||||
card, (more specifically, the MAC address used by the first active
|
||||
network interface detected) a random MAC address will be used even if
|
||||
option **-m** was not specified. (Note that a random MAC address will be
|
||||
@@ -1129,8 +1131,6 @@ file as a line "`key filename`" (no initial "-"), where `filename` is a
|
||||
full path. The filename may be enclosed in quotes (`"...."`), (and must
|
||||
be, if the filename has any blank spaces).
|
||||
|
||||
**-t *timeout*** \[This option was removed in UxPlay v.1.61.\]
|
||||
|
||||
**-vdmp** Dumps h264 video to file videodump.h264. -vdmp n dumps not
|
||||
more than n NAL units to videodump.x.h264; x= 1,2,... increases each
|
||||
time a SPS/PPS NAL unit arrives. To change the name *videodump*, use
|
||||
@@ -1446,7 +1446,9 @@ client at a time). **This change is now well-tested, but in case it
|
||||
causes any protocol failures, UxPlay can be reverted to the previous
|
||||
behavior by uncommenting the previous "FEATURES_1" setting (and
|
||||
commenting out the new one) in lib/dnssdint.h, and then rebuilding
|
||||
UxPlay.**
|
||||
UxPlay.** ("Pairing" is re-enabled when the new Apple-style one-time
|
||||
"pin" authentication is activated by running UxPlay with the "-pin"
|
||||
option introduced in UxPlay 1.67.)
|
||||
|
||||
Protocol failure should not happen for iOS 9.3 or later clients.
|
||||
However, if a client uses the same older version of the protocol that is
|
||||
@@ -1463,14 +1465,18 @@ AppleTV3,2 (a 32 bit device) with a sourceVersion 220.68; this can also
|
||||
be changed in global.h. UxPlay also works if it declares itself as an
|
||||
AppleTV6,2 with sourceVersion 380.20.1 (an AppleTV 4K 1st gen,
|
||||
introduced 2017, running tvOS 12.2.1), so it does not seem to matter
|
||||
what UxPlay claims to be.
|
||||
what version UxPlay claims to be.
|
||||
|
||||
# Changelog
|
||||
|
||||
1.67 2023-11-29 Add support for Apple-style one-time pin authentication
|
||||
of clients with option "-pin": (SRP6a authentication protocol) and
|
||||
public key persistence. Detection of (so far) unsupported H265 video
|
||||
when requesting high resolution over wired ethernet.
|
||||
1.67 2023-11-30 Add support for Apple-style one-time pin authentication
|
||||
of clients with option "-pin": (uses SRP6a authentication protocol and
|
||||
public key persistence). Detection with error message of (currently)
|
||||
unsupported H265 video when requesting high resolution over wired
|
||||
ethernet. Removed rpi\* options (which are not valid with new Raspberry
|
||||
Pi model 5, and can be replaced by combinations of other options). Added
|
||||
optional argument "mac" to "-m" option, to specify a replacement MAC
|
||||
address/Device ID. Update llhttp to v. 9.1.3.
|
||||
|
||||
1.66 2023-09-05 Fix IPV6 support. Add option to restrict clients to
|
||||
those on a list of allowed deviceIDs, or to block connections from
|
||||
|
||||
2
uxplay.1
2
uxplay.1
@@ -13,7 +13,7 @@ UxPlay 1.67: An open\-source AirPlay mirroring (+ audio streaming) server:
|
||||
.TP
|
||||
\fB\-nh\fR Do \fBNOT\fR append "@\fIhostname\fR" at end of AirPlay server name
|
||||
.TP
|
||||
\fB\-pin\fI[nnnn]\fRUse a 4-digit pin code to control client access (default: no)
|
||||
\fB\-pin\fI[xxxx]\fRUse a 4-digit pin code to control client access (default: no)
|
||||
.IP
|
||||
without option, pin is random: optionally use fixed pin xxxx.
|
||||
.TP
|
||||
|
||||
Reference in New Issue
Block a user