← back

irl streaming setup

moblin, larix, prism, kick go live — cellular network foundations, encoder settings, and field gotchas

moblin larix prism kick go live srt

what irl streaming is

tl;dr

irl streaming means broadcasting live from wherever you happen to be walking, driving, or standing — usually from a phone or a backpack rig, over cellular. everything hard about it is the network. everything else is a solved problem.

a stationary streamer with fiber has a boring network story: point the encoder at the ingest and the packets arrive in order. an irl streamer is trying to hold a live rtmp or srt session together while their phone hops between three cell towers, walks into a starbucks that has captive-portal wifi, and loses one of two bonded connections when they turn a corner. the software choices (moblin, larix, prism, kick go live) matter mainly in how gracefully they handle those failures. get the network foundation right first and the app choice becomes preference.

network foundation

tl;dr — the stack
  • protocol: srt when the platform accepts it, rtmp only as fallback
  • bonding: combine 2–4 cellular connections with speedify, belabox, or peplink so single-modem drops don’t drop your stream
  • sim cards: two different carriers minimum. same-carrier bonding buys you nothing when one tower is congested
  • modems: a mifi hotspot or a proper belabox with external antennas is worth more than a better camera
  • battery: your phone is not enough. carry a bank rated for 20+ Wh

01srt vs rtmp on cellular

rtmp is over tcp. tcp is fine when packet loss is a rounding error; cellular is not that. when a packet drops on rtmp, tcp waits for a retransmit and blocks everything after it in the queue — the classic “stream buffers, then dumps 15 seconds of frames” behavior. srt runs over udp with its own reliability layer that tracks per-packet acks and re-sends what it needs to without stalling the pipeline. on a jittery network, srt is usually the difference between a viewer noticing a hiccup and the stream dropping entirely.

02bonding

bonding is combining multiple network connections into one logical link. the two things this actually buys you: (1) more bandwidth than any single connection, (2) failover when one connection dies. speedify is the software route — runs on your phone, bonds wifi + cellular + a second hotspot. belabox is the hardware route — a small linux device you carry with 2–4 modems inside. peplink is the enterprise/production route. for a solo streamer starting out, speedify + your phone + one external mifi hotspot on a different carrier is the 80% solution.

gotcha bonding on same-carrier sims doesn’t help. if both modems are on the same tower and the tower is congested, both connections degrade together. always mix carriers — the pain of managing two bills is smaller than the pain of a dead stream at the wrong moment.

03testing before you leave

a real stress test looks like: walk the route you plan to stream, running speedtest every 30 seconds, logging results. if any segment shows sustained upload below 3 mbps on your combined bonded link, that segment will drop frames at 1080p. lower your target bitrate or reroute.

moblin (ios)

tl;dr
  • free, open source, ios only
  • native bonded cellular via a paid moblink service or via belabox integration
  • full srt support with configurable latency
  • on-device chat overlay and scene switching — no separate laptop needed
  • battery-friendly compared to prism / kick go live

moblin is the app that made high-quality solo irl streaming from a phone actually reasonable. it’s free, actively developed on github, and unlike the polished commercial options it exposes the settings you actually need to tune when your network is unstable. the tradeoff is a learning curve — it doesn’t hide anything.

01first-time configuration

recipe
resolution
1920×1080 (bump to 720p if bonded upload < 4 mbps sustained)
fps
30 (60 only if you have consistent 8+ mbps up)
codec
h.265 (hevc) if your platform supports it, else h.264
bitrate mode
cbr
video bitrate
4000–6000 kbps
audio bitrate
160 kbps aac
keyframe interval
2 s
protocol
srt if available, else rtmp
srt latency
3000 ms (cellular is jittery; give it room)

02scenes, overlays, chat

moblin scenes work like a mini-obs: sources stacked, front camera / back camera / browser widget / chat overlay. the chat overlay pulls directly from twitch, youtube, or kick via api and renders on-screen — huge for irl because you can actually read chat without holding another device. the browser-source support lets you drop streamlabs or streamelements widgets in for alerts.

03moblink and remote encoders

moblink is a companion feature that lets you offload encoding to a second device (a mac at home) and stream from that. useful if you want quality above what a phone can encode, or if you want to layer chat / overlays from a proper obs / meld pc while the phone acts as a camera + microphone. requires a stable low-latency connection between the phone and the remote encoder, which usually means a vpn or tailscale tunnel.

larix broadcaster

tl;dr
  • ios and android, freemium (pro features paid)
  • the industry workhorse — rock solid, boring, does exactly what a broadcast encoder should
  • native srt support with adaptive bitrate
  • no on-device scene / overlay system — larix is a pure encoder, not a production suite
  • pair it with a laptop or belabox for scenes; use it as the last mile

larix is the app professionals reach for when they don’t care about features and do care about not dropping the stream. no chat overlay, no scenes, no fancy effects — just a solid encoder with excellent srt support and an adaptive bitrate mode that responds to network conditions faster than most competitors. use it when the phone is a camera + encoder feeding a production somewhere else, or when your priority is “stream must not die.”

01recipe

recipe
connection type
srt caller (matches most ingests)
video codec
h.265 preferred, h.264 fallback
resolution
1920×1080
fps
30
video bitrate
4500 kbps
adaptive bitrate
on — set floor to 1500 kbps
keyframe interval
2 s
srt latency
2000 ms
audio
aac 128 kbps stereo

02adaptive bitrate

larix’s adaptive bitrate mode is the reason people pay for the pro version. it watches the srt round-trip time and packet loss stats and drops the encoder bitrate before packets are actually lost, then ramps back up as conditions recover. this alone is worth the price if you stream while moving.

prism live studio

tl;dr
  • ios / android / desktop, free with paid features
  • built-in multistream (post to twitch + youtube + facebook simultaneously without a restream service)
  • pretty on-screen effects, filters, virtual backgrounds — polished but heavy
  • no native srt in the mobile version at time of writing — rtmp only
  • best fit: creators who care about polish and multi-platform reach more than resilience

prism is the “influencer” pick. it looks great, ships with a huge library of overlays and effects, and its multistream is the easiest way to fan out to multiple platforms from a phone. the tradeoff is weight: it burns battery and cpu faster than moblin or larix, and it can’t use srt on mobile, which limits what you can do about a rough cellular connection. good in urban environments with solid coverage; frustrating in cars or rural stretches.

01recipe

recipe
protocol
rtmp (with a bonding app underneath if you have one)
resolution
1280×720 for mobile-first cellular, 1080p only if network is stable
fps
30
bitrate
3500 kbps — leave headroom for prism’s overlay overhead
keyframe interval
2 s
audio
aac 128 kbps
multistream
on if you actually monitor multiple platforms; off if you can’t
gotcha multistream doubles your upload requirement per additional platform. streaming 3500 kbps to three platforms means your bonded uplink needs to sustain 10.5 mbps up. test before you rely on it.

kick go live app

tl;dr
  • ios and android, free, kick-only
  • the fastest way to go live on kick from your phone — three taps
  • very little control: no protocol choice, no encoder tuning, no scene system, no overlays
  • chat, tips, and channel controls integrated directly
  • use for the “grab your phone and stream now” case, not as your main setup

kick’s first-party app is exactly what a platform app should be: it makes going live effortless, integrates the channel dashboard so you can see chat and moderate without opening another app, and gets out of the way. what it deliberately doesn’t give you is the tuning knobs you’d want for a hostile network. treat it as the “wake up, something is happening, stream it right now” app — for planned irl streams where quality and resilience matter, use one of the other three.

01when to use it

breaking news near you. a spontaneous meetup. a quick tour of somewhere. the trip from your gate to the airport lounge. anywhere you’d rather be live in 10 seconds at lower quality than not live at all. don’t plan a 4-hour drive stream around it.

bitrate ladder & cellular budgeting

bitrate is a budget. your bonded upload capacity minus a safety margin equals your bitrate ceiling. never set the encoder bitrate to your peak measured upload — peaks aren’t sustained. shoot for 60–70% of your worst-case-observed sustained upload during a walk of your route.

situationresolutionbitratenotes
walking, urban, bonded 2 sims1080p304000–5000 kbpsmost common irl config
driving, highway, bonded 3+ sims1080p303500–4500 kbpsexpect tower handoffs; keep buffer bigger
rural / low signal, single sim720p302000–3000 kbpshevc if platform supports
walking, stable public wifi1080p606000 kbpsrare in the wild; enjoy it
static setup, tripod, restaurant wifi1080p304500 kbpsrtmp is fine here

field gotchas

privacy & safety

irl streaming is one of the few forms of content where you routinely broadcast the exact location of strangers who did not consent. some practical guardrails i’d recommend to anyone streaming irl regularly: