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