Airplay is very useful when we have an Apple device… except when we want to mirror to a screen without an Apple TV or without using an HDMI cable.
This is a working solution and open source, tested recently with:
- Device to mirror: MacBook Pro 13" Intel - macOS 12.5 (21G72)
- UxPlay on RHEL 9 using Wayland and SELinux enforced
Building UxPlay
UxPlay doesn't provide RPM package or RPM spec, I'll do a PR to add one.
You need RPM Fusion repositories before continuing
- Install requirements:
sudo dnf install -y openssl-devel libplist-devel avahi-compat-libdns_sd-devel gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-plugins-bad-free
- Get source:
git clone https://github.com/FDH2/UxPlay && cd UxPlay
- Compile:
cmake . && make
- Install:
sudo make install
- Repair SELinux:
sudo restorecon -Rv /usr/local/
Firewalld
It's time to authorize UxPlay
Create the service file: /etc/firewalld/services/uxplay.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<description>An open-source AirPlay mirroring server based on RPiPlay</description>
<port port="6000-6001" protocol="udp"/>
<port port="7011" protocol="udp"/>
<port port="7000-7001" protocol="tcp"/>
<port port="7100" protocol="tcp"/>
</service>
Enable uxplay: sudo firewall-cmd --zone=public --add-service=uxplay --permanent && sudo firewall-cmd --reload
Depending of your setup, you may need to change the zone to the right one.
Running UxPlay
You don't need to be root, or special SELinux tuning…
Just running: /usr/local/bin/uxplay -p -vs waylandsink