Cordbox Help

Just-In-Time Transcode

Fixing video or audio problems on the device, in real time, so more content can play in AVPlayer instead of falling back to VLCKit.

What it does

Some streams have a video or audio format AVPlayer can't decode directly — interlaced video that needs deinterlacing, a video codec AVPlayer doesn't support, or an audio codec it can't play. Auto falls back to VLCKit for these automatically (see Choosing a player engine), which works, but loses AirPlay and Picture-in-Picture, both AVPlayer-only.

With Just-In-Time Transcode turned on, Cordbox fixes exactly what's wrong — deinterlacing, re-encoding the video, transcoding the audio, or some combination — on the device itself, as playback starts, instead of falling back. Only the parts that actually need fixing are touched; anything already AVPlayer-compatible is passed through unchanged. This uses more battery than plain VLCKit playback (decode plus encode, rather than just decode), which is why it's off by default — worth turning on specifically for content where AirPlay or Picture-in-Picture matter to you.

Quick access via long-press

Both of these live in Settings, but reaching for Settings mid-browse is a detour — long-press a movie, episode, or download to toggle the main switch right there instead. Long-pressing a live channel or a guide entry does the same, but for live channels specifically also turns on Apply to Live Channels together with it, since a bare main-switch toggle wouldn't do anything for a channel you're looking at. See Long-press for more options for the full list of what's available where.

Where it applies

Three genuinely different cases, covered by two separate settings:

Downloads, recordings, and video-on-demand — the main Just-In-Time Transcode toggle in Settings. Playback starts within a few seconds, growing in the background as you watch, rather than waiting for a full transcode up front.

Casting a movie or episode — when you cast one that isn't natively Google Cast-compatible, Cordbox retries the cast through the same on-device fix automatically. See Casting for how this fits into Chromecast specifically. Casting a live channel is a different case entirely — see Casting's own section on Xtream, Enigma2, and Stalker sources for that.

Live TV — a separate toggle, Apply to Live Channels, since a live encode is a different, newer, less-tested case than the other two: there's no backlog to draw from, and the source connection can be interrupted and needs to reconnect on its own. Worth trying if Picture-in-Picture for live channels matters to you — see the limitations below before relying on it.

A known limitation: screen lock

For a live channel using Just-In-Time Transcode, AVPlayer surviving a full screen lock — continuing to play, with Picture-in-Picture picking back up the instant you unlock — works more often than not, but isn't guaranteed. iOS restricts a backgrounded app's access to the hardware video encoder this relies on, and exactly when that restriction actually interrupts an already-running encode varies from one lock to the next, even on the exact same channel.

When it doesn't survive, playback falls back to VLCKit automatically — audio keeps playing, just without Picture-in-Picture, and it can take up to about 45 seconds to reconnect back to AVPlayer once you're back in the app. Simply backgrounding the app (switching to another app or the Home Screen, without locking the screen) doesn't have this limitation — Picture-in-Picture stays reliable there regardless of how long you're away. It's specifically locking the screen where reliability varies.