Version 2.6 ships the biggest change in this app's history, and it is one you cannot see in a screenshot. OneTVPlayer — a video engine written from scratch, in-house — is now the default player on Apple TV, iPhone and iPad, for live TV, movies, series and catch-up. The visible feature it brought with it is live control: pause the broadcast as long as you want, rewind at any moment, jump back to live instantly. But the feature is the consequence. The story is the engine.
Ten years of borrowed engines
Every IPTV app on Apple platforms is built on a player it did not write. There are only a handful of serious options — MPV, VLC, KSPlayer, AVPlayer — each a large, mature project with its own roadmap, maintainers and priorities. OneTV Connect used all four, picked the right one per stream, and got a long way on that.
The ceiling shows up the moment something is wrong inside the player. A stream that drops out after twelve minutes. Audio that drifts when a broadcaster splices from 25 to 50 frames per second mid-programme. We could investigate, reproduce, isolate the exact bug — and then not fix it. File an issue upstream and wait, fork the project and carry a patch forever, or build a workaround that dances around the defect without removing it. We did all three, more often than I would like to admit.
The same ceiling applies to new features, and that is the part users feel. Pausing live TV is not a UI problem. It requires the engine to keep writing the incoming stream to disk while you watch it, to index it so you can seek inside it, and to hand you back a different moment in time without tearing down the connection. You cannot bolt that on from the outside. Either the engine does it, or the feature does not exist.
What OneTVPlayer changes
OneTVPlayer is our own engine: demuxing, hardware decoding through VideoToolbox, audio and video rendering, subtitles, colour handling. Everything the app does with a stream now happens in code we own and can change on any given afternoon.
That was the point, but the immediate payoff was ordinary quality. Playback starts faster. 4K plays at full quality rather than quietly falling back to a lower-resolution rendition. Subtitles show up when you switch them on, including embedded tracks that used to appear only after a seek. Long sessions hold — the "playback stops after a few minutes in 4K" class of bug is gone, because we could finally go and find the leak instead of working around it. None of that is glamorous, and all of it is the kind of thing you can only fix when the engine is yours.
Live control: pause and rewind
This is the first feature that could not have existed before. On any live channel, you can now pause for as long as you like and rewind at any moment — and crucially, from the second the channel starts. There is no buffer to arm, no recording to enable, no setting to find. You open a channel, and the ability to go backwards is already there.
From the first frame, OneTVPlayer writes the incoming stream to a rolling buffer on disk and indexes the keyframes inside it. When you pause, the stream keeps arriving and keeps being written; you have simply stopped consuming it. When you rewind, the engine seeks inside that local buffer instead of asking the server for anything — which is why it is immediate, and why it works on providers that offer no timeshift of their own.
Going back to live is instant and does not reload the channel. That distinction matters more than it sounds: reconnecting means a new request, a new handshake, several seconds of black, and on providers with a one-connection limit it risks a disconnection. Because the live edge is already in the buffer, returning to it is a cursor move.
This is a different mechanism from catch-up and timeshift, which replay what your provider recorded on their servers hours or days ago. Live control is local, covers the session you are watching right now, and needs nothing from your provider. Catch-up for last night's match; live control for the goal you missed while answering the door.
A live bar you can actually scrub
A rewindable live stream needs a way to navigate it, so live TV now has a real progress bar. On Apple TV you scrub it by sliding on the Siri Remote touchpad — an analogue drag, not a series of ten-second jumps. On iPhone and iPad you drag it with your finger. The bar carries a LIVE indicator showing how far behind the broadcast you actually are, which is exactly what you want to know when someone in another room reacts to a goal before you have seen it.
Five engines, one app
We did not remove anything. OneTV Connect now carries five engines — MPV, VLC, KSPlayer, AVPlayer and OneTVPlayer — and you can switch between them during playback, without going back to the channel list or restarting the title. For movies and series, your choice is remembered per title, so a file that plays best on one engine keeps using it next time.
Keeping the other four is deliberate rather than a hedge: different engines have genuinely different strengths, and pretending otherwise would be marketing rather than engineering. In automatic mode, Dolby Vision and HDR files go to AVPlayer, because Apple's own player talks natively to the TV's dynamic range pipeline and gives the best picture on those files. OneTVPlayer takes everything else. If you disagree, the manual choice is absolute — pick an engine and the app will not second-guess you.
What shipped alongside it
A few other things arrived with the engine, all consequences of owning the rendering path:
- Native Picture-in-Picture on iPhone and iPad. Keep watching in a floating window while you use another app. PiP is driven by our own display layer, so it works on live streams, not just files.
- Smarter HLS. Multi-variant streams start on the best available quality instead of whatever the server listed first, and step down cleanly when bandwidth drops rather than stalling.
- Faster resume on large files. Picking up a big 4K movie mid-way used to take an uncomfortably long time. It no longer does.
- An engine badge. A small indicator shows which player is in use — OTV, VLC, MPV, KS — honest about what is actually running.
What owning the engine means next
The practical change is turnaround. When a stream misbehaves now, the investigation ends in a fix rather than a workaround or a wait. Several of the live fixes in this release — the drop-outs, the black screens, the unexpected jumps backwards on certain providers — were bugs of exactly that kind: understood for months, unfixable from outside the player, closed in days once the player was ours.
It also changes what is reasonable to build. Features that touch the stream itself — pause, rewind, buffering, recording, synchronised playback — used to be off the table by default. Live control is the first of them to ship. It will not be the last.
OneTVPlayer is live now in version 2.6 on the App Store, on Apple TV and on iPhone and iPad. The OneTVPlayer page covers the engine and live control in detail, the full list of changes is in the changelog, and our comparison of MPV, VLC and KSPlayer covers the trade-offs between engines. If something plays badly on your source, the support page reaches us fastest — these days, with a decent chance we can actually fix it.