Short answer: three different jobs get called "a streaming server", and they need different software. Serving your own media library — films, recordings, home video — is Jellyfin or Plex. Streaming live TV from an antenna around your house is an HDHomeRun tuner plus one of those same servers, which turns broadcast into IPTV on your own network. Broadcasting your own live event to the internet is Nginx with the RTMP module, Owncast, or MediaMTX. Pick by what you're actually doing; there's no single tool for all three.
This covers content you own or produce. For what happens inside the encoder feeding it, see how encoders work.
Which one do you need?
| You want to… | Use | Runs on |
|---|---|---|
| Watch your own library on any device | Jellyfin (free, open source) or Plex | NAS, old PC, Raspberry Pi 4+ |
| Watch and record antenna TV around the house | HDHomeRun + Jellyfin/Plex/Channels DVR | Same, plus the tuner |
| Broadcast a live event to viewers | Owncast, or Nginx-RTMP | VPS, or a machine with upload bandwidth |
| Restream your own feed to several platforms | Nginx-RTMP, MediaMTX | VPS |
Your own library: Jellyfin or Plex
Both index your video files and stream them to apps on phones, TVs and browsers.
Jellyfin is free and fully open source, with no account and no cloud dependency. Plex is more polished, has better apps, and puts some features behind a paid Pass — and it authenticates through Plex's servers, which matters if you want everything local.
Hardware reality: the server's job is mostly reading files and sending them. That's light. What's heavy is transcoding — converting a file on the fly because the client can't play the original format. One 4K transcode will overwhelm a Raspberry Pi. A machine with Intel Quick Sync handles several comfortably.
The way to avoid the problem is direct play: store files in formats your devices already decode, usually H.264 in MP4, and the server just hands them over with no conversion. Match your library to your clients and a very modest machine is enough.
Live TV from an antenna
This is the most underrated setup in home streaming, and it turns free broadcast into IPTV on your own network.
An HDHomeRun is a network tuner: aerial in, ethernet out. It publishes the channels as streams your server can read. Jellyfin, Plex and Channels DVR all support it, giving you a guide, live playback on any device in the house, and recording to your own disk.
What you get: free-to-air channels, no monthly fee, full-quality broadcast rather than a compressed internet stream, and recordings you own.
What you need: an aerial with decent reception, a tuner with enough tuners for simultaneous recordings, and disk space — roughly 3–8 GB per hour of HD.
Broadcasting your own live stream
If you're producing something — a service, a lecture, a match, a performance — and want to serve viewers yourself rather than through YouTube or Twitch.
Owncast is the simplest. Self-contained, includes a web player and chat, and takes an RTMP feed straight from OBS. Good for one stream to a modest audience.
Nginx with the RTMP module is the flexible option: accept an RTMP feed, package it as HLS, serve it over HTTP. More setup, more control, and the standard choice for restreaming one feed to several destinations at once.
MediaMTX handles RTMP, SRT, WebRTC and HLS in one binary, which makes it the practical pick if you need low latency or SRT ingest.
The constraint that decides everything: upload bandwidth, multiplied by viewers. Serving a 4 Mbps stream to 50 viewers needs 200 Mbps upload sustained. Home connections can't do that. Anything beyond a handful of viewers needs a VPS, and anything beyond a few dozen needs a CDN in front of it.
That's the unicast problem in miniature — the same arithmetic that breaks services during big matches.
Practical notes
Getting to it from outside your house. A VPN back to your home network is the safe default. Exposing a media server directly to the internet means keeping it patched and locked down, and these are not hardened applications.
Storage. Video is large. Recording HD at 3–8 GB/hour fills a drive faster than people plan for. Budget more than you think and use separate disks for system and media.
Ethernet everywhere you can. For a server, Wi-Fi is an unnecessary failure point.
Power. Something running continuously should be efficient. A low-power mini PC or NAS beats an old desktop tower on running cost within a year.
What this doesn't do
Self-hosting serves content you have. It doesn't grant access to anything you don't.
A media server lets you watch your own files anywhere. A tuner lets you watch and record what your aerial receives. A broadcast server lets you send out what you produce. None of them is a route to channels you aren't licensed for, and panel software that redistributes someone else's streams is a different thing entirely — that's the configuration at the centre of the enforcement actions we've written about.
Quick answers
Jellyfin or Plex? Jellyfin if you want free and fully local. Plex if you want better apps and don't mind the account.
What hardware do I need? Very little, if files direct-play. Transcoding is what demands a capable CPU or Quick Sync.
Can I watch antenna TV on my phone? Yes — HDHomeRun plus Jellyfin, Plex or Channels DVR.
How many viewers can I serve from home? A handful. Upload bandwidth times viewers is the hard limit.
Do I need a static IP? No. Dynamic DNS or a VPN handles it.
Is self-hosting legal? Entirely, for content you own or produce.
Sources: project documentation for Jellyfin, Plex, Owncast, Nginx-RTMP and MediaMTX; HDHomeRun tuner integration as documented by those projects. Bitrate and storage figures are typical values rather than specifications.