Многие потоковые сервисы в настоящее время используют протоколы потоковой передачи на основе HTTP. Но есть исключения; особенно с потоковой передачей с низкой задержкой; например, WebRT C или решения на основе Websocket.
Предполагая, что вы используете протокол на основе HTTP, такой как HLS или MPEG-DA SH, «поток» представляет собой длинную цепочку видео-сегментов, которые загружаются один за другим. Видеосегмент - это файл в формате «TS» или «MP4» (в некоторых случаях MP4 видео и аудио разделяются на отдельные файлы); обычно сегмент имеет 2 или 6 или 10 секунд аудио и / или видео.
На основании списка воспроизведения или манифеста (или иногда просто из декодирования сегмента), игрок знает, сколько секунд содержит один сегмент. Он также знает, сколько времени потребовалось для загрузки этого сегмента. Вы можете измерить доступную полосу пропускания, опустив (средний) размер файла видеофрагмента на (среднее) время, необходимое для загрузки.
В тот момент, когда загрузка сегмента занимает больше времени, чем его воспроизведение, вы знаете, что игрок остановится, как только буфер опустеет; остановка обычно упоминается как «буферизация». Адаптивный битрейт (он же ABR) - это метод, который пытается предотвратить буферизацию; см. https://en.wikipedia.org/wiki/Adaptive_bitrate_streaming (или Google для выражения) - когда проигрыватель замечает, что доступная пропускная способность ниже, чем битовая скорость видеопотока, он может переключиться на другую версию того же потока, который имеет более низкая скорость передачи данных (обычно достигается за счет более высокого сжатия и / или более низкого разрешения - что приводит к снижению качества, но это лучше, чем буферизация)
PS # 1: потоковые решения на основе WebRT C и Websocket не могут использовать это трюк измерения и должны реализовать другие решения
PS # 2: Новые / будущие варианты HLS (например, LL-HLS и LHLS) и MPEG-DA SH используют другие технологии HTTP (например, chunked-Transfer или HTTP PU SH) для достижения более низкой задержки - они, как правило, плохо работают с упомянутой методикой измерения и используют различные методы, которые я рассматриваю здесь вне рамок.