Возможно ли определить, что WebRTC-поток корректно воспроизводится в данный момент?
Добрый день.
Любой человек легко определит, что стрим воспроизводится — достаточно слышать звук и/или видеть видео. А есть ли способ узнать на стороне браузера, программно, что идёт воспроизведение?
Контекст проблемы такой. В WebRTC-комнате несколько участников. Некоторые стримы у некоторых людей, иногда не воспроизводятся, хотя по всем формальным признакам стрим идёт (срабатывают события "новый стрим", "стрим начал воспроизведение", MediaStream содержит audioTracks и videoTracks). Но визуально стрима нет, пока юзер не обновит страницу.
Хочется программно такие косяки отлавливать и логировать. А также как-то юзера информировать о том, что есть проблемы с воспроизведением, или даже автоматически эти проблемы пытаться решать. Если это вообще возможно.
Во-первых у есть какой-то аттрибут, описывающий что он играется, гляньте в дебагере по f12.
Плюс можно попробовать сделать снимок видео и убедиться что скажем не все пикселы черные.
Вот здесь показаны примеры, как собирать WebRTC статистику в Chrome и Firefox.
Если сделать несколько замеров статистики, можно определить, приходит ли видеотрафик, какой битрейт, есть ли потери, и т.д. Но даже если трафик приходит и нормально декодируется, юзер может видеть черный экран. Это уже нужно отдельно распознавать.