Заставить браузер прекратить буфферизацию видеопотока?

В рамках курсовой работы написал простой сервер на С++ и OpenCV, который позволяет стримить видеопоток с веб-камеры в браузер. Видеопоток в формате .ogg, кодек Theora. Браузер всё добро отображает с помощью HTML5 — обычная страничка с тегом video.

Сервер с помощью OpenCV захватывает кадры с камеры и через кодек пишет их в файл, собственно стриминг в браузер идёт уже с файла.

Из-за неравномерного размера кадров при записи их с файла в буфер передачи через сокет возникает момент, когда браузер начинает проводить буфферизацию и не может дальше автоматически продолжить воспроизведение потока.

Вопрос: есть ли какие-то методы заставить браузер продолжить воспроизведение?
  • Вопрос задан
  • 4268 просмотров
Решения вопроса 1
@rowdyro
В аналогичных системах проще реализуется так называемая тайм машина — видео выдается с задержкой и вы складываете на сервере 15 секундные файлы, которые клиент читает.

Перед сохранением лучше делать qt-faststart чтобы атомный чанк был спереди и не надо было ждать загрузки всего файла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ntz
@ntz
Веб-сервер должен притормозить отдачу данных. Что он делает, когда достигает конца файла недописанного?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы