Phone as a camera
A phone often makes the better webcam — with a companion app it becomes a camera device that Hologramu sees like any other.
How it works
Hologramu has no phone connection of its own, and needs none. It opens cameras the operating system knows about. An app on the phone plus a small program on the PC together form a virtual camera — from then on the phone sits in the device list like a USB webcam, with everything that comes with it: resolution, frame rate, a place on the stage, merging with further cameras.
So there is nothing to set up inside Hologramu except picking it.
Tip: A phone is strongest as a second camera. Put it off to your side: the webcam in front sets left/right and up/down, the phone from the side sets depth — how far your hand reaches forward. Then drag it to that spot on the stage, see Choosing a camera.
Which app?
| Route | Phone | PC | Connection |
|---|---|---|---|
| DroidCam | Android, iOS | Linux, Windows | USB or Wi-Fi |
| Iriun Webcam | Android, iOS | Linux, Windows | Wi-Fi |
| Connected camera (Phone Link) | Android | Windows 11 only | Wi-Fi + Bluetooth |
| MJPEG stream + ffmpeg | any streaming app | Linux only | Wi-Fi |
DroidCam and Iriun are the short route that works on both phone systems and both PC systems. The ffmpeg route needs no third-party PC client, but costs some handwork.
USB beats Wi-Fi. Both work, but over a cable the image is noticeably more direct, it does not break up when someone else in the house starts streaming, and the phone charges along the way. For tracking, delay matters more than resolution.
Linux: the virtual camera device
On Linux there has to be a device the PC software can write the phone's image
into. That is what the kernel module v4l2loopback does: it creates an extra
/dev/video* that feels like a camera to every other program.
# Arch, Manjaro, EndeavourOS
sudo pacman -S v4l2loopback-dkms v4l-utils
# Debian, Ubuntu, Linux Mint, Pop!_OS
sudo apt install v4l2loopback-dkms v4l-utils
# Fedora (RPM Fusion "free" has to be enabled)
sudo dnf install akmod-v4l2loopback v4l-utils
# openSUSE
sudo zypper install v4l2loopback-kmp-default v4l-utilsv4l-utils is not strictly required, but it brings v4l2-ctl — the tool that
tells you whether the device is really there.
Caution: The DKMS packages build the module for your running kernel and
need its headers for that. Without them the installation stops with a build
error. Arch: sudo pacman -S linux-headers (for other kernels accordingly,
linux-zen-headers, linux-lts-headers). Debian/Ubuntu:
sudo apt install linux-headers-$(uname -r).
Load the module and name the device:
sudo modprobe v4l2loopback video_nr=10 card_label="Phone" exclusive_caps=1The device is then /dev/video10 and shows up in Hologramu as "Phone". Without
video_nr the module picks a free number itself.
To have it there after every boot:
echo v4l2loopback | sudo tee /etc/modules-load.d/v4l2loopback.conf
echo 'options v4l2loopback video_nr=10 card_label="Phone" exclusive_caps=1' \
| sudo tee /etc/modprobe.d/v4l2loopback.confChecking:
lsmod | grep v4l2loopback
v4l2-ctl --list-devicesNote: exclusive_caps=1 means the device only announces itself as a
camera once something is actually writing into it. Hologramu hides devices
that cannot deliver images — so the virtual device appears in the list only
once the connection to the phone is up. The order is therefore: start the
phone app, connect the PC program, then pick the camera in Hologramu. Without
exclusive_caps=1 it is always in the list, but hands out black frames while
nothing is sending.
Connecting the phone over USB
Only needed for the cable route — Wi-Fi needs none of this.
# Android (ADB)
sudo pacman -S android-tools # Arch
sudo apt install adb # Debian, Ubuntu
sudo dnf install android-tools # Fedora
sudo zypper install android-tools # openSUSE
# iPhone (usbmuxd)
sudo pacman -S usbmuxd # Arch
sudo apt install usbmuxd # Debian, Ubuntu
sudo dnf install usbmuxd # Fedora
sudo zypper install usbmuxd # openSUSEOn the Android phone this needs the developer options and USB debugging inside them; the first time you plug it in, the phone asks whether to trust the computer. On an iPhone the usual "Trust This Computer" is enough.
Setting up DroidCam
Runs on Android and iOS, connects over cable or Wi-Fi.
- Install DroidCam on the phone from the Play Store or App Store.
- Get the matching client from
dev47apps.com. On Arch it is also
available as the AUR package
droidcam. - Unpack and install the Linux client:
cd /tmp
unzip droidcam_latest.zip -d droidcam
cd droidcam
sudo ./install-client- DroidCam brings its own loopback module (
sudo ./install-video). If you already installed v4l2loopback you do not need it — having both is no problem either, you simply end up with two virtual devices. - Open the app on the phone, start the client on the PC, choose USB or WiFi. Over Wi-Fi the app shows an IP address that you enter on the PC.
Setting up Iriun
Connects over Wi-Fi only, but without typing an address: client and phone find each other on the same network.
- Install Iriun Webcam on the phone (Android or iOS).
- Get the client from iriun.com — there is a
.deband an.rpm. Install the.debwithsudo apt install ./iriunwebcam-*.deb, which pulls the dependencies along, unlikedpkg -i. - v4l2loopback is a prerequisite, see above.
- Put both devices on the same Wi-Fi, open app and client — the connection comes up on its own.
Without a third-party PC client: MJPEG stream
If you would rather not install a proprietary client: many camera apps simply
offer the camera stream as a web address — IP Webcam on Android, apps
offering MJPEG or RTSP on iOS. The address is shown in the app
(e.g. http://192.168.1.42:8080/video). ffmpeg pushes that stream into the
virtual device:
ffmpeg -i http://192.168.1.42:8080/video -vf format=yuv420p -f v4l2 /dev/video10That window has to stay open for as long as you track. Installing ffmpeg:
sudo pacman -S ffmpeg # Arch
sudo apt install ffmpeg # Debian, Ubuntu
sudo dnf install ffmpeg # Fedora (RPM Fusion)
sudo zypper install ffmpeg # openSUSE (Packman)Note: ffmpeg does not ship with Hologramu and is only used when the system already has it. You need this installation anyway if you want to record clips with sound in a single file.
Windows
On Windows there is no module and no package manager in between: the clients from DroidCam, Iriun or Camo register a camera with the system as part of their own installation. After that it stands in Hologramu's device list.
Windows 11 can also do it without extra software: under Bluetooth & devices → Mobile devices in the settings, a paired Android phone can be released as a connected camera. That requires an up-to-date Windows 11, the Link to Windows app on the phone and Bluetooth switched on; the image itself travels over Wi-Fi. There is no iPhone equivalent — there it stays DroidCam, Iriun or Camo.
Picking it in Hologramu
In the avatar under Tracking → Cameras, select the virtual device. It is named the way you named it, or after the client ("DroidCam", "Iriun").
- Image (resolution / frame rate) — virtual devices often offer only a single format. Leave the setting on Automatic and set the resolution where it is created: in the phone app. 720p is plenty; MediaPipe works on a smaller image internally anyway, and every extra pixel only costs bandwidth.
- Angle and height — if the phone stands off to the side or on a tripod above you, drag it there on the stage. The tracker then takes that tilt out instead of passing it on to your avatar.
- Frame rate — more important than resolution. Below roughly 20 frames per second the motion turns visibly sluggish.
When it does not work
| Symptom | Cause |
|---|---|
| Device missing from the list | The connection to the phone is not up yet (see exclusive_caps=1 above) |
| Device still missing | Module not loaded — check with lsmod, otherwise sudo modprobe v4l2loopback |
| Gone after a kernel update | Rebuild via DKMS: sudo dkms autoinstall, install the headers if needed |
| Phone and PC do not find each other | Different networks, a guest Wi-Fi, or client isolation in the router |
| Image stutters or lags behind | 2.4 GHz Wi-Fi, resolution too high — or just connect over USB |
| Camera stays black | Another app is holding the phone camera; restart the streaming app |
Tip: A phone that streams for an hour gets warm and runs empty. On a cable, both problems solve themselves at once.