Плагин 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.
Просмотр выводимых данных#
Чтобы отобразить вывод из основного вьюпорта в веб-браузере, используйте HTTP-адрес, указанный в файле веб-конфигурации, следующим образом:
localhost:8000 | если приложение работает на том же ПК. |
---|---|
[IP-адрес устройства]:8000 |
если приложение работает на другом ПК в сети. Чтобы сделать приложение доступным для других ПК в сети, укажите IP-адрес хост-компьютера в файле веб-конфигурации. |
Если имя плеера не указано в адресе, т.е. ссылка выглядит так:
-
localhost:8000/index.html?video=
или
- localhost:8000
то изображение передается так, как его рендерит Main Player.
Изображение движка: | Изображение в веб-браузере: |
|
|
Чтобы рендерить с определенной камеры, добавьте имя камеры (/index.html?video=ИмяКамеры) в адрес:
-
localhost:8000/index.html?video=ИмяКамеры
или
- [IP-адрес устройства]:8000/index.html?video=ИмяКамеры
Если камеры с указанным именем не существует в текущем мире на сервере потоковой передачи, вы увидите резервное изображение с текущей камеры сервера, но без постэффектов и GUI.
Файл веб-конфигурации#
Плагин поставляется с файлом 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
}
}
Доступны следующие настройки сервера:
Также есть раздел с настройками пользовательского ввода:
enabled |
Разрешает или запрещает обработку сервером пользовательских данных, вводимых из веб-браузера. Когда ввод данных запрещен, плагин можно использовать без режима Offscreen без каких-либо проблем. |
---|