Steps To Installing RPiPlay

The following Fedora instructions are adapted from the github page. For instructions on Ubuntu, please check their page

Install all dependencies cmake, libraries, and gstreamer

    sudo dnf install cmake avahi-compat-libdns_sd-devel libplist-devel openssl-devel \    
    gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-vaapi \    gstreamer1-plugins-bad-free

Download the zip file from github or use git clone to the directory

    git clone https://github.com/FD-/RPiPlay.git

Within directory run following commands

Make a folder called build

    mkdir build
    cd build

Have cmake prepare the application

    cmake ..

Make the application

    make

Bonus, make it possible to run RPiPlay anywhere

    sudo make install

Additional Notes

If you close the window make sure you end it in the task manager/system monitor/terminal, otherwise if you try sharing your screen the window won’t reopen. This is best demonstrated in the demonstration section

Demonstration

Why RPiPlay? Doesn't Zoom Have iPad Screen Sharing?

Zoom does indeed have screen casting, however, this requires installing the Zoom application. My preference is to run everything in a browser due to the nature browsers sandboxing everything, and I would not need to add an additional repository for updates.

Furthermore, screen casting is an exclusive Zoom feature, RPiPlay opens the screencast as a window. Since Microsoft Teams, Google Meet, or Open Broadcaster Studio allows for window capture, I have more choices to share my iPad screen

How I Found RPiPlay

Initial Searches

I started by searching for "airplay from ipad to linux". One of the first results was from Jonathansblog, who suggested using gnome videos (totem) with a totem plugin by phuang. I was able to install totem, but I ran into issues preparing the dependencies other than totem.

Reddit Solutions

After no luck with the totem plugin, I tried a different search "mirror ipad to linux". The first result was a reddit post on the iPad subreddit.

Open-Airplay, Slave in the Magic Mirror

The top rated response suggested looking into solutions from the open-airplay library github page. Having no luck with the totem plugin, I decided to look into the Slave in the Magic Mirror. I ran into issues preparing the dependencies in particular with the pip packages. After trying solutions to fixing the dependency issues from multiple web searches, I decided cut my losses try another reddit solution.

Ambystome Gstreamer Plugin

The second top rated response was from ambystome, there were multiple responses from people who got it working. A response to the solution had instructions for Ubuntu, there was a follow up response for instructions with Fedora. I had issues with getting the libgstairplay.so working, and with little documentation for Fedora, I kept looking through the suggested solutions

UxPlay

The fourth top rated response suggested using UxPlay. The readme was made for Ubuntu, but browsing the pull requests had a guide for building on Fedora. After following the Fedora instructions, I had finally found my solution. Initially I had written a draft using UxPlay, intending to publish it within a couple days, but I wanted a fix to the two issues I encountered. The first issue is the same bug with RPiPlay, where a closed screen share window would not reopen upon re-pairing. The second issue is that to close UxPlay, you would need to find it in the system monitor and kill it from there. The third issue is that to launch UxPlay, you would need to go to the build directory and open the executable. After looking around for ways to make a shortcut, I couldn't find a good shortcut solution. Looking at the comments to the UxPlay response and the readme on Github, I realized I could try RPiPlay.

RPiPlay

I decided to try RPiPlay to see if the upstream version had a better shortcut solution. There was an additional command that made it globally installed, allowing me to run and close the application in a terminal partially solving the first issue. Running the application in the terminal solves the second issue.

sudo make install