github ysosrs123/NuvioTV-Fork 0.8.5-beta-nt1
Nuvio-test 0.8.5-beta-nt1

4 hours ago

Brings the fork up to date with official NuvioTV 0.8.5-beta and rolls up the 0.8.4-series work in one go. The headline is seek preview thumbnails, generated on-device so they work even on debrid and Emby sources with no trickplay. Alongside it: much faster manual and Continue Watching starts, the correct display frame rate locked in before playback, a readable stream info line, full-resolution trailers again, new cache controls, and a round of memory-safety hardening — plus everything from upstream 0.8.5.

Fork timings were measured on an Ugoos AM9 Pro; absolute times vary with hardware and network, so treat them as indicative.


At a glance


New

Seek preview thumbnails (experimental, off by default) - not recommended for TV-stored apps due to constant storage usage. Use at your own risk.

A very challenging work in progress. Where Netflix and YouTube etc have these thumbnails pre-built and baked into their files, we're generating them on the fly, so a full title's thumbnails won't appear immediately on start of play.

Scrub the seek bar and a preview image appears above it, tracking where you're headed. It works even for debrid hosts and shared Emby libraries with no server-side trickplay, because the frames are generated on-device from the playing file. Enable it at Settings → Playback → Seek preview thumbnails.

  • Fills coarse-first: a full-timeline sweep at ~5-minute spacing lands within the first couple of minutes, then refines to one frame every 10 seconds. The spot you're scrubbing jumps the queue and fills in within moments.
  • Playback always wins — the worker only runs while playback is healthy, paces itself, and abandons any stuck fetch after 20 seconds. Previews are served from a local cache, so seeking is never delayed.
  • No blanks on wide jumps — the pane shows the nearest available frame until the exact one loads, holds for a few seconds after you let go so you can read it, then dismisses itself. Switching episodes clears it.
  • Persists on disk, so rewatches are instant. Frames are stored small (480×270 for 16:9; widescreen keeps its aspect), and the cache regenerates automatically if the format changes in a later update.
  • Self-managing cache: hard-capped at 200 MB (50 MB on low-memory devices), oldest-first trimming, stops writing if the device drops below 50 MB free, and decoded frames in memory are bounded (~30 MB, ~8 MB low-memory). A Clear seek thumbnail cache action wipes it on demand.

Clear Image Cache

A new Settings → Advanced → Cache → Clear Image Cache action, below Clear Continue Watching Cache. One press wipes cached posters, backdrops and logos plus the catalogue data behind Home, then reloads Home with fresh artwork — no restart, and the rows stay on screen while they repopulate. It doesn't touch your Continue Watching list, library, settings or add-ons.

Subtitle SDH stripping (upstream 0.8.5)

A new Strip SDH toggle removes SDH cues — [door creaks], speaker names, sound annotations — from displayed subtitles, leaving only spoken dialogue. Off by default; applies across the ExoPlayer, sidecar and MPV paths.

Diagnostics name the real serving host

Redirecting sources (a debrid service handing off to a CDN edge) now show where the bytes actually came from, not just the redirector. A Serving Host row appears on the Diagnostics card and a serving-host line on the speed-test card — only when a stream was genuinely redirected, absent for Emby/NAS/direct sources. Read live each session and saved with the last-playback diagnostics. Display only; nothing about what's fetched changed.


Improved

Manual playback starts much faster

Auto-play was already warmed ahead of the press; hand-picking a stream still paid everything cold. Now:

  • Settle on a direct stream row for half a second and the app warms that connection before you press. Scrolling warms nothing, and debrid rows are never resolved on focus — browsing costs nothing against your account.
  • Each stream keeps its own warmed window, so browsing the list can't overwrite the one you then press.
  • The seek index is fetched in parallel with the file header, removing a separate multi-megabyte read from the startup path, with the window widened to cover high-bitrate 4K remuxes.

In practice, a hand-picked direct source went from about 10 seconds to roughly 1.8–4.5 seconds on a warm press.

Every Continue Watching card gets the head start

Nuvio already warmed the front Continue Watching card as Home settled; every other card searched from cold. Now, settle on any card for about half a second and the same head start begins — the source is found, ranked by your auto-play preferences, and the connection warmed. Scanning the row warms nothing, unaired "Next Up" cards are skipped, works on all three home layouts, respects your Stream Selection Timeout, and never costs a debrid account more than the cached-only check the front card already did.

The right frame rate before playback — rewatches and first plays

  • Detected rates are remembered across restarts — on a rewatch the display switches to the right rate before playback prepares, so the audio path opens once. Stored hashed (no readable URLs), expires after 30 days.
  • First plays start matched too when the stream was warmed in time: the app reads the rate from the part of the file it already holds and switches before playback prepares, confirming against the player's own reading and discarding the early switch if they disagree (in testing they never did).

Covers warmed MKV streams; immediate presses, MP4 and un-warmed streams fall back to the previous behaviour — nothing is slower. One pre-existing quirk remains: on some AV chains, backing out of playback can still cause a longer "no signal" moment while the TV re-clocks — display renegotiation outside the app.

Trailers play at full resolution again

Trailers on the Focused Poster autoplay had dropped to ~360p because the high-resolution streams became gated behind a check the app could no longer pass. The app now reaches them a different, still-working way, and picks the best stream that actually loads — checking several options at once rather than betting on the single highest and failing. Trailers that only exist at lower resolution at the source still play at that resolution; what changed is the 360p fallback is gone. Validated across ~15 trailers (18/18 now return a playable high-res pair, the majority ≥1080p). Only the trailer fetch changed — playback, audio and frame-rate matching are untouched.

Cleaner stream rows in the Sources & Episodes panels

Each stream now leads with its add-on and release group and file size, and a single info line replaces the old logo row — e.g. 4K · BluRay REMUX · DV · HDR10 · HEVC · 10-bit · TrueHD · Atmos · 7.1 — covering resolution, source quality, Dolby Vision, HDR flavour, IMAX, codec, bit depth, audio format and channel layout. It now populates properly for debrid sources, and stays legible when a row is highlighted.

Source list and search (upstream 0.8.5)

  • A refresh button on the source list re-runs the search on demand, without leaving the page.
  • Source results no longer flash or lose focus on return from the player, and focus tracks cleanly when new results arrive above your position.
  • Search remembers your query on entering results, and only saves genuinely confirmed searches to history.

Subtitles, more robust (upstream 0.8.5)

A universal charset detector decodes text subtitles in legacy encodings — with Thai, Vietnamese and KOI8-R added — replacing the fork's older stray-character stripper. Simultaneous unpositioned cues are now merged rather than drawn over each other.

Device assessment: safer memory maths

  • Applying a plan re-checks the memory budget and clamps the target buffer to the largest step that still fits the device's safe budget once real parallel-connection overhead is counted — closing an over-commit path on ≤2 GB devices.
  • PCM channel capability is read per-format, not port-wide, so plain-ARC and stereo-TV chains are no longer over-reported (Android 12+; older devices show "verify"). No change on a full eARC Atmos chain.
  • Housekeeping: the buffer profile can be de-selected, a stale footer was fixed, header parsing is tolerant per key, and refresh-rate labels de-duplicate and format consistently across locales.

Smaller improvements (upstream 0.8.5)

A hide-Continue-Watching option in Layout settings; Continue Watching keeps its poster art when episode thumbnails are off; watch-next recommendations sync directly from the player; the update banner is hidden during playback.


Changed

Parallel network limits: connections cap at 4, chunks at 32 MB

Direct measurement on the 4 GB test device showed a parallel session holds roughly double the memory the app's conservative estimate assumed — and the configs where that cost grew fastest gave no matching playback benefit. So:

  • Connections cap at 4 (was up to 16) across the manual slider, assessment and speed test — 8- and 16-connection configs were consistently refused or throttled anyway.
  • Chunk size caps at 32 MB (was up to 128), and the assessment/speed-test no longer sweep 64/128 MB — larger chunks don't improve throughput on these sources but cost memory and lengthen time-to-first-frame. 16 MB stays the default.
  • Existing configs are clamped safely the next time the setting loads; typical setups (4 × 16 MB) are unaffected.

The assessment's on-screen memory estimates still use the original conservative figure; refining them is tracked separately.

Tunnelled playback and the app decoder (upstream 0.8.5)

Tunnelled playback can't share an audio route with the "Prefer app decoders (FFmpeg)" path, so tunnelling is now switched off automatically whenever the app decoder is preferred. The audio settings reflect the effective state so a persisted value never misleadingly reads as active.


Fixed

The details-page source line no longer gets stuck

The auto-play preview line could stick on "Finding best source" if the Continue Watching row reshuffled (e.g. a progress sync) while you were on a details page — the background search cancelled the page's own. Background searches now step aside for a details-page search that's already running. A related pair of fixes: a caught-up series now offers a replay of the last episode instead of resetting to S1E1, the source line is suppressed rather than spinning in that state, and an empty or cancelled hero prefetch always publishes a terminal signal so the line hides instead of hanging.

Mislabeled streams recover by probing (upstream 0.8.5)

A stream that fails to open because its container looks unrecognised is now actively re-probed for its real format and retried, rescuing playback a wrong MIME type would have killed. The fork's dead-source handling — advancing past genuinely dead links (404/410, or a non-media body like an HTML page or .rar/.zip) — sits alongside it.

Skip Intro / Recap / Outro button

No longer overlaps the seek bar (standard and widescreen), and the focus trap is fixed — you can move up from the skip button to the Info / Stats / Subtitles buttons.

Player overlay

Removed the stray release-year line from the bottom-left. Series still show season, episode and episode title.

Cloud library (upstream 0.8.5)

Cloud-library playback routing, resume-from-progress and auto-advance were restored, and cloud file progress is preserved correctly.


Notes and limitations

  • Seek thumbnails are 1080p SDR and below only — 4K and HDR/DV titles show the timestamp with no image (too heavy for this first version). A first watch builds coverage over the opening minutes; rewatches are instant. Tested on debrid and Emby sources on a single Amlogic device — hence experimental and off by default.
  • The fast manual start needs a moment on the stream row to warm; a quick "select and press" starts at the old speed, never slower.
  • Warmed-first-play frame-rate matching covers MKV — MP4 and un-warmed streams use the previous path.
  • The trailer fix relies on a currently-working access method and may need revisiting if the source changes its protections; it degrades gracefully rather than falling back to 360p.

Install

Sideload via ADB or a file manager. This is a personal test build (versionCode 1313) with the application ID com.nuvio.tv.test, so it installs alongside official NuvioTV rather than replacing it. Seek thumbnails ship off by default.


Licence and attribution

GPL v3.0. All upstream copyright headers, licence text and developer attributions are preserved; no licence text was removed.

Don't miss a new NuvioTV-Fork release

NewReleases is sending notifications on new releases.