Unable to use webrtc when I run runheadless.webrtc.sh in remote headless container

I start the headless container with the following command:

./runheadless.webrtc.sh --no-window --allow-root --gpus all --rm --network=host nvcr.io/nvidia/isaac-sim:2022.1.0


and then access the url:

http://<ip address>:8211/streaming/webrtc-client?server=<ip address>

but the the browser shows a gray screen with nothing like this:


How can I solve this problem?

Additional information:
OS version:

Hi. Does streaming works when clicking that red play button?

No. Nothing is displayed just the red button disappears.

Does the native streaming or websocket modes work?

I had the same problem.
I use native headless and connect it from the omniverse streaming client successfully, but websocket and webrtc show a gray screen after pressing the start button.

1 Like

Hi @tuu4208 , can you share the error logs with some more information?

I have exactly the same problem.

When I run ./runheadless.webrtc.sh on a container, the browser shows the same grey screen as above but it does nothing when I press the play button. This is the same even if I try to access the docker from the same PC (e.g., localhost).

Some further information:

  • WebRTC works if I start it from the native app (and connect to it locally, on the same network, and across networks with VPN).
  • On Docker, websocket and native stream work well (if I connect to it locally, on the same network, and across networks with VPN).

Are there some further WebRTC settings needed specifically for the containers?

In websocket modes.

The final reason is that the webrtc mode communicates using fixed ports and does not provide a way to modify the configuration. These ports were not open in my container environment, which caused this problem.

I think WebRTC method chooses a new port if the default one is taken (e.g., [omni.services.transport.server.http.server] http server was meant to start on 8211 but port is taken, starting on port 8034 instead). All the ports WebRTC chooses should be open since we use the --network=host command while running the containers. Am I wrong?

Did you solve the problem? If yes, how did you do exactly?

My specific problem is that the container port mapping to the outside is random, so hard-coded port mapping to a different port causing the problem. Later, I used a virtual machine to ensure that ports are accurate, which can solve this problem.

Maybe I don’t have the same problem (e.g., the websocket socket is directly mapped outside correctly: I guess should be the same with WebRTC).

@Sheikh_Dawood @rthaker do you have any info regarding this issue?

I have exactly the same problem. Any updates?

Any updates on this topic? @Sheikh_Dawood

When I run the webrtc with the --/app/livestream/logLevel=verboseoption, I get the following errors during startup which I believe to be related to webrtc:

2023-06-01 07:32:09 [5,265ms] [Warning] [omni.services.transport.server.http.server] http server was meant to start on 8211 but port is taken, starting on port 8068 instead
[5.298s] [ext: omni.kit.livestream.webrtc-0.1.0] startup

Active user not found. Using default user [kiosk]2023-06-01 07:32:09 [5,288ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEncUtil: #6(M)[2023-06-01 07:32:09,419]=07:32:09=00000{1493626207712371803}&CC7C5461& Computing SPS/PPS headers.
2023-06-01 07:32:09 [5,288ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: VideoFrameContext: #7(W)[2023-06-01 07:32:09,419]=07:32:09=00000{1493626207712371803}&0564BB28& Couldn’t find VideoFrameContext for this thread.
2023-06-01 07:32:09 [5,288ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #9(M)[2023-06-01 07:32:09,419]=07:32:09=00000{1493626207712371803}&1E959A86& Initializing Adapter context
2023-06-01 07:32:09 [5,288ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #2(M)[2023-06-01 07:32:09,419]=07:32:09=00000{1493626207712371803}&F0E847F4& Initialized context for adapter 0: 1280 x 720 @ 60.0 Hz
2023-06-01 07:32:09 [5,288ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #4(M)[2023-06-01 07:32:09,419]=07:32:09=00000{1493626207712371803}&9A64D99C& System is NOT co-proc.
2023-06-01 07:32:09 [5,337ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #5(M)[2023-06-01 07:32:09,469]=07:32:09=00049{1493626207712371803}&21C9B327& GPU memory usage: used = 12972.062500, free = 35696.500000 MB, total = 48668.562500 MB
2023-06-01 07:32:09 [5,338ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #6(M)[2023-06-01 07:32:09,469]=07:32:09=00000{1493626207712371803}&DD40CDEB& Initialized CUDA for device ‘NVIDIA RTX A6000’ (SM 8.6) in compute mode ‘CU_COMPUTEMODE_DEFAULT’.
2023-06-01 07:32:09 [5,338ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: VideoEncoder: #8(M)[2023-06-01 07:32:09,469]=07:32:09=00000{1493626207712371803}&8BAD092A& Initializing NvEnc10VideoEncoder.
2023-06-01 07:32:09 [5,338ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEnc10VideoEncoder: #9(M)[2023-06-01 07:32:09,469]=07:32:09=00000{1493626207712371803}&2A6D6983& Using NvEnc header version 10.0.
2023-06-01 07:32:09 [5,342ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: NvEncUtil: #0(W)[2023-06-01 07:32:09,474]=07:32:09=00000{1493626207712371803}&7F9BD44D& Video format not supported, skipping preset.
2023-06-01 07:32:09 [5,343ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: NvEncUtil: #2(W)[2023-06-01 07:32:09,474]=07:32:09=00000{1493626207712371803}&7F9BD44D& Video format not supported, skipping preset.
2023-06-01 07:32:09 [5,343ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: NvEncUtil: #4(W)[2023-06-01 07:32:09,474]=07:32:09=00000{1493626207712371803}&7F9BD44D& Video format not supported, skipping preset.
2023-06-01 07:32:09 [5,343ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: NvEncUtil: #6(W)[2023-06-01 07:32:09,474]=07:32:09=00000{1493626207712371803}&7F9BD44D& Video format not supported, skipping preset.
2023-06-01 07:32:09 [5,343ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: NvEncUtil: #8(W)[2023-06-01 07:32:09,474]=07:32:09=00000{1493626207712371803}&7F9BD44D& Video format not supported, skipping preset.
2023-06-01 07:32:09 [5,343ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: NvEncUtil: #0(W)[2023-06-01 07:32:09,474]=07:32:09=00000{1493626207712371803}&7F9BD44D& Video format not supported, skipping preset.
2023-06-01 07:32:09 [5,343ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #1(M)[2023-06-01 07:32:09,474]=07:32:09=00000{1493626207712371803}&21C9B327& GPU memory usage: used = 12972.062500, free = 35696.500000 MB, total = 48668.562500 MB
2023-06-01 07:32:09 [5,367ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: VideoEncoder: #5(W)[2023-06-01 07:32:09,499]=07:32:09=00000{1493626207712371803}&FB11B4FE& VideoEncoder was not deinitialized prior to destruction!
2023-06-01 07:32:09 [5,367ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEncUtil: #6(M)[2023-06-01 07:32:09,499]=07:32:09=00000{1493626207712371803}&B4368309& Finished computing SPS/PPS headers.
2023-06-01 07:32:09 [5,368ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: Signaling: #1(M)[2023-06-01 07:32:09,499]=07:32:09=00000{8167984385094387598}&1165739F& Signaling server started.
Streaming server started.

And then the following errors when I try to connect from a browser:

2023-06-01 07:35:02 [178,457ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #0(M)[2023-06-01 07:35:02,588]=07:35:02=00000{8167984385094387598}&1E959A86& Initializing Adapter context
2023-06-01 07:35:02 [178,457ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #3(M)[2023-06-01 07:35:02,588]=07:35:02=00000{8167984385094387598}&F0E847F4& Initialized context for adapter 0: 1280 x 720 @ 60.0 Hz
2023-06-01 07:35:02 [178,457ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #5(M)[2023-06-01 07:35:02,589]=07:35:02=00000{8167984385094387598}&9A64D99C& System is NOT co-proc.
2023-06-01 07:35:02 [178,522ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #1(M)[2023-06-01 07:35:02,654]=07:35:02=00065{8167984385094387598}&21C9B327& GPU memory usage: used = 7742.875000, free = 40925.687500 MB, total = 48668.562500 MB
2023-06-01 07:35:02 [178,522ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: AdapterContext: #2(M)[2023-06-01 07:35:02,654]=07:35:02=00000{8167984385094387598}&DD40CDEB& Initialized CUDA for device ‘NVIDIA RTX A6000’ (SM 8.6) in compute mode ‘CU_COMPUTEMODE_DEFAULT’.
2023-06-01 07:35:02 [178,523ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #8(W)[2023-06-01 07:35:02,654]=07:35:02=00000{11115815066630238539}&00000000& (pacing_controller.cc:154): Pacer min_packet_limit_2 disable_pacing_ 0
2023-06-01 07:35:02 [178,523ms] [Error] [carb.livestream-rtc.plugin] StreamSDK: PeerInstance: #8(E)[2023-06-01 07:35:02,655]=07:35:02=00000{8167984385094387598}&CBFBF6A7& (Peer ID: 2) OnRenegotiationNeeded
2023-06-01 07:35:02 [178,524ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #0(W)[2023-06-01 07:35:02,655]=07:35:02=00000{8167984385094387598}&00000000& (used_ids.h:55): Duplicate id found. Reassigning from 96 to 127
2023-06-01 07:35:02 [178,524ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #1(W)[2023-06-01 07:35:02,655]=07:35:02=00000{8167984385094387598}&00000000& (used_ids.h:55): Duplicate id found. Reassigning from 98 to 126
2023-06-01 07:35:02 [178,524ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #2(W)[2023-06-01 07:35:02,655]=07:35:02=00000{8167984385094387598}&00000000& (used_ids.h:55): Duplicate id found. Reassigning from 100 to 125
2023-06-01 07:35:02 [178,524ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #3(W)[2023-06-01 07:35:02,655]=07:35:02=00000{8167984385094387598}&00000000& (used_ids.h:55): Duplicate id found. Reassigning from 102 to 124
2023-06-01 07:35:02 [178,540ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: VideoEncoder: #7(M)[2023-06-01 07:35:02,672]=07:35:02=00000{11115815066630238539}&8BAD092A& Initializing NvEnc10VideoEncoder.
2023-06-01 07:35:02 [178,540ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEnc10VideoEncoder: #8(M)[2023-06-01 07:35:02,672]=07:35:02=00000{11115815066630238539}&2A6D6983& Using NvEnc header version 10.0.
2023-06-01 07:35:02 [178,543ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEnc10VideoEncoder: #4(M)[2023-06-01 07:35:02,675]=07:35:02=00000{11115815066630238539}&A88A086D& Max number of reference frames configured 4 for 1920x1080 at frame: 0
2023-06-01 07:35:02 [178,543ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEnc10VideoEncoder: #5(M)[2023-06-01 07:35:02,675]=07:35:02=00000{11115815066630238539}&A08C34AC& H264 video format selected
2023-06-01 07:35:02 [178,543ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEnc10VideoEncoder: #6(M)[2023-06-01 07:35:02,675]=07:35:02=00000{11115815066630238539}&B5A73036& RateControl mode NV_ENC_PARAMS_RC_CBR is selected for 1080@60 at frame: 0
2023-06-01 07:35:02 [178,543ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEnc10VideoEncoder: #7(M)[2023-06-01 07:35:02,675]=07:35:02=00000{11115815066630238539}&E96C44F6& Multi pass encoding configured as NV_ENC_TWO_PASS_QUARTER_RESOLUTION at frame: 0
2023-06-01 07:35:02 [178,544ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEnc10VideoEncoder: #0(M)[2023-06-01 07:35:02,675]=07:35:02=00000{11115815066630238539}&4961242A& Encoder preset configured PRESET_LOW_LATENCY_HP
2023-06-01 07:35:02 [178,544ms] [Fatal] [carb.livestream-rtc.plugin] StreamSDK: NvEnc10VideoEncoder: #1(M)[2023-06-01 07:35:02,675]=07:35:02=00000{11115815066630238539}&C15E78BB& Encoder preset used PRESET_NVENC_P3
2023-06-01 07:35:02 [178,572ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #7(W)[2023-06-01 07:35:02,704]=07:35:02=00000{11115815066630238539}&00000000& (balanced_degradation_settings.cc:96): Unsupported size, value ignored.
2023-06-01 07:35:02 [178,572ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #8(W)[2023-06-01 07:35:02,704]=07:35:02=00000{11115815066630238539}&00000000& (balanced_degradation_settings.cc:96): Unsupported size, value ignored.
2023-06-01 07:35:02 [178,572ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #9(W)[2023-06-01 07:35:02,704]=07:35:02=00000{11115815066630238539}&00000000& (balanced_degradation_settings.cc:96): Unsupported size, value ignored.
2023-06-01 07:35:02 [178,573ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #4(W)[2023-06-01 07:35:02,704]=07:35:02=00000{17797842939666438197}&00000000& (forward_error_correction.cc:95): FEC encode configuration, min_fec_packets: 0 max_fec_packets: 48
2023-06-01 07:35:02 [178,573ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #3(W)[2023-06-01 07:35:02,704]=07:35:02=00000{17797842939666438197}&00000000& (rtp_video_sender.cc:107): Transmitting payload type without picture ID using NACK+ULPFEC is a waste of bandwidth since ULPFEC packets also have to be retransmitted. Disabling ULPFEC.
2023-06-01 07:35:02 [178,586ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #6(W)[2023-06-01 07:35:02,717]=07:35:02=00010{16530539155952229181}&00000000& (p2p_transport_channel.cc:1247): Failed to resolve ICE candidate hostname 87e9305f-2f75-450c-8083-5303f887b4e1.local with error -2
2023-06-01 07:35:02 [178,586ms] [Warning] [carb.livestream-rtc.plugin] StreamSDK: WebRtc: #7(W)[2023-06-01 07:35:02,717]=07:35:02=00000{16530539155952229181}&00000000& (thread.cc:807): Waiting for the thread to join, but blocking calls have been disallowed

Hi. Does Websocket or Native livestreaming works? Are you able to reproduce the issue with Create or Code?

Websocket works. I do not know about Native streaming as I can only check the streaming via a Mac. Please note that WebRTC works if I stream from the native app; the problem is specific to the Isaac Sim container, which is our main usage.

I am not sure about the Create or Code, as I didn’t find their docker images in your database to test them out.

Apologies for the late reply. Can you share the full Isaac Sim logs when running native and also when running from the container please?

I have attached the two logs you asked for. Thank you in advance!

kit_20230626_075153_docker.log (1.9 MB)
kit_20230626_093711_native.log (1.4 MB)

@ozhanozen I am not reproduce those error with a container. It works on Safari on a Mac with Isaac Sim running in a container on Ubuntu.

Do you run the native app on the same machine as the one with container?

@Sheikh_Dawood, for me, it works neither from Safari nor Chrome. Also, I tested using other Macs (same host PC), and the results were the same.

Yes, I run the native app on the same machine as the one with the container.