When Plex plays a debrid file, every start and every skip is a read on a mount. We timed those reads through StreamBridge and through Zurg with rclone, the usual do-it-yourself setup, and wrote down how, so you can check or repeat it.
Through StreamBridge. Zurg with rclone, cache full: 4.3 ms once it had opened the file, which first took 3,771 ms.
Through StreamBridge, against 319 MB/s with the cache full and 0.2 MB/s with it off.
Through StreamBridge, against 10.6 to 52.0 ms with the cache full.
Plex has no say in how a read is served, so the mount decides whether a film starts at once or after a pause. On one file we timed four things: how long until the first bytes arrive, how fast the first 20 MB reads, how long a read at a new position takes (a cold seek), and how long the same read takes the second time (a warm seek).
What each setup involves is in StreamBridge vs Zurg and how to set up Real-Debrid with Plex.
Median MB/s. Higher is faster.
Milliseconds. Lower is faster.
Median milliseconds across the five positions, shown as a range. Lower is faster.
Median milliseconds across the five positions, shown as a range. Lower is faster.
Measured 2026-10-31 on Apple M1 Pro, 16 GB, macOS 27.2. Each cell is 7 runs on one 9.3 GB file, the same release on every mount; values are median / p90. No run reported a read error.
| Mount | First byte, first run (ms) | First byte (ms) | First 20 MB (MB/s) |
|---|---|---|---|
| StreamBridge | 2.4 | 1.7 / 43.8 | 611 / 652 |
| Zurg + rclone, VFS cache full | 3,771 | 4.3 / 3,771 | 319 / 421 |
| Zurg + rclone, VFS cache off | 4,520 | 3,419 / 4,622 | 0.2 / 0.2 |
| Mount | Position in file | Cold | Warm (repeat) |
|---|---|---|---|
| StreamBridge | 10% | 3,772 / 5,176 | 2.2 / 3.3 |
| StreamBridge | 30% | 3,695 / 9,592 | 1.7 / 10.5 |
| StreamBridge | 50% | 3,677 / 3,924 | 1.7 / 4.4 |
| StreamBridge | 70% | 3,590 / 4,445 | 1.9 / 3.1 |
| StreamBridge | 90% | 3,677 / 4,284 | 2.1 / 5.1 |
| Zurg + rclone, VFS cache full | 10% | 2,294 / 3,469 | 14.8 / 102 |
| Zurg + rclone, VFS cache full | 30% | 3,368 / 3,743 | 13.0 / 64.3 |
| Zurg + rclone, VFS cache full | 50% | 3,571 / 5,422 | 10.6 / 77.3 |
| Zurg + rclone, VFS cache full | 70% | 3,640 / 4,024 | 52.0 / 68.9 |
| Zurg + rclone, VFS cache full | 90% | 3,526 / 5,319 | 11.5 / 74.0 |
| Zurg + rclone, VFS cache off | 10% | 4,184 / 5,185 | 4,694 / 5,085 |
| Zurg + rclone, VFS cache off | 30% | 4,668 / 5,757 | 4,555 / 5,050 |
| Zurg + rclone, VFS cache off | 50% | 3,285 / 5,781 | 4,377 / 5,024 |
| Zurg + rclone, VFS cache off | 70% | 4,232 / 4,653 | 4,824 / 5,443 |
| Zurg + rclone, VFS cache off | 90% | 4,542 / 6,023 | 4,806 / 6,054 |
Not yet measured: Plex library scan time, and time to read 4 MB after a seek (that pass was stopped when the debrid CDN began dropping connections).
Starting a file. A median of 1.7 ms from opening the file to its first 64 KB through StreamBridge. The first open through Zurg + rclone, VFS cache full took 3,771 ms, and a median of 3,419 ms through Zurg + rclone, VFS cache off.
Reading ahead. The first 20 MB came in at a median of 611 MB/s through StreamBridge, 319 MB/s through Zurg + rclone, VFS cache full and 0.2 MB/s through Zurg + rclone, VFS cache off.
Skipping back. Reading a spot the file had just served took a median of 1.7 to 2.2 ms through StreamBridge and 10.6 to 52.0 ms through Zurg + rclone, VFS cache full. Through Zurg + rclone, VFS cache off, which keeps no cache, it took 4,377 to 4,824 ms.
Skipping ahead. A spot nobody had read yet took a median of 3,590 to 3,772 ms through StreamBridge and 2,294 to 3,640 ms through Zurg + rclone, VFS cache full, which had the lower median at 4 of 5 positions. Both wait on the same debrid CDN, and that wait sets the time.
The three mounts. One Real-Debrid file, the same release and byte size each time:
StreamBridge, through the library folder it gives Plex, after the preparation the app gives every new title.
Zurg with rclone, VFS cache full: Zurg v1.0.0 serving the debrid library over WebDAV, and rclone v1.75.2 serving that over NFS with --vfs-cache-mode full.
Zurg with rclone, VFS cache off: the same, with --vfs-cache-mode off.
rclone serves NFS because a FUSE mount on a Mac needs a kernel extension. Zurg and rclone ran in Linux containers under Apple's container tool, which adds a virtual network hop of under a millisecond. Both rclone mounts used identical settings.
The tool. A small command-line program we wrote. It opens the file with the macOS page cache bypassed, so it times the mount and not memory.
One run. Open the file and read the first 64 KB (first byte). Read the first 20 MB in 1 MiB reads (throughput). Then, at 10, 30, 50, 70 and 90 percent of the file, read 64 KB at a position that run has not touched (cold) and read it again straight away (warm). Positions start from a random offset on every invocation and step by a fixed amount between runs, so no earlier read can have warmed the next.
Statistics. 7 runs per cell, reported as the median and the 90th percentile (nearest rank). The first run's first-byte time is shown on its own, because later runs can use caches the first one fills.
The rclone and Zurg setup:
zurg (config: enable_repair false, delete_error_torrents false)
rclone serve nfs zurg: --addr :2049 --read-only \
--vfs-cache-mode full|off --vfs-cache-max-size 20G \
--dir-cache-time 10s --vfs-read-chunk-size 16M
Hardware. Apple M1 Pro, 16 GB, macOS 27.2, a 9.3 GB file. We didn't record the network connection, so the cold-seek figures belong to that connection and that hour.
One Mac, one file, one debrid provider, one connection, one evening. The debrid CDN sets cold-seek time and varies by place and hour, so rerun it before you rely on it.
StreamBridge keeps a small part of each title on your Mac (see how it works), which explains its short first-byte times. A title it hasn't prepared starts slower.
The harness times reads, not the moment a video frame appears, and it doesn't time a Plex library scan.
A second pass, reading 4 MB after each seek, was stopped when the debrid CDN began dropping connections, so it isn't reported.
Observed but not measured: while we were setting up, listing the whole debrid library through rclone's NFS server hung until we forced the mount off.