
Я смотрю матчи по крикету в прямом эфире онлайн. Обратите внимание, что матч проводитсяЖИТЬ(где-то!). Иногда из-за медленного интернет-соединения видео начинает буферизироваться.
Допустим, мое видео останавливается и ударяется, когда бэтсмен бьет на шесть. Через некоторое время, когда буферизация заканчивается, видео возобновляет воспроизведение точно с того места, где оно было остановлено (в данном случае, когда бэтсмен бьет на шесть). Однако этоЖИТЬсовпадение, поэтому очевидно, что я на самом деле не получаю егоЖИТЬ.
Похоже, что сервер поддерживает очередь и всякий раз, когда он буферизуется, он ждет буферизации и начинает с того места, где остановился. Что на самом деле происходит, когда видео буферизуется?
Одинакова ли технология потоковой передачи видео для таких сайтов, как YouTube (где видео уже сохранены), а также для таких сайтов, как сайты онлайн-видеотрансляций?
решение1
Мне жаль сообщать вам, что выникогдаполучить прямую трансляцию в реальном времени.
И причина в буферизации.
По сути, на этапе «Буферизация...» проигрыватель создает буфер из x секунд. Он начнет воспроизведение только тогда, когда буфер будет заполнен, или, если источник медленный, он может решить отобразить то, что у него есть.
Это выглядит так:
Верхняя стрелка иллюстрирует воспроизведение, а нижняя — заполнение буфера. 5 секунд — произвольный параметр.
В этом примере проигрыватель догонит любую задержку потоковой передачи до 5 секунд. Если задержка больше 5 секунд, существующий частичный буфер будет отброшен, а новый буфер будет запущен из «живого» источника. Когда входящие данные продолжают поступать, они добавляются в буфер, и представление продолжается плавно, даже если пакеты могли быть получены в неправильном порядке и в разное время.