Это алгоритм учета скорости запроса данных потока:
1. Основано на буферизации: больше скорость канала - быстрее приходит ответ окончания буферизации.
2. В зависимости от времени/объема выбираем нужное разрешение из имеющихся потоков и делаем параллельную буферизацию в выбранном разрешении начиная с точки конца предыдущей буферизации.
3. После того, как будет завершена предыдущая - переключаем на 2-й поток.
4. Профит: смотрим в качестве, настроенном на пропускную способность канала.
И, конечно, нужна сегментация по видео-битрейтам.