Мы пытаемся использовать MSE (Media Source Extensions), чтобы показывать видео в реальном времени на веб-сайте. Мы отправляем фреймы через websocket и стараемся изо всех сил удерживать латентность. Наш прототип прототипа очень хорошо работает в IE, Edge, Chrome, Safari и т.д. Проблема заключается в том, что IE и Edge настаивают на буферизации примерно за 3-5 секунд до начала воспроизведения видео. Это неприемлемо в нашем прецеденте (живое видео с камер безопасности). Нам интересно, есть ли какое-то свойство или что-то подобное (мы попытались установить preload = none, без успеха), который удаляет эту буферизацию? Все остальные браузеры с радостью начинают играть, когда первый кадр добавляется в sourceBuffer, и мы хотим, чтобы такое же поведение было у IE/Edge. Есть ли другой способ обхода, который вы можете нам предложить?
Кадры находятся в формате ISO BMFF
Вот пример , который я создал, который измеряет время от первого кадра, добавляемое к видео, которое начинает играть. Он использует интервал, чтобы обманывать данные, поступающие через websocket.
Результаты:
Browser Delay(ms)
-----------------------
Chrome: ~300
Safari @ Mac: ~7
Chrome @ Android: ~30
IE11 @ Win10: ~3200
Edge: ~3200
Здесь - файл mp4, если вы хотите его изучить.