Детектор черного экрана: различия между версиями

Материал из SmartPlayer
м (D.Stukalov переименовал страницу "Детектор" черного экрана (Пользователь) в Детектор черного экрана без оставления перенаправления: Часть переводимой страницы "Детектор" черного экрана (Пользователь).)
 
(не показаны 22 промежуточные версии 2 участников)
Строка 1: Строка 1:
<languages/>
<translate>
<!--T:1-->
<!--T:1-->
=== '''Описание ситуации''' ===
=== '''Описание функции''' ===
У заказчика начались проблемы с трансляциями. Во время воспроизведения трансляций на устройствах <br>
Функция детектора предназначена для определения внештатных ситуаций таких как возникновение черных экранов на устройствах, при этом система не обязательно находится в состояние ошибки, возможны ситуации с неправильным планированием трансляции, ошибкой менеджера или проблемами с каналом связи которые приводят к невозможности закачки контента до момента старта трансляции. Детектор черных экранов может определить подобную ситуацию и послать уведомления на почту пользователя/администратора системы для скорейшего устранения проблемы.
прерывалась трансляция и появлялся «чёрный экран.
[[File:Пример черного экрана в ЛК.png|thumb|Пример отображения "Чёрного" экрана в личном кабинете пользователя|700px]]
<!--T:2-->
 
 
=== '''Причина''' ===
=== '''Причина''' ===
В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать.
В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать. <br>
Эта ситуация возникла из-за ошибок при запуске трансляции, поэтому пользователь видел заместитель (placeholder).<br>
Причины этой проблемы могут быть разными. От неподдерживаемых кодеков используемых в видео, до проблем с потерей соединения с сетью.<br>
 
Поэтому было решено сделать автоматизированное решение, которое поможет более оперативно оповещать и работать с этой проблемой.
Такое решение позволит снизить процент негативных реакций от клиента, поскольку оперативность получения данных о проблеме и ее быстрое решение уменьшают осведомленность клиента о проблеме.<br>


Для автоматизации и решения проблемы было решено создать «Анализатор скриншотов». Он необходим для более быстрой реакции разработчиков на проблему. Это позволит снизить процент негативных реакций от клиента. Оперативность получения данных о проблеме и её быстрое решение уменьшить знание клиента о проблеме.<br>
<!--T:3-->
<!--T:3-->
''Примечание:''
Данный функционал не доступен пользователю в личном кабинете.
=== '''Концепт решения''' ===
=== '''Концепт решения''' ===
У каждого клиента/компании есть свой ID связанный с сервером. К этому ID привязываются все устройства компании.
Для решения проблемы и ее автоматизации было решено создать «Детектор черных экранов». Его функция – заранее предупреждать нас о случившейся на конкретном устройстве проблеме.  Этот функционал позволяет работать нам проактивно и не ждать оповещения о проблеме от клиента.
С определенным промежутком сервер отправляет на устройства «ивент».<br>
{{Note|Данный функционал не доступен пользователю в личном кабинете. Обратитесь для его включения к системному администратору.|warn}}
Запуская «ивент» устройство с помощью детектора проверяет наличие «черного экрана», делая скриншот во время запуска.<br>


<!--T:4-->
=== '''Принцип действия''' ===
Детектор работает со всеми компаниями, которые используют наше ПО. По умолчанию он выключен и включается только на конкретную компанию.<br>
У каждого компании работающей в нашем приложении есть свой персональный ID. Его можно найти в личном кабинете. К этому ID привязываются все устройства компании. Для запуска "детектора" - знание этого параметра необходимо.<br>
При возникновении ошибки с «чёрным» экраном, на одном или нескольких устройствах наш сервер отправляет «ивент» на эти устройства. Устройство этот «ивент» запускает. В момент запуска «ивента» «детектор» делает скриншот. И по этому скриншоту проверяется наличие «черного» экрана.<br>
После запуска детектора возможно получить два вида ответа:
После запуска детектора возможно получить два вида ответа:
# После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме.
# После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме.
# После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент". Промежуток для повторной отправки составляет 10 секунд.
# После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент". Промежуток для повторной отправки составляет 10 секунд.
Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту.<br>
В случае, если подтверждается второй вариант, то со стороны сервера отправляется уведомление на почту.  
<!--T:4-->
{{Note|Указанная почта должна обязательно должна быть привязана к серверу, иначе уведомления о проблеме приходить не будут.|warn}}
'''Важно''': Указанная почта должна быть привязана к серверу.<br>
 
Если и во второй раз обнаруживается черный экран, то со стороны сервера отправляется письмо на почту.
=== '''Тонкости и нюансы''' ===
1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка.<br>
 
2. '''Актуально только при проигрывании видео.''' При наличии root прав на устройстве – детектор работает нормально. Но, если, на устройстве нет root прав детектор не сможет сделать скриншот.<br>
'''Исключения:'''
Скриншот доступен:</div>
- если приложение подписано «подписью разработчика» (уровень прав – Signage)<br>
 
- Некоторые устройства (Vestel, Hikvision, Phillips) могут сделать скриншот без root прав из-за особенностей прошивки.<br>
 
3. Если пользователь попробует сделать скриншот без root прав, то создается «пустой скриншот» с надписью «Идёт воспроизведение видео. Отсутствуют права для снятия скриншота».<br>
 
4. Информация от сервера к разработчикам отправляется через ивент. Внутри отправленного «ивента» сервер ждет callback от разработчиков.<br>
 
5. Тайм – аут “Callback” на сервере составляет – 30 секунд.
<!--T:5-->
=== '''Реализация''' ===
Серверное приложение, через определенны промежуток времени («N», настраивается через CLI) отправляет «ивент» на устройства. Устройства после получения «ивента» снимают скриншоты со всех онлайн устройств в компании. Далее происходит анализ скриншота по цвету (картинка «не черная»). Результат этого анализа/ответ отправляется обратно на сервер.<br>
 
Если картинка черная, серверное приложение повторно делает запрос на данное устройство, спустя 10 секунд. Далее цикл проверки на устройствах проводится еще раз и результат также снова отправляется на сервер. Это делается для того, чтобы точно зафиксировать проблему (возможно на экран попал черный кадр в видео).<br>
 
При подтверждении нештатной ситуации отправляется письмо на почту администратора. Эта почта указывается при включении этой функциональности.<br>


Скриншоты, снятые с помощью детектора, не хранятся вечно. Срок хранения скриншота три дня. Также они не должны появляться в «истории скриншота».
<!--T:6-->
=== '''Итоговый результат''' ===
=== '''Итоговый результат''' ===
Детектор черных экранов запускается только для конкретных компаний/заказчиков. По умолчанию он выключен.
После получения информации о проблеме начинается оперативное ее решение. Таким образом мы всегда знаем о проблеме первые и не заставляем лишний раз беспокоиться наших клиентов.
Включение и выключение мониторинга доступно через CLI.
</translate>
При включении данные передаются в настройки CLI.
Это:
*ID компании, для которой включаем детектор
* Можно передать платформу (или несколько платформ), для которой необходимо запустить мониторинг.
'''Например:''' передаем ANDROID и мониторинг включается только для устройств ANDROID
*E-mail адрес или несколько адресов на которые должно отправляться уведомление о нештатной ситуации
*Указанное время хранения скриншотов (по умолчанию 3 дня)

Текущая версия от 22:10, 24 октября 2023

Другие языки:

Описание функции

Функция детектора предназначена для определения внештатных ситуаций таких как возникновение черных экранов на устройствах, при этом система не обязательно находится в состояние ошибки, возможны ситуации с неправильным планированием трансляции, ошибкой менеджера или проблемами с каналом связи которые приводят к невозможности закачки контента до момента старта трансляции. Детектор черных экранов может определить подобную ситуацию и послать уведомления на почту пользователя/администратора системы для скорейшего устранения проблемы.

Пример отображения "Чёрного" экрана в личном кабинете пользователя


Причина

В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать.
Причины этой проблемы могут быть разными. От неподдерживаемых кодеков используемых в видео, до проблем с потерей соединения с сетью.
Поэтому было решено сделать автоматизированное решение, которое поможет более оперативно оповещать и работать с этой проблемой.

Концепт решения

Для решения проблемы и ее автоматизации было решено создать «Детектор черных экранов». Его функция – заранее предупреждать нас о случившейся на конкретном устройстве проблеме. Этот функционал позволяет работать нам проактивно и не ждать оповещения о проблеме от клиента.

Данный функционал не доступен пользователю в личном кабинете. Обратитесь для его включения к системному администратору.

Принцип действия

Детектор работает со всеми компаниями, которые используют наше ПО. По умолчанию он выключен и включается только на конкретную компанию.

У каждого компании работающей в нашем приложении есть свой персональный ID. Его можно найти в личном кабинете. К этому ID привязываются все устройства компании. Для запуска "детектора" - знание этого параметра необходимо.
При возникновении ошибки с «чёрным» экраном, на одном или нескольких устройствах наш сервер отправляет «ивент» на эти устройства. Устройство этот «ивент» запускает. В момент запуска «ивента» «детектор» делает скриншот. И по этому скриншоту проверяется наличие «черного» экрана.
После запуска детектора возможно получить два вида ответа:

  1. После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме.
  2. После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент". Промежуток для повторной отправки составляет 10 секунд.

В случае, если подтверждается второй вариант, то со стороны сервера отправляется уведомление на почту.

Указанная почта должна обязательно должна быть привязана к серверу, иначе уведомления о проблеме приходить не будут.

Итоговый результат

После получения информации о проблеме начинается оперативное ее решение. Таким образом мы всегда знаем о проблеме первые и не заставляем лишний раз беспокоиться наших клиентов.