Android — coming very soon Learn more
← All articles

MPV vs VLC vs KSPlayer: which IPTV engine on Apple TV?

Three player engines, three philosophies. Codec coverage, 4K HEVC 50fps stability, hardware decoding, audio routing — and how OneTV Connect picks the right one automatically.

Most IPTV apps ship with a single playback engine — usually VLCKit because it's the easiest to integrate on iOS / tvOS. The problem: no single engine handles all the codec/container combinations you'll encounter on real-world IPTV streams. OneTV Connect ships three engines (MPV, VLC, KSPlayer) and switches between them based on the stream. Here's how to think about each one.

Why three engines?

IPTV streams are a wild mix of formats. A single playlist can contain HLS (.m3u8), TS muxes, raw H.264/HEVC, AAC + Dolby Digital + DTS audio, sometimes E-AC3 or TrueHD. Some providers serve 4K HEVC at 50fps with 10-bit color (broadcast standard in France and the UK). One engine that handles 95 % of streams will still leave 1 in 20 broken, and that's not acceptable on a paid app. Three engines covers ~99.5 %.

MPV — the universal codec champion

MPV is the open-source media swiss-army knife. Built on FFmpeg, it handles any codec you throw at it — including obscure things like HEVC with Rec.2020 color or DTS-HD audio. On Apple TV, OneTV Connect uses MPV with hardware-accelerated decoding via VideoToolbox (hwdec=videotoolbox-copy, never zero-copy because of texture allocation issues). Best for: live TV with DVB-style TS muxes, channels that mix codec mid-stream, anything VLC chokes on. Weakness: HTTPS streams need to go through an internal proxy because libmpv doesn't ship a TLS layer — adds 2–3ms latency, invisible to the user.

VLC — the safe fallback

VLCKit (the iOS port of libVLC) is mature, well-tested, and handles the long tail of weird containers. On OneTV Connect it's the default for VOD playback because the resume-position handling is more reliable, and for streams where MPV's audio routing produces a muffled center channel (rare but happens with some Dolby Digital sources). Best for: VOD with seek, streams that other engines mis-detect, audio-first scenarios. Weakness: HEVC 50fps stutters on Apple TV 4K (3rd gen) — VLC's HEVC decoder isn't as tightly integrated with VideoToolbox as the alternatives.

KSPlayer — 4K HEVC 50fps king on tvOS

KSPlayer is the only engine we've tested that plays 4K HEVC at 50fps cleanly on Apple TV 4K (3rd gen) — the format used by French broadcasters (TF1 4K, France Télévisions 4K, Canal+ 4K) and UK premium sport. The trick is asynchronousDecompression = true + AudioRendererPlayer for audio (which fixes the muffled center channel when Dolby Digital is present). It's also the only viable engine for Stalker portals on tvOS, because the alternative (KSAVPlayer) consumes the play_token via a preflight HTTP request and triggers HTTP 401. Best for: 4K HEVC 50fps live, Stalker streams, anything with mixed audio tracks.

How OneTV Connect auto-picks the right one

You don't actually have to choose. The app analyzes the stream URL, the manifest format, the codec hints in the M3U / EPG, and the playlist type (Xtream, Stalker, plain M3U) to pick the most reliable engine for that specific stream. If the first pick fails to decode, the app silently fails over to the next engine in line — typically without the user noticing more than a half-second buffer. You can override the auto-pick from Settings → Player → Default engine if you want to force one engine for testing or personal preference.

The short version: don't worry about which engine plays your stream. Worry about whether your stream plays at all. Three engines is OneTV Connect's answer to "yes, every time, on every stream".