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
reservoarr-latest.zip87eb446Checksums:
MD5: 8a7ad55909de876961f97c680544f5a8
SHA256: 87639f84417d02b06649466f287fa6e9ad28a5255b7e34e4b721cc49bec5d73b
| 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
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.
If your provider streams cleanly, you don’t need this.
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.
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).
/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.
MIT licensed.