Как Леша сказал, мы смотрим на ошибку запроса. Ещё мы засекаем таймер. Если сервер отвечает 200, но слишком долго не отдает данные (или отдает их очень медленно), то мы считаем «с edge-сервером что-то не так»
Мы изучали dash.js. Это эталонная имплементация стандарта DASH. Нам весь стандарт не нужен. Зато нужны такие фичи, как виртуальный буфер, от реализации которого в dash.js отказались.
Классный поинт. Однако нам он не подходил. Мы - универсальная библиотека для воспроизведения видео на разных сервисах Яндекса с разными сценариями.
Например, на Кинопоиск - сервис, где пользователь может выбрать один из огромного количества фильмов. Мы не можем предзагружать плейлисты всех фильмов, предлагаемых рекомендациями. А после того, как пользователь нажмет кнопку «Смотреть», он ожидает мгновенного запуска.
И причина не в том, сколько весит плейлист (хотя в случае с лайвом hls может весить прилично), а именно в походе за данными. Если у пользователя большой rtt, то это будет критично.
По нашим экспериментам DASH vs HLS, DASH показывает себя лучше.
Как Леша сказал, мы смотрим на ошибку запроса. Ещё мы засекаем таймер. Если сервер отвечает 200, но слишком долго не отдает данные (или отдает их очень медленно), то мы считаем «с edge-сервером что-то не так»
Приходите рассказывать всякое техническое про видео на VideoTech https://vtconf.com/callforpapers/
Стандарт HLS реализует библиотека https://github.com/video-dev/hls.js.
Есть еще https://github.com/shaka-project/shaka-player, поддерживающая части стандартов HLS, DASH и MSS
Пока это внутренняя библиотека Яндекса
Мы изучали dash.js. Это эталонная имплементация стандарта DASH. Нам весь стандарт не нужен. Зато нужны такие фичи, как виртуальный буфер, от реализации которого в dash.js отказались.
В плеере мы делаем оптимизации для воспроизведения рекламы. Блокировка происходит сильно раньше на этапе получения ссылки на рекламный поток
Классный поинт. Однако нам он не подходил. Мы - универсальная библиотека для воспроизведения видео на разных сервисах Яндекса с разными сценариями.
Например, на Кинопоиск - сервис, где пользователь может выбрать один из огромного количества фильмов. Мы не можем предзагружать плейлисты всех фильмов, предлагаемых рекомендациями. А после того, как пользователь нажмет кнопку «Смотреть», он ожидает мгновенного запуска.
И причина не в том, сколько весит плейлист (хотя в случае с лайвом hls может весить прилично), а именно в походе за данными. Если у пользователя большой rtt, то это будет критично.
По нашим экспериментам DASH vs HLS, DASH показывает себя лучше.