Плагин WebStream
Плагин WebStream позволяет транслировать аудиоданные и видеокадры, созданные приложением на базе UNIGINE, на неограниченное количество устройств через WebRTC (Web Real-Time Communication).
В целом, процесс выглядит следующим образом:
- Вы запускаете приложение UNIGINE на удаленном компьютере, рабочем столе внутри вашей организации, контейнере или виртуальной машине, предоставляемой службой облачного хостинга.
- UNIGINE использует ресурсы, доступные на этом компьютере (например, центральный процессор, графический процессор, память и т.д.), для запуска логики приложения и рендеринга кадров.
- Визуализированный результат непрерывно кодируется в виде медиапотока и передается через упрощенный набор веб-сервисов.
- Пользователи просматривают этот поток в стандартных веб-браузерах, работающих на других компьютерах и мобильных устройствах, и управляют процессом из своих браузеров, отправляя события клавиатуры, мыши и касания, а также пользовательские события, отправляемые с веб-страницы клиента, обратно в UNIGINE.
Запуск плагина#
Чтобы использовать плагин WebStream в вашем проекте, выполните следующие действия:
-
Добавьте его через UNIGINE SDK Browser при создании проекта: нажмите Plugins, выберите опцию WebStream plugin и нажмите Add.
Для существующего проекта выберите Other Actions -> Configure Project, добавьте плагин, как описано выше, и нажмите Update Configuration. -
Запустите плагин: укажите параметр командной строки extern_plugin при запуске приложения.
main_x64 -extern_plugin "UnigineWebStream"
Кроме того, вы можете включить режим Offscreen, указав параметр командной строки -video_offscreen. Это позволит вам запустить приложение в режиме headless без отображения окна.
main_x64 -extern_plugin "UnigineWebStream" -video_offscreen 1
- Если вы пропустите этот параметр, окно приложения будет отображаться вместе с видео и входными потоками. Однако в этом случае входные данные могут обрабатываться неправильно.
- Если пользовательский ввод запрещен, плагин можно использовать без режима Offscreen.
Просмотр выводимых данных#
Чтобы просмотреть выводимые данные в веб-браузере, укажите localhost:8000 или [device-IP-address]:8000 в адресной строке.
Файл веб-конфигурации#
Плагин поставляется с файлом webconfig.json, который содержит настройки, позволяющие настроить процесс трансляции. Вы можете изменить настройки сервера (например, указать пользовательский HTTP-адрес для просмотра выводимых данных в браузере) и разрешить или запретить ввод данных пользователем.
Вот пример файла конфигурации по умолчанию:
{
"server":{
"document_root":"./plugins/Unigine/WebStream/html",
"http_address":"0.0.0.0:8000",
"enable_directory_listing" : false,
"num_threads" : 4,
"disable_xframe_options" : false,
"access_control_allow_origin" : "*",
"enable_keep_alive" : true,
"keep_alive_timeout_ms" : 1000,
"decode_url" : false,
"ssl_certificate" : "",
"global_auth_file" : "",
"authentication_domain" : "",
"extra_options" : []
},
"input":{
"enabled" : true
}
}
Доступны следующие настройки сервера:
document_root | Каталог, из которого веб-сервер обслуживает страницы. |
---|---|
http_address | HTTP-адрес и порт для веб-сервера. |
enable_directory_listing | Флажок, указывающий, могут ли пользователи просматривать содержимое папки, указанной в document_root, через веб-браузер или получать доступ только к заранее определенным страницам. |
num_threads | Количество потоков для веб-сервера. Не рекомендуется устанавливать значение меньше 2. |
disable_xframe_options | Флаг, указывающий, включен ли заголовок ответа X-Frame-Option. |
access_control_allow_origin | Заголовок ответа Access-Control-Allow-Origin. По умолчанию для него установлено значение *, что позволяет веб-браузеру запрашивать код из любого источника. |
enable_keep_alive | Значение, указывающее, включен ли заголовок Keep-Alive. |
keep_alive_timeout_ms | Время в миллисекундах, в течение которого хост будет поддерживать незанятое соединение открытым. |
decode_url | Флаг, указывающий, включено ли декодирование URL-адреса. |
ssl_certificate | Путь к сертификату, требуемому для HTTPS. |
global_auth_file | Путь к глобальному файлу аутентификации. |
authentication_domain | Домен аутентификации. |
extra_options | Список дополнительных настроек сервера. |
Также есть раздел с настройками пользовательского ввода:
enabled |
Разрешает или запрещает обработку сервером пользовательских данных, вводимых из веб-браузера. Когда ввод данных запрещен, плагин можно использовать без режима Offscreen без каких-либо проблем. |
---|