NexusIRL is a free, open-source IRL live streaming app for Android: SRTLA bonding of mobile data and Wi-Fi, adaptive bitrate, SRT and RTMP, Twitch and Kick chat, OBS remote control. An Android port of Moblin.
Streaming over mobile networks can only be tested where coverage is good. This test needs no computer and no Wi-Fi. The phone streams to a test receiver (server/test-receiver) that logs every network path every 5 seconds and records the stream, and the app keeps its own per-second log of each stream. Both are analysed afterwards and matched by time.
srtla://…:5000?passphrase=…) selected.On the streaming phone:
On the relay phone (bonding only):
ws://…:7777).Only the streaming phone has “Use other phones as relays” on; only the relay phone has its relay on. With the roles the other way round, the relay never connects.
Pick a spot with good coverage (full bars, 4G or 5G). If you can, run a speed test on the streaming phone and note the upload speed; streaming needs at least about 3 Mbps up.
Write down the time at each step (a photo of a clock or a note on the phone is fine).
| Test | Steps | What it shows |
|---|---|---|
| A. Mobile only, standing still (3 min) | Wi-Fi off on the streaming phone. Go live, wait 3 minutes, End stream. | The stream runs on one mobile network; how the bitrate settles. |
| B. Mobile only, moving (5 min, optional) | As A, while walking or as a passenger in a car or bus. | Adaptive bitrate through changing coverage and cell handovers. |
| C. Bonding (3 min) | Turn on the streaming phone’s hotspot. Connect the relay phone to it. On the streaming phone, the Moblink screen should list the relay. Go live, wait 3 minutes, End stream. | Both SIMs carry the stream. |
| D. Failover (4 min) | As C. After 1 minute turn on aeroplane mode on the relay phone; after another minute turn it off again. After 1 more minute, End stream. | Losing one network does not stop the stream, and the path comes back. |
| E. Camera taken away (2 min) | During any test: open the phone’s own Camera app for about 10 seconds, then go back to NexusIRL. | The stream keeps running with the last picture while the Camera app has the camera, and the live picture comes back by itself as soon as it is closed. |
| F. Heat (during the longest test) | Every 10 minutes, note the thermal state in the status line and the battery percentage. | Whether the phone gets hot enough to slow down at this bitrate. |
| G. Opus audio (3 min) | Streams → edit the VPS stream → Audio → Codec: Opus, Save. Go live as in A, End stream after 3 minutes. Set it back to AAC afterwards. | The server receives Opus audio, in sync with the video. |
| H. Recording while live (2 min) | During any test: tap Record, wait a minute, tap it again. Then End stream. | The stream keeps going while recording, the recording is saved (AAC audio even in test G), and it plays. |
| I. Car Bluetooth (any test, in a car) | Connect the phone to the car’s Bluetooth before going live. | The microphone in the status line stays Built-in: the car stays a speaker (“Bluetooth output only”). |
During each test, watch the status line at the top of the controls: it should stay LIVE (red). Note the time of any “Reconnecting”. Under the bitrate, a line shows each network’s share of the data, for example “100% Cellular” in test A, or “55% Cellular, 45% Pixel” (the relay phone’s name) in tests C and D. In test D the relay’s share should drop to 0% and come back.
New in v0.5.0, on the streaming phone unless noted:
ws://<computer's
IP>:4455 and the password. The main screen shows “OBS: …”; the OBS quick button (turn it
on under the quick buttons’ Edit if it is not shown) switches
scenes. A wrong password shows “Authentication failed.”.The test receiver keeps recordings for 2 days, so send these within 2 days.
journalctl -u nexusirl-srtla on the server): every 5 seconds each path the
receiver sees (the phone’s public address on that network) with packets per second and Mbit/s./var/lib/nexusirl/recordings, 10-minute segments): gaps and frame rate as a
viewer would have seen them.Both logs use the phone’s local time, so the three line up.