Up to four cameras in one picture
One main view and three small views, freely positionable, right from the web interface. The BOX runs as a standalone add-on package next to the BELABOX. It does not change any files of the original software, and BELABOX updates stay possible.
It runs on a Radxa ROCK 5B+ or Orange Pi 5 Plus with the BELABOX image. It is free and open source (MIT license). Questions, bugs, and ideas are welcome on Discord.
1. What the BOX can do
- Four cameras at once: DJI cameras over Bluetooth (Action 4, Action 5 Pro, Action 6) and RTMP cameras. If a camera drops out, the box switches to the remaining ones after 5 seconds.
- Design the picture-in-picture freely: Move the small views in a preview with a mouse or your finger, or pick a corner. Size and audio from each camera are adjustable. The main view and every small view get their own delay slider (0 to 3000 ms), so picture and sound line up.
- Bond several networks: For example a USB router plus a phone hotspot. The built-in SRTLA sender measures the delay and jitter of each link. That keeps the bitrate from collapsing on links with different delays. For distribution you pick “prefer the best link” (default) or “all at once”.
- Go live automatically: A switch in the Live card, off by default. The box goes live once per start, as soon as a camera is sending. It waits for the server and a sending camera and gives up after 10 minutes.
- Broadcast mode: For videos and streams where the screen is visible. It hides addresses, names, and logs you do not want to show.
- Everything in one web interface: Cameras, connecting to a Wi-Fi hotspot, send paths, software updates, logs (lean or verbose), and shutting the box down or restarting it. On the go, you can optionally reach it over Tailscale, in your private network only. The interface also works on a phone.
To our knowledge, there is no comparable solution for the BELABOX yet: picture-in-picture with up to four cameras, DJI cameras over Bluetooth, and a sender that measures the latency of every connection, all in one web interface.
2. The video for version 0.9.16
The video shows all features of beta 0.9.16, including what is new since 0.9.9. All screens in it show sample data, and the OBS picture is schematic. The chapters jump straight to that spot on YouTube. The video is in German.
Chapters in the video
- BELABOX with PiP
- How it works
- Live and status (new: go live automatically)
- Cameras (RTMP and DJI over Bluetooth)
- Picture-in-picture: main view and three small views
- New: move the small views freely
- The result
- Networks and sending: Wi-Fi hotspot, send paths, distribution
- New: the “Not applied yet” notice
- The smart sender (latency-aware SRTLA)
- New: broadcast mode for screen recordings
- Remote access and updates
- New: logs in lean or verbose mode, shutting the box down
- On your phone too
- Collapse and expand everything
- Outlook and beta notice
Written alternative to the video: The features are listed above, and you will find the commands under Installation.
3. Status of the beta
- Version 0.9.16 is a beta. Features can change.
- There has been no long-term test of the current version yet.
- Tested: four cameras at once (main view and three small views) ran without frame drops at around 13 Mbit/s. The box was about 70% idle at the time.
- Moving the small views freely was tested with real cameras.
- The sender measures delay and jitter per link. The Wi-Fi and hotspot path only ran briefly with a phone hotspot (about 40 ms delay, a few Mbit/s), not out on the road and not over hours. So it is not proven how stable the bitrate stays on a fluctuating network.
4. Tested hardware
| Device | Status |
|---|---|
| Radxa ROCK 5B+ with BELABOX image | DJI Osmo Action 4, Action 5 Pro, and Action 6: four cameras at once without frame drops at around 13 Mbit/s. No long-term test. |
| Orange Pi 5 Plus with a fresh BELABOX image | Installation tested. Used out in the field for a whole day with four DJI cameras (two Action 4, one Action 5 Pro, one Action 6), streaming without interruption and without errors. |
| DJI Pocket 3 and other DJI models | Protocol is there, never tested with a real camera. |
A new or reset DJI camera has to be in pairing mode and confirm the pairing prompt. The Bluetooth protocol for the DJI cameras comes from the Moblin project (MIT) and has been reimplemented in the BOX.
5. Installation
You need a BELABOX with the BELABOX image, internet access on the box, and a terminal on the box (SSH or keyboard).
cd /tmp
wget -O irl4you-pip.tar.gz https://github.com/IRL4YOU/irl4you-pip/archive/refs/heads/main.tar.gz
tar xzf irl4you-pip.tar.gz
cd irl4you-pip-main
sudo sh install/install.shIf wget is missing, this command works in place of the second line:
curl -L -o irl4you-pip.tar.gz https://github.com/IRL4YOU/irl4you-pip/archive/refs/heads/main.tar.gzThe installation downloads missing packages and builds the picture-in-picture component and the SRTLA sender itself. That can take a few minutes.
Then open http://<IP>:8780 in your browser and sign in with your BELABOX password. If the BELABOX has no password yet, the page asks for a setup code. The box shows it with sudo cat /var/lib/pipbox/setup-code. Then you set a password of your own.
To remove it: sudo sh install/install.sh uninstall. That removes the services and programs. The state, backups, logs, and the pipbox user stay behind.
6. Security and updates
- Credentials (BELABOX password, SRTLA stream ID, the camera’s Wi-Fi details) live only on the box with restricted permissions and do not belong in the repository. The stream ID is never shown in the server list.
- Root helpers only accept fixed keywords and re-check everything. That includes Wi-Fi, shutdown, and system updates.
- Remote access over Tailscale is optional, runs in your private network only, and is never public.
- Software updates are fetched by a separate root helper, only from a fixed HTTPS address on GitHub. It checks the archive strictly, backs up the current version, and rolls back automatically on an error. The last 5 versions stay backed up, and you can switch to an older one on purpose.
- Every update runs code from the repository as root. So trust the repository.
- The system updates button installs real system updates (kernel, BELABOX packages). Use it only with no broadcast running and with stable power.
- License: MIT. The exception is the srtla/ folder (a patch on BELABOX/srtla and the sender built from it), which is under AGPL-3.0 like the original.
7. Frequently asked questions
Does the BOX change anything in the BELABOX software?
No. The BOX is a standalone add-on package with its own web interface. It does not change any BELABOX files, so BELABOX updates stay possible.
Which cameras work?
RTMP cameras and DJI cameras over Bluetooth. The DJI Osmo Action 4, Action 5 Pro, and Action 6 have been tested. For the Pocket 3 and other DJI models the protocol is there, but it has never been tested with a real camera.
What happens if a camera drops out?
After 5 seconds the box switches to the remaining cameras on its own. For DJI cameras, the service reconnects after dropouts.
How do I install updates?
In the interface under “Software update”. There you can look for new versions and install them. The last 5 versions are kept as backups, and you can switch back to an older one. You do not need to run the install command again. Do not do it during a broadcast.
Can I rely on the BOX already?
It is a beta, and features can change. There has been no long-term test of the current version yet. Try it out calmly first, and keep a plan B ready for the real thing.
What does the BOX cost, and what license is it under?
It is free and open source under the MIT license. The exception is the srtla/ folder with the modified SRTLA sender, which is under AGPL-3.0 like the original.
8. Related pages
The BOX builds on a working BELABOX. These pages help before and after:
- BELABOX setup: the foundation for everything else
- BELABOX Remote UI: remote access to the BELABOX web interface through your own server
- Network overlay for the BELABOX: show the upload per network in your stream
- Action cams for IRL streaming: cameras for the small views
- SRTLA and bonding and SRTLA relay server: the receiving end for the sender
- GitHub with source code and instructions, questions and ideas in the Discord