"omni.services.streamclient.webrtc" = {} fails to resolve

I am working through some of the DLI courses and specifically the “Building a 3D Product Configurator with OpenUSD and Omniverse” can’t be completed as “omni.services.streamclient.webrtc” = {} fails to resolve. Replacing it with “omni.kit.livestream.webrtc” = {} doesn’t expose the Streaming menu in the Composer UI.

Kit: 106.4.0
kit-app-template: USD Composer
OS: Windows 11

Error:

2024-11-22 23:39:38 [1,710ms] [Error] [omni.ext.plugin] Failed to resolve extension dependencies. Failure hints:
        [my_company.my_usd_composer-0.1.0] dependency: "omni.services.streamclient.webrtc" = { version="^" } can't be satisfied. Available versions:
         (none found)
 Synced registries:
         - kit/default         : found 1016 packages
         - kit/sdk             : found 334 packages
         - kit/community       : found 384 packages
         - kit/prod/sdk        : found 334 packages

2024-11-22 23:39:38 [1,711ms] [Error] [omni.kit.app.plugin] Failed to generate version file, kit file: my_company.my_usd_composer-0.1.0 failed to resolve dependencies.
2024-11-22 23:39:38 [1,712ms] [Error] [omni.kit.app.plugin] Exiting app because of dependency solver failure...

Hi and thanks for your post. Actually, that DLI course was specifically written for the 105.2 version of USD Composer. Namely 2023.2.5. In the new Kit 106.4 template, this streaming technology has been modified with new tools. So you can either follow the course exactly as is, in the older 2023.2.5, or stay with the new Kit 106.4 but there may be some differences in the tutorial.

However, if you want to still do some app streaming, you can follow the new method, which is documented here. GitHub - NVIDIA-Omniverse/web-viewer-sample: This sample demonstrates how a front-end client can present a streamed Omniverse Kit application and how to send messages between the two apps.

It didn’t work on Public servers, only “omni.services.streamclient.webrtc” extension provide ice_server to makesure p2p is connected

Hey @eric.craft.MH

Thanks for posting this info over from Discord! As Richard has stated, this course was recently upgraded to Kit 106 as it was originally tested against Kit 105 on USD Composer 2023.2.5. But as you and I troubleshooted over on Discord, your issue is unique and you are not even able to find the extension in the extension manager. Let me get some dev eyes on this and see what is going on as I believe it is a broader issue with your Kit 106 extension manager overall.

Hey @eric.craft.MH

I was informed that omni.services.streamclient.webrtc has been deprecated for kit 106.4. Probably what happened during our troubleshooting is that I had a local version installed somewhere (-_-) and that is why I was able to install it but you were not. So, please skip this step in the course and continue on with the course from there. We will be making the proper updates to the course thanks to your feedback.

Happy Thanksgiving, I hope you are enjoying some time off :D

  • Ash

Not sure what was the actual reason behind that, but actually I can’t get a reliable solution to stream USD content inside company, that it will be the primary use case for us.
Not even using “old” KIT 106.0.2, or other Composer release.
To me the webrtc is a keyfeature to rapidly showcase internally what is going on, without similar component we’re not able to push internetlly for a scaleup.

Tested on serveral different machine, from Windows 11 LTSC and a single “comsumer” card like 4090, to a Windows Server 2022 with multiple RTX A5500, nothing that I can do to have a “stable” enugh environment to share an http link to showcase project internally.

Please give us an advice on this topic, it’s something that will come back?

I am sorry to hear this. I am sure there is a solution to this that allows you to continue to use Omniverse. Just to clarify, we still do streaming across local networks, but the exact method and code has changed slightly. Did you check out this amazing example right here?. GitHub - NVIDIA-Omniverse/web-viewer-sample: This sample demonstrates how a front-end client can present a streamed Omniverse Kit application and how to send messages between the two apps

“To me the webrtc is a keyfeature to rapidly showcase internally what is going on” - can you explain what you mean by this so we could help further? There are plenty of ways to work with Omniverse on internal company server and still showcase your omniverse projects. It doesn’t have to be done with any kind of streaming. You can have any machine install USD viewer and view your projects. And Omniverse works great with normal remote desktop applications.

In big company usually we do have lot of restriction installing new software, so it’s not really easy even if Omniverse Streaming Client works well. Until we’ll come out of “testing” phase, it’s not possible at all have that available on managment computer ;)
To come out of testing phase, we do have to get the green light from managment. That’s why is important for us in this stage have webrtc available whitin KIT/Composer, just even to showcase rendering feature with almost no effort to compile/create a “propper” app. Otherwise it will be almost like compile any other engine software.

I’ll try to follow te web-view sample and let you know, but webrtc embedded was really more easy way.

Ok, way way more complicated, but I have something that is kinda working.
Nodejs Web-View is running, but only listening for localhost connection.
Help message say to use --host parameters to run it over network, but it looks like it doesnt work even adding to the running environement and even also adding to the command line as npm run dev --host

EDIT: nevermind, find that I have to start with : npm run dev -- --host

I’m still not able to use it from another machine, it looks like the node.js configured in the sample is set with default CORS settings, so basically doesn’t allow the page to load the stream from other machine, so it’s working only from the same machine, even using --host option

Ok let me get some expert help on streaming and get back to you. Sorry about this.

Having spoke to our best streaming experts on the issues, here are some suggestions:
https://docs.omniverse.nvidia.com/ovc/latest/developing_for_ovc/developing.html
and:
Containerizing and Local Validation — Omniverse Cloud That will help them validate streaming locally. An OV kit container built for streaming has two paths for consumption at scale.

  1. OVC as a managed Paas: NVIDIA Omniverse Cloud™ Platform-as-a-Service (PaaS) — Omniverse Cloud
  2. OVAS which is self deployed: Architecture Overview — Kit App Streaming API

The other big issue, is that we cannot control and advise you are YOUR network. You have the tools required from us, but you would have to work with your network admins, to allow these services through certain ports. If they are restricted in anyway, it is not our kit code, but those restrictions.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.