Adaptive bitrate streaming with multiple quality levels #17

Open
opened 2026-09-23 21:48:06 +00:00 by NotS1mp · 0 comments
Owner

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.
## 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.
NotS1mp added the
Priority
Medium
3
Kind/Feature
labels 2026-09-23 21:48:06 +00:00
Sign in to join this conversation.