This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Плагин WebStream

Внимание
Функциональность, описанная в этой статье, является экспериментальной.

Плагин WebStream позволяет транслировать аудиоданные и видеокадры, созданные приложением на базе UNIGINE, на неограниченное количество устройств через WebRTC (Web Real-Time Communication).

В целом, процесс выглядит следующим образом:

  1. Вы запускаете приложение UNIGINE на удаленном компьютере, рабочем столе внутри вашей организации, контейнере или виртуальной машине, предоставляемой службой облачного хостинга.
  2. UNIGINE использует ресурсы, доступные на этом компьютере (например, центральный процессор, графический процессор, память и т.д.), для запуска логики приложения и рендеринга кадров.
  3. Визуализированный результат непрерывно кодируется в виде медиапотока и передается через упрощенный набор веб-сервисов.
  4. Пользователи просматривают этот поток в стандартных веб-браузерах, работающих на других компьютерах и мобильных устройствах, и управляют процессом из своих браузеров, отправляя события клавиатуры, мыши и касания, а также пользовательские события, отправляемые с веб-страницы клиента, обратно в UNIGINE.

Запуск плагина#

Чтобы использовать плагин WebStream в вашем проекте, выполните следующие действия:

  1. Добавьте его через UNIGINE SDK Browser при создании проекта: нажмите Plugins, выберите опцию WebStream plugin и нажмите Add.

    Примечание
    Для существующего проекта выберите Other Actions -> Configure Project, добавьте плагин, как описано выше, и нажмите Update Configuration.
  2. Запустите плагин: укажите параметр командной строки 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.

Изображение без 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
	}
}

Доступны следующие настройки сервера:

document_root Каталог, из которого веб-сервер обслуживает страницы.
http_address

HTTP-адрес и порт для веб-сервера.

  • Предустановленный адрес 0.0.0.0 делает приложение доступным только на локальном компьютере. Чтобы разрешить доступ с других ПК в сети, укажите IP-адрес хост-компьютера в локальной сети.
  • По умолчанию установлен порт 8000. Вы можете указать любой другой доступный порт.
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 без каких-либо проблем.
Последнее обновление: 18.11.2024
Build: ()