Skip to content

Releases: FDH2/UxPlay

UxPlay v1.53

17 Jun 19:49
0ce2edb
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay2 Mirror and AirPlay2 Audio (but not AirPlay2 Video) server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay2 Mirror protocol. When the client screen is not mirrored, Apple Lossless (ALAC) AirPlay2 Audio can be streamed from the client to the server.

UxPlay is derived from https://github.com/FD-/RPiPlay, with audio and video rendered using GStreamer, and various enhancements. While originally targeted at X86/X86_64 server and desktop systems, it now also supports the GStreamer Video4Linux2 plugin for 32- and 64-bit accelerated hardware video decoding on Raspberry Pi (replacing deprecated OpenMAX used by RPiPlay). UxPlay is tested on many systems, including Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 22.04, Linux Mint 20.3, Pop!_OS 22.04 (NVIDIA edition), Raspberry Pi OS (Bullseye), Rocky Linux 8.6 (a CentOS successor), OpenSUSE 15.4, Manjaro 22.04 (RPi 4), macOS 12.3 (Intel and M1), FreeBSD 13.1.

ChangeLog:
1.53 2022-06-13 Internal changes to audio sync code, revised documentation, minor bugfix (fix assertion crash in 1.52 when resent audio packets are empty).

UxPlay v1.52

05 May 19:28
5e25145
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol. Although UxPlay was originally targeted at x86/x86_64 Server and Desktop systems, it now also supports both 32- and 64-bit Raspberry Pi Arm platforms with hardware-accelerated video decoding (using Video4Linux2, the replacement for deprecated 32-bit-only OpenMAX on the Pi).

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.3, Pop!_OS 21.10 (NVIDIA edition), Raspberry Pi OS (bullseye), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, Manjaro 20.2, macOS 12.3 (Intel and M1), FreeBSD 13.0.

1.52 2022-05-05 Cleaned up initial audio sync code, and reformatted streaming debug output (readable aligned timestamps with decimal points in seconds). Eliminate memory leaks (found by valgrind).

1.52a small change to gstreamer plugin check, and also to CMakeLists.txt (needed for GStreamer-1.20.x installation on macOS).
1.52b ALAC audio metadata (Artist, Titles etc. in audio-only mode) is now shown on uxplay terminal.
1.52c updated README.

UxPlay v1.51

25 Apr 06:21
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol. Although UxPlay was originally targeted at x86/x86_64 Server and Desktop systems, it now also supports both 32- and 64-bit Raspberry Pi Arm platforms with hardware-accelerated video decoding (using Video4Linux2, the replacement for deprecated 32-bit-only OpenMAX on the Pi).

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.3, Pop!_OS 21.10 (NVIDIA edition), Raspberry Pi OS (bullseye), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, Manjaro 20.2, macOS 12.3 (Intel and M1), FreeBSD 13.0.

1.51 2022-04-24 Reworked options for Video4Linux2 support (new option -v4l2) and short options -rpi, -rpifb, -rpiwl as synonyms for -v4l2, -v4l2 -vs kmssink, and -v4l2 -vs waylandsink. Reverted a change from 1.48 that broke reconnection after "Stop Mirroring" is sent by client.

UxPlay v1.50

22 Apr 20:48
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol. Although UxPlay was originally targeted at x86/x86_64 Server and Desktop systems, it now also supports both 32- and 64-bit Raspberry Pi Arm platforms with hardware-accelerated video decoding (using Video4Linux2, the replacement for deprecated 32-bit-only OpenMAX on the Pi).

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.3, Pop!_OS 21.10 (NVIDIA edition), Raspberry Pi OS (bullseye), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, Manjaro 20.2, macOS 12.3 (Intel and M1), FreeBSD 13.0.

1.50 2022-04-22 Added -fs fullscreen option (for Wayland or VAAPI plugins only). Changed -rpi to apply only to framebuffer ("Lite") RPi systems and added -rpigl (OpenGL) and -rpiwl (Wayland) options for RPi Desktop systems. Also modified timestamps from "DTS" to "PTS" for latency improvement, plus internal cleanups.

1.50a 2022-04-23 reverted a change from 1.48 that broke reconnection after "stop screening" was sent by client.

UxPlay v1.49

02 Apr 05:33
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol. Although UxPlay was originally targeted at x86/x86_64 Server and Desktop systems, it now also supports the Raspberry Pi Arm platform with hardware-accelerated video decoding (Video4Linux2).

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.2, Pop!_OS 21.10 (NVIDIA edition), Raspberry Pi OS (bullseye), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, macOS 12.3 (Intel and M1), FreeBSD

1.49 2022-03-28 Addded options for dumping video and/or audio to file, for debugging, etc. h264 PPS/SPS NALU's are shown with -d. Fixed video-not-working for M1 Mac clients.

UxPlay v1.48

12 Mar 09:00
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol. Although UxPlay was originally targeted at x86/x86_64 Server and Desktop systems, it now also supports the Raspberry Pi Arm platform with hardware-accelerated video decoding (Video4Linux2).

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.2, Pop!_OS 21.10 (NVIDIA edition), Raspberry Pi OS (bullseye), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, macOS 10.15.7, FreeBSD 13.0.

ChangeLog 1.48 2022-03-11 Made the GStreamer video pipeline fully configurable, for use with hardware h264 decoding. Support for Raspberry Pi.

UxPlay v1.47

09 Feb 19:35
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol.

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.2, Pop!_OS 21.10 (NVIDIA edition), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, macOS 10.15.7, FreeBSD 13.0.

ChangeLog 1.47 2022-02-09: Added -FPSdata option to display (in the terminal) regular reports sent by the client about video streaming performance. Internal cleanups of processing of video packets received from the client. Added -reset n option to reset the connection after n ntp timeouts (also reset after "connection reset by peer" error in video stream).

UxPlay v1.46

19 Jan 21:43
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol.

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.2, Pop!_OS 21.10 (NVIDIA edition), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, macOS 10.15.7, FreeBSD 13.0.

ChangeLog 1.46 2022-01-20 Restore pre-1.44 behavior (1.44 may have broken hardware acceleration): once again use decodebin in the video pipeline; introduce new option "-avdec" to force software h264 decoding by libav h264, if needed (to prevent selection of vaapisink by autovideosink). Update llhttp to v6.0.6. UxPlay now reports itself as AppleTV3,2.

1.46a Restrict connections to one client at a time (second client must now wait for first client to disconnect)
1.46b small fix to window-closing behavior needed after "close window on stop streaming" change in 1.45

UxPlay v1.45

17 Jan 05:39
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol.

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.2, Pop!_OS 21.10 (NVIDIA edition), Rocky Linux 8.5 (a CentOS successor), OpenSUSE 15.3, macOS 10.15.7, FreeBSD 13.0.

Changelog: 1.45 2022-01-10 New behavior: close video window when client requests "stop mirroring". (A new "no close" option "-nc" is added for users who wish to retain previous behavior that does not close the video window).

UxPlay v1.44

30 Dec 04:23
Compare
Choose a tag to compare

UxPlay is a GPLv3 unix AirPlay server: its main use is to act like an AppleTV for screen-mirroring (with audio) of iOS/MacOS clients (iPads, iPhones, MacBooks, etc.) in a window on the server display (with the possibility of sharing that window on screen-sharing applications such as Zoom) on a host running Linux, macOS, or other unix, using Apple's AirPlay Mirror protocol. Older iOS clients v. 9.3.5 and later are supported. When the client screen is not mirrored, Apple Lossless (ALAC) audio can be sent from the client to the server using Airplay protocol.

This work is based on https://github.com/FD-/RPiPlay, with GStreamer integration from https://github.com/antimof/UxPlay. Tested on Debian 10.11 "Buster" and 11.2 "Bullseye", Ubuntu 20.04 and 21.10, Linux Mint 20.2, Pop!_OS 21.10 (NVIDIA edition), Rocky Linux 8.4 (a CentOS successor), OpenSUSE 15.3, macOS 10.15.7, FreeBSD 13.0.

ChangeLog: 1.44 2021-12-13 Omit hash of aeskey with ecdh_secret for an AirMyPC client; make an internal rearrangement of where this hash is done. Fully report all initial communications between client and server in -d debug mode. Replace decodebin in GStreamer video pipeline by h264-specific elements.

1.44e: add 0x8c, 0x80 as possible first bytes of AAC-ELD audio frames.