Until the coronavirus lockdown, video calling wasn't something I used a great deal. Although I have multiple devices with a built-in webcam, I've rarely used one after my initial interest in the technology subsided. At work I don't really see the value-add over voice calls or instant messaging; if anything video seems an additional bother for no added benefit (although screen-sharing is very useful). Since the UK lockdown everything's changed; now I'm hosting multiple video calls a day and the sensation of closer contact is welcome.

This more frequent use now makes it feel worth the time to make video calling really seamless and make best use of the equipment I have available. I want to be able to use the 50" TV in the living room or 27" monitor in the study, but still be free to roam around the house mid-call. The solution is to make and receive calls on mobile devices and wirelessly cast to the larger screens when desired. With my Android phone that's easy, most current Android devices support Miracast and the TV has receiver support built-in. A Roku, Fire TV stick or dedicated device such as a PTV3000 will work with a monitor.

I tend to use the iPad more though because of the larger screen. Unfortunately the iPad is more restrictive*; casting is supported through Apple's AirPlay, but only between Apple devices. We used to have an Apple TV, but sold it on Ebay because we found we weren't really using it. A Raspberry Pi comes in useful again here. The open source project RPiPlay describes itself as "An open-source implementation of an AirPlay mirroring server for the Raspberry Pi". As I only really use my Pi away from home it's sitting idle right now. I thought I'd give RPiPlay a whirl.

It works very well indeed (better in fact than the Apple TV, by my recollection). So far I've tested with Zoom and Facebook Messenger and quality is excellent. I did have one issue where the video would freeze at random, but this was fixed by enabling low-latency mode, with no side-effects that I've noticed.

I have RPiPlay setup to start on boot with the following launcher in .config/autostart/RPiPlay2.desktop:

[Desktop Entry]
Exec=qterminal -e \\"bash -c /home/raspex/dev/RPiPlay/start-rpiplay.sh\\" -w /home/raspex/dev/RPiPlay/build
Name=RPiPlay
OnlyShowIn=LXQt;
Type=Application
Version=1.0
X-LXQt-Need-Tray=true

The script start-rpiplay.sh:

#!/bin/bash

cd /home/raspex/dev/RPiPlay/build
./rpiplay  -n PiPlay -b auto -a hdmi -l

The service sits and waits for a connection, so there's no need to do anything before connecting - just switch the TV to the correct input for the Pi and connect your iPad.

* UPDATE: I'm told Amazon Fire TV devices can receive Airplay casts, by way of an app.

Previous Post Next Post