WebSocket Browser Client#

Overview#

By leveraging the WebSocket live-streaming Extensions, it is now possible to stream any Omniverse application to web browsers.

Using the provided front-end source code and sample application, you can even build your own interactive experiences. This can be used to create a variety of services:

  • Offering remote workflows

  • Using Omniverse application on phones, tablets or other devices

  • Having one-to-many collaborative sessions, where attendees can request control of the presentation

  • And more!

Built something you’d like to share or showcase? We’d love to hear about it!

Omniverse WebSocket live-streaming

Enabling the Extension#

  1. From the menu bar, navigate to Window > Extensions

  2. Using the search field of the Extension Manager, search for “Websocket Client” Extension

  3. Install and enable the omni.services.streamclient.websocket Extension

Note

Please note that it is not recommended to auto-load this Extension, as it will consume resources which may lead to sub-optimal experiences when not actively used.

User Manual#

Manual Launch#

Using the WebSocket live-stream Extension is a straightforward process:

  1. Enable the omni.services.streamclient.websocket Extension on your Omniverse applications (Kit, USD Composer, Isaac Sim, etc.)

  2. Find the IP address of the machine hosting the Omniverse application on your local network

  3. Navigate to the stream page in your favorite web browser:

    • For Kit: http://<server IP address>:8011/streaming/client

    • For USD Composer: http://<server IP address>:8111/streaming/client

    • For Isaac Sim: http://<server IP address>:8211/streaming/client

    • For Kaolin: http://<server IP address>:8311/streaming/client

  4. Click the “play” button to start streaming your Omniverse application

Note

  • For convenience, the URLs where the web application is exposed are available from the Streaming > Local Stream URLs top-level menu, where they can be copied to the clipboard for sharing.

  • Firefox Users on Linux may have to install additional video codecs for playback on the client browser. Ubuntu Users may wish to install sudo apt-get install ffmpeg for simplicity.

Scripted Launch#

From the command-line, or to deploy the solution using a scripted method, use the following snippets:

  • On Windows:

    1.\kit.bat apps/omni.create.kit ^
    2   --enable omni.services.streamclient.websocket ^
    3   --no-window
    
  • On Linux:

    1./kit.sh apps/omni.create.kit \
    2   --enable omni.services.streamclient.websocket \
    3   --no-window \
    4   --allow-root
    

Should the host be located on the infrastructure of a third-party Cloud provider, it may additionally be required that the following inbound ports be opened:

  • TCP port 8899, which can additionally be changed using the --/app/livestream/websocket/server_port=8899 application setting.

Additionally, you may select a software encoding solution in case the GPU on the machine hosting the Omniverse application does not support NvEnc (refer to the Video Encode and Decode GPU Support Matrix for the list of NvEnc-compatible devices):

# Enable the OpenH264 encoder in case NvEnc is not available on the host's GPU:
--/app/livestream/websocket/encoder_selection="OPENH264"

Current Limitations#

  • For a best user experience, it is recommended that only a single User at a time be provided with mouse or keyboard control while others remain in spectator mode.

  • Support for gamepads, touch inputs, or AR/VR devices may be limited.