Announcements

Connection multiplexing: one connection, several channels

UHF's multi-player can now show two, three or four channels from a playlist that only allows one connection at a time. The channels take turns on a single connection, fast enough that each keeps playing. This post explains how that works and how to get the most out of it.

The problem

Many IPTV subscriptions allow one connection at a time. Open a second stream and the playlist server closes it within a few seconds, so a multi-player with two channels from such a playlist cannot work the obvious way: each tile wants its own connection, and only one survives.

Connection multiplexing takes that limit as given. Every channel of the same playlist server that you add to the multi-player shares a single connection, and the tiles take turns on it. It is an experimental feature, off by default, and it only applies to live channels served as MPEG transport streams, which is the format most of these playlist servers use.

How it works

It relies on one habit of these playlist servers. When you open a live channel, the server does not start at the live edge. It first sends what it already has buffered, often 15 to 25 seconds of the channel, as fast as your line allows, and only then settles into real time. That burst is what makes sharing possible: a tile can collect several seconds of content in a fraction of that time, then let go of the connection while it plays what it collected.

UHF keeps one connection open per playlist server and visits the tiles in turn. A visit opens the channel, takes the burst, and ends as soon as the server slows to real time or another tile needs the connection more. The next visit goes to whichever tile has the least content left to play.

Each fresh connection repeats part of what the tile already received, since the burst starts in the past. UHF recognises that overlap packet by packet and drops it, then stitches the new content onto the old so the player sees one continuous stream. If a playlist server restarts its timestamps between visits, the stitching re-numbers the new content so it still follows on without a jump.

The scheduler watches each tile's reserve: the content delivered minus the content played, wherever it sits. A tile that has run dry resumes only once it holds enough to last through the next absence, which keeps it slightly further behind live but steady. One tile plays its audio at a time, as in any multi-player; the others are muted.

At a glance

The rotation always goes to the tile with the least content left to play, takes what the playlist server bursts, and moves on; each tile drops what it already had and plays from what it banked.

What decides whether it works well

Almost everything depends on how the playlist server serves a fresh connection. Three things matter, in this order.

Burst speed. A good playlist server dumps its buffer at 20 to 40 Mbit/s before dropping to real time. At that speed a tile gains ten seconds of content in two or three seconds of connection, and four channels fit comfortably. A playlist server that paces a fresh connection at barely more than real time gives the rotation nothing to bank: every tile spends its turn catching up and the others drain while they wait.

Buffer depth. The burst reaches a fixed distance into the past, usually 15 to 25 seconds, and on some playlist servers it moves in steps as the server's segments roll over. A tile that is away longer than that distance misses content, and the picture skips forward when it comes back. A tile that is away for less re-downloads the difference. Neither is harmful on its own, but a shallow buffer makes skips more likely with more tiles.

Channel bitrate. The connection has to carry every channel's content in less time than it takes to play it. Two HD channels at 8 Mbit/s each already need a burst of 16 Mbit/s just to break even, before counting the overlap and the time each new connection takes to open. Lower bitrates leave more room.

Tips to make it work best

Turn it on only when you need it. The setting is Connection multiplexing (experimental) under Settings > Video player, and UHF offers it the first time you tap the multi-player button. Leave it off for playlists that allow several connections: a direct connection per tile is always better than a shared one.

Start with two channels. Add a third or a fourth only once two play steadily for a few minutes. Every extra tile divides the same connection further.

Prefer lower bitrates. SD and 720p channels at 2 to 4 Mbit/s share far better than 1080p at 8 Mbit/s. If a playlist server offers the same channel in several qualities, pick the lighter one for the tiles you only glance at, and use Replace > Alternative sources on a tile to switch.

Keep the tiles on one playlist server. Channels from different playlists use their own connections and do not compete. Mixing one channel of a single-connection playlist server with channels of another playlist is fine.

Expect the first seconds to be rough. Tiles start in turn, and a tile that has just joined plays from the start of its burst, some seconds behind live. After a minute the rotation settles.

Pin and unmute what you watch. Pin the tile you care about and give it the sound. The others only need to keep moving.

Save the multiview. Save & close keeps the channels, the pinned tile and the layout on your home screen, so the next time all tiles open together instead of one after another.

Keep the Apple TV on Ethernet or strong Wi-Fi. The burst is only as fast as your own line. A connection that tops out at 15 Mbit/s cannot share two HD channels whatever the playlist server does.

What fits on one connection, from measurements with playlist servers that burst at 20 to 40 Mbit/s:

Channel bitrate

Channels that share well

Up to 4 Mbit/s (SD, light 720p)

4

4 to 8 Mbit/s (1080p)

2

Above 8 Mbit/s, 4K

1, sharing is not possible

Limits and how to read what you see

  • HLS playlists are not shared. A playlist that only serves HLS keeps one connection per tile. With the feature on, UHF asks the playlist server for transport streams instead; if it only has HLS, the multi-player works as before.

  • Catch-up, recordings and VOD are not shared. Only live channels take part. Everything else keeps its own connection.

  • Surround sound passthrough stays with single playback. Tiles in a shared multiview use the standard audio output.

  • A short freeze on one tile means it ran dry during its turn away. It resumes with a deeper reserve, so the second freeze is rarer than the first. If a tile freezes every turn, the playlist server is not bursting that channel, and it will not share well whatever you do.

  • A jump forward on one tile means the playlist server's buffer did not reach back far enough while the tile was away, so a few seconds of that channel were skipped. More tiles make this more likely.

  • All tiles stalling together points at your own line or at a playlist server that paces every connection at real time. Try the same channels one at a time without the feature to tell the two apart.

If a playlist behaves badly with the feature on, turn it off in Settings > Video player and use the multi-player with channels from other playlists. The setting only changes how the multi-player opens channels; single playback is untouched either way.

Why we build things like this

Features like connection multiplexing do not come from a feature list. They come from sitting with a real problem, in this case a playlist that only allows one connection, and working out what a good experience would look like before writing a line of code. We take that time on purpose, and we take the same care to keep UHF light: an app can carry a lot of features without feeling bloated when each one earns its place and stays out of the way until you need it.

We have also noticed that the ideas we put this work into tend to appear in other apps not long after, without the thinking that went into them. We are glad when a good idea spreads, and we think the work deserves to be recognised where it started. We do all of this while keeping a generous free version, low subscription prices, a lifetime plan and Family Sharing support. If UHF has made your evenings a little better, telling someone about it is the best thanks we could ask for.

Other posts

No streams were harmed in the making of this app

UHF is a media player. It does not provide, host, or distribute any content. Users are responsible for ensuring they have the legal right to access any content they add to UHF.

© 2026 Short Wavelength Applications SL

No streams were harmed in the making of this app

UHF is a media player. It does not provide, host, or distribute any content. Users are responsible for ensuring they have the legal right to access any content they add to UHF.

© 2026 Short Wavelength Applications SL

No streams were harmed in the making of this app

UHF is a media player. It does not provide, host, or distribute any content. Users are responsible for ensuring they have the legal right to access any content they add to UHF.

© 2026 Short Wavelength Applications SL