Run Container Locally

The main Omniverse Renderer container can also be run locally on your workstation. In this section, we provide a short overview of the most important steps to set up the container.

Please note that the renderer has been designed to send the RTP stream to a UDP port that has been negotiated with the downstream client according to the section RTP over UDP Streaming. Since in some local setups the downstream client required to do the port negotiation is missing, we can disable the port negotiation and also bypass the SDR-based stream management (e.g. calling the /add and /delete endpoints) by setting the IAORMS_mock_streaming_enabled environment variable to true (see Microservice Parameters). The container will start streaming video on port 9020 and audio on port 9021.

Download the scene at https://catalog.ngc.nvidia.com/orgs/nvidia/teams/ucs-ms/resources/default-avatar-scene.

Run the Omniverse renderer container:

docker run --env IAORMS_mock_streaming_enabled=true -it --rm --gpus all --network=host --name renderer-ms -v /path/to/your/asset/folder/:/home/ace/asset nvcr.io/eevaigoeixww/animation/ia-omniverse-renderer-microservice:<latest-version>

Where /path/to/your/asset/folder/ is the directory that contains the USD scene. The scene name is defined with the environment variable IAORMS_scene_directory (see Microservice Parameters).

Renderer will be ready when the following output is displayed. It could take up to 10min the first time, due to shaders compilation.

Streaming server started successfully

To inspect the video stream run:

gst-launch-1.0 -v udpsrc port=9020 caps="application/x-rtp" ! rtpjitterbuffer drop-on-latency=true latency=20 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! queue ! autovideosink sync=false

To inspect the audio stream run:

gst-launch-1.0 -v udpsrc port=9021 caps="application/x-rtp,clock-rate=16000" ! rtpjitterbuffer ! rtpL16depay ! audioconvert ! autoaudiosink sync=false