OS: Windows 10 (Virtualized with libvirt)
UE Engine Version: 4.25.4
GPU: Nvidia 2080 Ti
GPU Driver: 461.72
If an RTP bridge is connected to the cirrus server before Google Chrome tries to connect, the UE4 Application crashes once video begins streaming to Google Chrome. The following sequence of events occur:
- Cirrus is started
- The pixel streaming UE4 app is started
- An RTP bridge is started an connected to Cirrus
- RTP is being streamed and can be tuned
- Google Chrome is started on a remote client
- navigate to cirrus server URL
- click start
- "waiting for video" message appears in Chrome
- "Play" triangle appears
- Click play Triangle
- A single video frame appears in chrome
- UE4 App crashes with popup reiterating log output
The log contains the following:
[2021.03.18-21.13.02:006][399]LogThreadingWindows: Error: Runnable thread NvVideoEncoder crashed.
[2021.03.18-21.13.02:007][399]LogWindows: Error: === Critical error: ===
[2021.03.18-21.13.02:007][399]LogWindows: Error:
[2021.03.18-21.13.02:007][399]LogWindows: Error: Assertion failed: State == EFrameState::Capturing [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/AVEncoder/Private/Microsoft/Windows/NvVideoEncoder.cpp] [Line: 695]
[2021.03.18-21.13.02:007][399]LogWindows: Error: Buffer 1 : Expected state 2, but found 3
[2021.03.18-21.13.02:007][399]LogWindows: Error:
[2021.03.18-21.13.02:007][399]LogWindows: Error:
[2021.03.18-21.13.02:007][399]LogWindows: Error:
[2021.03.18-21.13.02:007][399]LogWindows: Error: Crash in runnable thread NvVideoEncoder
[2021.03.18-21.13.02:058][402]LogExit: Executing StaticShutdownAfterError
[2021.03.18-21.13.02:058][402]LogWindows: FPlatformMisc::RequestExit(1)
[2021.03.18-21.13.02:058][402]LogCore: Engine exit requested (reason: Win RequestExit)
[2021.03.18-21.13.02:068][403]Log file closed, 03/18/21 17:13:02
If Google Chrome is connected to the cirrus server before the rtp bridge, everything seems to work smoothly. i.e., the following:
- Start Cirrus
- Start pixel streaming UE4 app
- Open google chrome on remote client and begin interactive pixel streaming session.
- Start RTP bridge on host
- Tune RTP stream on remote client
However, if Google Chrome is disconnected while the RTP bridge remains connected and then a Chrome instance attempts to reconnect, it cannot resume an interactive pixel streaming session until the RTP bridge is disconnected from the Cirrus server. When this occurs, the "click to start" message is displayed on chrome. Once clicked, the "WebRTC connected, waiting for video" message appears until the RTP bridge is terminated. Once the bridge is not longer running, Chrome can be refreshed and an interactive pixel streaming session can resume. At this point, subsequent RTP bridges can be instantiated.
Generally, Google Chrome cannot create a new pixel streaming session if existing RTP bridges are connected to Cirrus. If RTP bridges are connected the first time that a Google Chrome client attempts to connect, the Unreal application will crash.
OS: Windows 10 (Virtualized with libvirt)
UE Engine Version: 4.25.4
GPU: Nvidia 2080 Ti
GPU Driver: 461.72
If an RTP bridge is connected to the cirrus server before Google Chrome tries to connect, the UE4 Application crashes once video begins streaming to Google Chrome. The following sequence of events occur:
The log contains the following:
If Google Chrome is connected to the cirrus server before the rtp bridge, everything seems to work smoothly. i.e., the following:
However, if Google Chrome is disconnected while the RTP bridge remains connected and then a Chrome instance attempts to reconnect, it cannot resume an interactive pixel streaming session until the RTP bridge is disconnected from the Cirrus server. When this occurs, the "click to start" message is displayed on chrome. Once clicked, the "WebRTC connected, waiting for video" message appears until the RTP bridge is terminated. Once the bridge is not longer running, Chrome can be refreshed and an interactive pixel streaming session can resume. At this point, subsequent RTP bridges can be instantiated.
Generally, Google Chrome cannot create a new pixel streaming session if existing RTP bridges are connected to Cirrus. If RTP bridges are connected the first time that a Google Chrome client attempts to connect, the Unreal application will crash.