Логгирование событий веб приложения на сервер Flashphoner

Здравствуйте,

у меня возникла проблема при запуске веб-приложения, воспроизводящего трансляции видеофайла с диска, через сервер Flashphoner.
На сервере ffmpeg преобразует видеофайл на диске в rtmp поток, с именем которое я указываю в опциях стрима в веб-приложении.
Приложение использует WebRTC для воспроизведения потоков.
Когда я запускаю веб-приложение в Google Chrome на обычном компьютере с Windows 10, оно работает без ошибок, показывает транслируемый файл.
Когда я запускаю веб-приложение в родном браузере телевизора Samsung, с ОС Tizen, браузер закрывается/крашится практически в ту же секунду.

Стоит задача понять в чем может быть причина закрытия браузера.

Другие популярные сайты и сайты локальной сети браузер Tizen открывает без проблем. Когда я убираю из кода команду, запускающую стрим (stream.play()) - браузер корректно отображает все остальные элементы приложения без ошибок, а также показывает сообщение о том, что подключение к серверу Flashphoner успешно установлено (я отображаю сообщение на странице вручную).
Я пробовал изменить разрешение потока в настройках стрима в коде на 100px x 100px, браузер с приложением все равно падает при запуске stream.play().
Так же пробовал запустить стрим с демо веб-страницы Flashphoner в разделе Player. В тот момент когда должен прийти поток с сервера, браузер падает.
Протестировать на другом браузере Samsung TV не представляется возможным. В магазине приложений Tizen нет других браузеров.
ОС Tizen последней версии - 5.5. Там есть поддержка websockets. https://developer.samsung.com/smarttv/develop/specifications/web-engine-specifications.html.
Возможно было бы легче понять в чем причина, если можно было выводить ошибки, возникающие во время работы приложения на экран. Но браузер слишком быстро падает, прежде чем отобразить что-либо.

Подскажите, пожалуйста, возможные способы откладки приложения в такой ситуации.

P.S. Можно ли отправлять логи консоли браузера на сервер Flashphoner?
Например то что ручным методом выводится в консоль браузера через команды console.log или console.error(). Я пытался найти подобные сообщения приложения в логах Flashphoner на сервере, предварительно настроив logger: {push: true} в приложении, но не нашел ничего, кроме сообщений непосредственно относящихся к событиям Flashphoner.
 
Last edited:

Max

Administrator
Staff member
Добрый день.
Стоит задача понять в чем может быть причина закрытия браузера.
Скорее всего причина в том, что поддержка WebRTC в браузере Tizen заявлена только частично
1611899860283.png

Поэтому рассмотрите, пожалуйста, использование HLS для проигрывания в этом браузере.
P.S. Можно ли отправлять логи консоли браузера на сервер Flashphoner? Например то что ручным методом выводится в консоль браузера через команды console.log или console.error(). Я пытался найти подобные сообщения приложения в логах Flashphoner на сервере, предварительно настроив logger: {push: true} в приложении, но не нашел ничего, кроме сообщений непосредственно относящихся к событиям Flashphoner.
Да, можно, но событие должно быть залогировано через Web SDK логгер, например
Code:
    // Call Web SDK logger function info to log event on INFO level
    Flashphoner.getLogger().info("custom", "Custom log before stream creation");
    // Create stream and start to play
    stream = session.createStream(options).on(STREAM_STATUS.PENDING, function (stream) {
          ...
    });
    stream.play();
В этом случае в логе сервера будет и Ваше сообщение:
Code:
12:53:06,929 INFO           WCS4Handler - DISCONNECT-CLIENT-pool-6-thread-9
[-- BEGIN CLIENT LOG --]
...
LOGS:
12:51:35 INFO websocket - "Initialized"
12:51:35 INFO webrtc - "Initialized"
12:51:50 INFO custom - "Custom log before stream creation"
12:51:35 INFO core - "Initialized"
...
Подробнее о логировании в WebSDK читайте здесь.
К сожалению, краш браузера таким образом залогировать, конечно, нельзя, только то, что происходило до него.
 
Добрый день.

Скорее всего причина в том, что поддержка WebRTC в браузере Tizen заявлена только частично
View attachment 2246
Поэтому рассмотрите, пожалуйста, использование HLS для проигрывания в этом браузере.

Да, можно, но событие должно быть залогировано через Web SDK логгер, например
Code:
    // Call Web SDK logger function info to log event on INFO level
    Flashphoner.getLogger().info("custom", "Custom log before stream creation");
    // Create stream and start to play
    stream = session.createStream(options).on(STREAM_STATUS.PENDING, function (stream) {
          ...
    });
    stream.play();
В этом случае в логе сервера будет и Ваше сообщение:
Code:
12:53:06,929 INFO           WCS4Handler - DISCONNECT-CLIENT-pool-6-thread-9
[-- BEGIN CLIENT LOG --]
...
LOGS:
12:51:35 INFO websocket - "Initialized"
12:51:35 INFO webrtc - "Initialized"
12:51:50 INFO custom - "Custom log before stream creation"
12:51:35 INFO core - "Initialized"
...
Подробнее о логировании в WebSDK читайте здесь.
К сожалению, краш браузера таким образом залогировать, конечно, нельзя, только то, что происходило до него.
Спасибо! Попробуем проверить через HLS.
 
Top