Right now every track is available in a single quality. Tracks should be transcoded into several quality levels automatically, and the player should choose the best one for the user's connection.
Expected behavior
When a track is uploaded, generate multiple bitrate variants automatically (e.g. 64, 128, 192, 256, 320 kbps).
Never upscale: only generate variants at or below the source bitrate. For example, if the source is 128 kbps, generate 128 kbps and lower, never 192/320 kbps.
The player switches quality based on network conditions (adaptive streaming, e.g. HLS or DASH).
Optionally let the user force a quality (e.g. "Data saver" / "High quality"), which could live in the player settings (#15).
Considerations
Detect the source bitrate/codec on upload (e.g. with ffprobe) to decide which variants to generate.
Run transcoding in the processing pipeline and reflect its progress in the upload status (#6).
Take the extra storage used by the variants into account.
## Summary
Right now every track is available in a single quality. Tracks should be transcoded into several quality levels automatically, and the player should choose the best one for the user's connection.
## Expected behavior
- When a track is uploaded, generate multiple bitrate variants automatically (e.g. 64, 128, 192, 256, 320 kbps).
- **Never upscale:** only generate variants at or below the source bitrate. For example, if the source is 128 kbps, generate 128 kbps and lower, never 192/320 kbps.
- The player switches quality based on network conditions (adaptive streaming, e.g. HLS or DASH).
- Optionally let the user force a quality (e.g. "Data saver" / "High quality"), which could live in the player settings (#15).
## Considerations
- Detect the source bitrate/codec on upload (e.g. with `ffprobe`) to decide which variants to generate.
- Run transcoding in the processing pipeline and reflect its progress in the upload status (#6).
- Take the extra storage used by the variants into account.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Right now every track is available in a single quality. Tracks should be transcoded into several quality levels automatically, and the player should choose the best one for the user's connection.
Expected behavior
Considerations
ffprobe) to decide which variants to generate.