forked from Foxyz/sync_replay_project
Read once: a link passed on is fetched from the site once, for the putter's player and the relay
Before, the member passing a page link on downloaded it twice, independently: their mpv straight from the CDN and the relay's pulls again, with a different format pick and without yt-dlp's cookies. The two drifted (the putter played on while viewers stalled, or the reverse) and doubled the connections the CDN saw. Now one SharedSource per track reads the site once (resuming after cuts, backing off on 412/429/5xx and silence) into a bounded buffer (64 MiB ahead, 16 behind) that serves both the putter's mpv through a loopback endpoint and the server's pulls; the putter plays the relay's own format pick, and the relay sends yt-dlp's cookies. Up next's warm relay uses the same reader. Pieces tracks (HLS/DASH) keep two fetches for now. Measured in the opt-in e2e: half the CDN traffic, no 412s under a lockout CDN, viewer seeks 0.29 s instead of 4 s there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7715dc479a
commit
ec0849eb01
19 files changed
+1894
-101
No files matched your search
@@ -170,6 +170,17 @@ seek or a new link; the start of a freshly put-up link was never
|
||||
measured on its own. Levers if it still shows: start the window from
|
||||
the last rate, prefetch from the source as soon as a link goes up,
|
||||
a smaller gate buffer when only the relay is behind.
|
||||
Left of the read-once source (ARCHITECTURE "Relay", "Read once"): a
|
||||
human check against real Bilibili and YouTube (the 412 storm gone, the
|
||||
putter's picture the relay's format, a Windows putter's loopback), and
|
||||
the source's first frame and seeks over a 12 Mbit/s uplink
|
||||
(`tool/shaper`): a putter whose upload lags now holds its own player
|
||||
about 64 MiB past it. Not built: pieces tracks (HLS/DASH, X's) are
|
||||
still fetched twice (the putter's player from the site, the relay's
|
||||
pieces on their own; the same idea needs a `PieceBuffer` and a loopback
|
||||
playlist); Jellyfin items a member passes on are still streamed twice
|
||||
when the relay is needed. The e2e's media (26 MiB) fits the putter's
|
||||
buffer whole, so the 64 + 16 MiB bound is only unit-tested.
|
||||
Left of step 4 (library): a human check of the Files library on the
|
||||
real folder (`/mnt/torrents/Torrents/Binux/`: Bleach over three folders
|
||||
with 66–107 missing, SAO S3 Alicization with OP/ED, Re.Zero S04E17, the
|
||||
|
||||
Reference in new issue
Block a user