Проблемы с воспроизведением в iOS 12

Добрый день.
Возникли проблемы с воспроизведением в iOS 12. На android все работает хорошо.
На iphone в консоли возникает ошибка: Error: Invalid session state
Версия flashphoner 5.0.2640
Настройки прикрепил. Если что-то еще нужно, напишите пожалуйста.
 

Attachments

Max

Administrator
Staff member
Прежде всего, для работы веб-приложений WCS в браузерах на iOS (не только 12, предыдущих версий это тоже касается) на сервере должны быть настроены SSL сертификаты вместо self-signed, используемых по умолчанию. На этой странице приведен пример получения и настройки сертификатов от Let's Encrypt.
Кроме того, рекомендуем Вам обновиться до актуальной версии 5.1, процедура обновления описана здесь. Последние версии перечислены на этой странице. Если Ваш сервер не находится в промышленной эксплуатации, Вы можете вместо обновления провести чистую установку актуальной версии.
Также, судя по логам, при воспроизведении Ваших RTSP-потоков Вам может помочь настройка
Code:
rtp_force_synchronization=true
 
"Прежде всего, для работы веб-приложений WCS в браузерах на iOS (не только 12, предыдущих версий это тоже касается) на сервере должны быть настроены SSL сертификаты вместо self-signed, используемых по умолчанию."
Можете сообщить, почему раньше все работало и на self-signed, а теперь нужен обязательно сертификат. Изменились какие-то политики безопасности iOS? Нам нужно объяснить клиенту, почему раньше все работало без сертификата, а теперь он нужен обязательно.
 

Max

Administrator
Staff member
Нам нужно объяснить клиенту, почему раньше все работало без сертификата, а теперь он нужен обязательно.
Self-signed сертификаты не предназначены для использования в промышленной эксплуатации, только для тестирования.
Это можно обойти, если необходимо только воспроизведение, при этом WebSocket соединение необходимо устанавливать через порт 8080. Публикация будет работать только через WSS. Мы протестировали на версии 5.1.3600, в IOS 11 воспроизведение RTSP-потока через небезопасное WS соединение работает.
 
Добрый день. После обновления до версии 5.1.3600 захожу в панель https://ip:8443, получаю:
Страница недоступна
Сайт ip не отправил данных.
ERR_EMPTY_RESPONSE

В настройках flashphoner.properties стоит порт 8443, он открыт снаружи. В чем может быть проблема, где искать?
 

Max

Administrator
Staff member
Добрый день.
Порт 8443 предназначен для WSS соединений, на простые HTTPS запросы он не отвечает.
REST HTTPS запросы принимаются на порту 8444,веб-интерфейс отвечает на порту 8888. Полный список портов доступен на этой и этой страницах.
 
Спасибо, перепутал порт. Зашел по 9091 нормально. Следуя инструкции по установке Let's Encrypt сертификата зашел в веб-интерфейс и попытался загрузить созданные скриптом сертификаты + ключ. После нажатия на Import вылетает ошибка:

"Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Wed Oct 24 16:22:58 MSK 2018
There was an unexpected error (type=Internal Server Error, status=500).
javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement"

В инструкции написано, что в случае ошибок, нужно пользоваться keytool. Попробовал вбить команду в консоль, выдает:
-bash: keytool: команда не найдена

yum install keytool пишет, что такого пакета нет. Что можно сделать, чтобы импортировать сертификаты?
 

Max

Administrator
Staff member
Процедура импорта сертификатов при помощи keytool, который входит в состав JDK, подробно описана здесь. Исполняемый файл keytool находится в каталоге JDK_HOME/bin.
 
Спасибо. На этапе удаления хранилища получаю ошибку:

[root@srvbitrix bin]# keytool -delete -alias selfsigned -keystore /usr/local/FlashphonerWebCallServer/conf/wss.jks
Enter keystore password:
keytool error: java.lang.Exception: Alias <selfsigned> does not exist

В таком случае можно сразу переходить к следующему шагу?
 

Max

Administrator
Staff member
В таком случае можно сразу переходить к следующему шагу?
Да, переходите к следующему шагу
 
Выполнил все рекомендации. Ошибка повторяется. Новые логи скинул на почту. Проверьте пожалуйста.
 

Max

Administrator
Staff member
Пожалуйста, предоставьте SSH доступ к Вашему серверу, наши инженеры проверят, что происходит.
 

Max

Administrator
Staff member
Мы протестировали воспроизведение в веб-приложении Player, указывая wss://ваш_сервер:8443 в поле Connect. В iOS 11 воспроизведение RTSP-потока через Ваш сервер как в Chrome, так и в Safari. Отметим, что указывать необходимо доменное имя, на которое выдан сертификат, а не IP-адрес, в этом случае не должно быть проблем ни с воспроизведением, ни с сертификацией.
 
Здравствуйте. Разместили демо-плеер. Проверили в Сафари на ios 12, плеер действительно работает. Проверяем тот же демо-плеер на ios 10 - не работает.

Основная проблема же у нас в том, что не работает воспроизведение на ios в мобильном приложении. Как нам сообщили в техподдержке, в мобильном приложении используется WebView. Отображение идет как в браузере, но версия чаще всего существенно старее.
Поэтому мы не можем гарантировать, что какие-то сложные технологии будут работать именно в WebView, которое предоставляет iOS.

Вопрос: можно ли как-то заставить работать флешфонер в WebView? Как мы понимаем, если в том же Телеграме открыть ссылку, чтобы показало браузер в приложении, там тоже работает WebView. На том же телефоне с ios 12, где работало в Сафари, в браузере внутри Телеграма (предположительно с использованием WebView) воспроизведение не работало.
 

Max

Administrator
Staff member
Проверяем тот же демо-плеер на ios 10 - не работает.
На iOS 10 Safari не поддерживает WebRTC, для данной ОС поддерживается технология WSPlayer. Веб-приложение Player для того, чтобы играть поток по этой технологии, необходимо вызывать следующим образом:
Code:
https://demo.flashphoner.com/client2/examples/demo/streaming/player/player.html?mediaProvider=WSPlayer
На том же телефоне с ios 12, где работало в Сафари, в браузере внутри Телеграма (предположительно с использованием WebView) воспроизведение не работало
Скорее всего, причина та же - WebRTC не поддерживается. Попробуйте играть поток при помощи WSPlayer, либо, если и это не получится, по HLS в приложении HLS Player Minimal.
Также Вы можете разработать iOS приложение при помощи iOS SDK.
 
В прошлый раз когда у нас была подобная проблема, нам посоветовали в настройках кодеков поставить на первое место vp8 кажется, или что-то подобное. После чего в WebView у нас все работало. Сейчас что-то подобное не поможет? Варианты только WSPlayer или HLS?
 

Max

Administrator
Staff member
Варианты только WSPlayer или HLS?
Да, только эти варианты.
VP8 в iOS Safari вообще не поддерживается, возможно, речь шла об Android WebView.
 
Top