Plugins

Back to All Plugins

reservoarr

Version: 6.3.1 Author: brko7 Last Updated: Jul 03 2026, 16:10 UTC

Delay-buffer stream profile that absorbs IPTV CDN gaps so Plex Live TV stops dying

License: MIT Repository

Dispatcharr min

Downloads

Latest Release

Checksums:

MD5:    8a7ad55909de876961f97c680544f5a8
SHA256: 87639f84417d02b06649466f287fa6e9ad28a5255b7e34e4b721cc49bec5d73b

All Versions

Version Download Built Commit MD5 SHA256
6.3.1 Download Jul 03 2026, 16:10 UTC 87eb446 8a7ad55909de876961f97c680544f5a8 87639f84417d02b06649466f287fa6e9ad28a5255b7e34e4b721cc49bec5d73b
6.3.0 Download Jun 22 2026, 13:41 UTC eb7cafa 906d3cbf78d776ebd61dcc416a4dae7c 60b4717af9a90370bccee1fac96e825048bb53a8f0bbb3b0b7b632dc082cf716
6.2.3 Download Jun 21 2026, 18:14 UTC c14f957 b91435d4472be9472b0b805fb11f9979 523c0b995c1d52aad3ed09787bb4f014b0d2d7f7a48ddf282941143d3de62912
6.2.2 Download Jun 21 2026, 10:55 UTC 0b6a475 2a628f3eee4486514134e02c65ea19f6 178380a7608d34c660c77a1488f8ea9faa67ee3f57842433dd6951b876a6a331

Maintainers: brko7 Source: Browse Plugin

Metadata: View full manifest


Plugin README

reservoarr

A delay-buffer stream profile that absorbs IPTV CDN gaps so Plex Live TV stops dying. Eagerly drains the upstream into a RAM reservoir, then releases bytes to ffmpeg at the stream’s PCR-derived content rate. Playback runs ~30s behind live, and gaps shorter than the cushion are invisible to the player.

What this is for

If your provider streams cleanly, you don’t need this.

Install

Dispatcharr → Plugins → Find Plugins → search “reservoarr” → Install. Click Generate Stream Profile in the plugin settings.

Tuning is via RESV_* environment variables on the Dispatcharr container — see the TUNABLES doc. Defaults match production-validated behaviour and fit most providers.

Architecture (one paragraph)

upstream HTTP → RAM reservoir (≤256MB, ~30s target cushion) → byte-rate paced release at the PCR content rate → ffmpeg remux (video copy + dump_extra + -c:a ac3) → Dispatcharr → Plex. Pacing happens in the wrapper, not with ffmpeg -re — the provider’s streams carry occasional corrupt packets with garbage DTS, and -re sleeps on them. PCR is a measurement input; a garbage sample is rejected by a plausibility window. Three watchdogs ride alongside (corrupt-loop, stall, TS-corruption).

Telemetry

/data/scripts/logs/delaybuf.log (configurable, self-rotates at 10 MB):

2026-06-14T10:03:33 [500004175] cushion=27s(pcr) buf=15.5MB out=4.66Mbps in=4.96Mbps crate=4.80Mbps in_total=1843MB reconnects=0 ccerr=0 pcrrej=0 disc=0 sync=0

Full schema in the TELEMETRY doc.

More

MIT licensed.