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?
Topic:
Media Technologies
SubTopic:
Video