Here's missing log that was "sensitive" according to the validator and I could not attach it
4K
Content-Range: bytes 0-1/306060181
Content-Range: bytes 305987584-306060180/306060181
Content-Range: bytes 16384-305987583/306060181
Content-Range: bytes 28901376-305987583/306060181
Content-Range: bytes 34471936-34537471/306060181
Content-Range: bytes 41287680-41353215/306060181
Content-Range: bytes 27262976-28049407/306060181
Content-Range: bytes 47710208-47775743/306060181
Content-Range: bytes 26017792-27262975/306060181
Content-Range: bytes 47775744-47841279/306060181
Content-Range: bytes 28114944-34471935/306060181
Content-Range: bytes 54525952-54591487/306060181
Content-Range: bytes 61014016-61079551/306060181
...
Post
Replies
Boosts
Views
Activity
There's frequent jumping between ranges, such as from 80MB to 40MB and back again:
```language
Content-Range: bytes 74121216-74186751/306060181
Content-Range: bytes 47841280-54525951/306060181
Content-Range: bytes 80805888-80871423/30606018
In contrast, the same video, when played on macOS 14.6.1 (23G93) using QuickTime and the same HTTP server and connection, results in far simpler requests:
Content-Range: bytes 0-1/306060181
Content-Range: bytes 305987584-306060180/306060181
Content-Range: bytes 4184448-305987583/306060181
As you can see, it's much simpler to handle by the streaming server.
This makes it much easier for the server to handle.
Here are my questions:
What governs the logic for the range requests made by AVPlayer? Is this documented anywhere?
Can the request logic be influenced to make it more linear using AVPlayer, AVPlayerItem configuration, or the AVAssetResourceLoaderDelegate?
If range-request logic cannot be changed, what is the best approach to buffer data on the client to ensure smooth playback for AVPlayer?