Unity-Technologies / UnityRenderStreaming

Streaming server for Unity
Other
1.31k stars 365 forks source link

[BUG]: Video player not working on Local System by accessing Public IP of Windows Server #640

Closed praveenjha-github closed 2 years ago

praveenjha-github commented 2 years ago

Package version

Others

Environment

* OS: Windows 11
* Unity version: Unity 2019.4.32f1
* Graphics API: Radeon Graphics
* Browser: Google Chrome
* Unity Package Version: release/3.0.1

Steps To Reproduce

I have made a VM instance of windows on GCP and there i have uploaded both the WebServer and also the Standalone Build File of Unity.

I have also managed the Inbound Firewall Rules in Windows Server Machine and also the Outbound Firewall rules.

Current Behavior

Render streaming works with Standalone Build File and WebServer on my local computer and when I deploy the Webserver and Standalone Build File on a windows server on GCP it also works fine with the Public IP in the Chrome browser in Windows Server Machine.

I am able to see Render Streaming by accessing Public(External) IP of Windows Server in Chrome Browser inside Windows Server Machine.

I am using the 3.1.0 release.

Expected Behavior

But when I access the public IP of Windows Server Machine in my Local/Another system I am not able to see the Render Streaming.

I have also updated the Firewall Rules in my Local system, then also i am unable to see Render Streaming in my Local System with same Public IP of Windows Server Machine

Anything else?

Any help would be greatly appreciated!

karasusan commented 2 years ago

Could you check this page? https://docs.unity3d.com/Packages/com.unity.renderstreaming@3.1/manual/turnserver.html

praveenjha-github commented 2 years ago

@karasusan Thanks for your reply,

I have verified my TURN server too, then also i am not able to get Render Stream in my local system by accessing Public IP of Windows server system in my Local system.

karasusan commented 2 years ago

@praveenjha-github Can you check the log of the TURN server to see whether stream video via the TURN server or not.

karasusan commented 2 years ago

memo: URS-391

praveenjha-github commented 2 years ago

@karasusan I am able to see the log of my TURN server.

pic1

karasusan commented 2 years ago

@praveenjha-github Looks like the configuration is broken.

praveenjha-github commented 2 years ago

@karasusan

So, any suggestion how can i fix it. As, i have fully followed this article https://docs.unity3d.com/Packages/com.unity.renderstreaming@3.1/manual/turnserver.html

praveenjha-github commented 2 years ago

@karasusan

Now the Log Of TURN Server is also showing:- log turn

I am stating my problem again,

This problem i basically compiles in Two Combinations which i discovered:-

1st Combination :- When i deploy WebServer.exe file on the VM instance of windows on GCP and i also have Standalone Executable file of unity on same windows server on GCP, so i am able to get the Render Stream in the Chrome Browser of Windows Server machine, but if i try to access Public IP(external IP) of Windows server machine in another system so Render Streaming Fails.

Webserver.exe started on the Windows Server machine on GCP:- webserver

Able to see Render Stream on the Chrome browser of Windows server machine:- VM server Chrome Render stream

IP address of Windows server machine on GCP:- ip address of VM windows

IP address on chrome of Windows server machine on GCP:- ip add at VM chrome

The IP add of My VM Instance of Windows on GCP:- VM of windows

Now at same time on another system /local system (except Windows Server system)

tries to access the same IP add on chrome browser:- public IP at another system

So, now Render Stream fails:- another system render stream

2rd Combination:- When i deploy WebServer.exe file on the VM instance of windows on GCP and i have Unity Runtime on (local/another system), so i am able to get the Render Stream in the Chrome Browser of local/another system), but if i try to access Public IP(external IP) of Windows server machine in another system so Render Streaming Fails.

UnityRuntime

So, by this Render Streaming is only possible in that system in which i have both WebServer.exe and Standalone Executable. If the system changes so Render Streaming fails.

karasusan commented 2 years ago

@praveenjha-github Thank you for pointing this out. Perhaps the connection to the TURN is successful, but it looks like the streaming is not flowing through the TURN. This is a difficult point for many users, so hopefully we can provide some tools to check the problem in the future.

praveenjha-github commented 2 years ago

@karasusan Thanks for your reply.

Can you please tell how can i verify the Streaming flow through my TURN Server?

karasusan commented 2 years ago

@praveenjha-github For example, you can check the ICE exchanging using the Tricle ICE in the WebRTC sample. https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

praveenjha-github commented 2 years ago

@karasusan

I have seen my ICE exchanging, there i am getting this result, after clicking (Add Server) and then (Gather Candidates).

pic3 pic4

karasusan commented 2 years ago

@praveenjha-github I can see errors in your screenshot. Can you solve errors? I searched and hit this post. https://github.com/coturn/coturn/issues/678

kannan-xiao4 commented 2 years ago

@praveenjha-github Hi, could you check these errors? If any other update, we will close this ticket.