-
Notifications
You must be signed in to change notification settings - Fork 6k
Description
When filing a feature request:
Replace the content in the sections below.
[REQUIRED] Use case description
We are using Exoplayer's Dash Downloader to download our long form audio only content and we see a large degradation in download speeds. Our segment sizes are already set to 20 seconds and our content can be up to 154 hours long.
We saw that Exoplayer already collapses adjacent segments together to optimize the amount of network chattiness on the wire. c8e7ecd. As our segment sizes are already 20s long this collapsing doesn't kick in.
Based on our testing, bumping up this number to something much higher like 2000, or 3000 gives us the speed ups we need.
Proposed solution
We are requesting Exoplayer to make the segment size collapsing configurable via a parameter into the SegmentDownloader instead of a hardcoded value:
private static final long MAX_MERGED_SEGMENT_START_TIME_DIFF_US = 20 * C.MICROS_PER_SECOND;
This can continue to be the default value, but clients can override it with their own values so it works in each of their contexts. (I understand this value was probably selected for video use cases in mind only).
Alternatives considered
Alternatively we can add logic on the server side to dynamically manipulate the segment sizes if Android is trying to download the stream, but this will reduce our cache hit ratios, add special logic to our infrastructure to work around this limitation, and potentially impact stall rates and latency with streaming while we download the stream.