GCP Compute Engine with Windows + Pixel Streaming - Microphone doesn't work

Hello,

I’m setting up a Compute Engine VM on Google Cloud in order to configure a Pixel Streaming server that is going to run a conversational avatar developed in Unreal Engine 5.

Upon finishing configuring everything, it is working correctly with the exception of the microphone, the browser enables the microphone as well as having permissions, but Pixel Streaming is not getting to recognize the audio.

DNS routing is being done to another domain with valid and correct SSL certificates, the firewall has been configured to allow all the necessary ports for the use of Pixel Streaming (all the indispensable ones for WebRTC).

I have tried creating services, configuring the Windows server itself and have not found the solution for this.

Thanks in advance

1 Like

Hi there Omendo!

Just to quick confirm firstly, have you done all the steps to setup the Pixel Streaming microphone here:

If you’ve done that and it’s still not working we can look into it further!

1 Like

Hi @MWillWallT

Thank you for your response.

I have already followed that step, I have also followed point by point the deployment guide in GCP that you have created and there has been no solution: PixelStreamingCloudGuide/Guides_UE_5/Pixel Streaming on GCP (Windows).md at main · TensorWorks/PixelStreamingCloudGuide · GitHub

Also, if I run it locally, the microphone works without any problem, the problem is when using the microphone on the Pixel Streaming server set up on the GCP Compute Engine machine.

Edit: Actually I just realized you’ve already set up SSL, let me look into this further. Sorry for the confusion!

Ah! I’m glad to hear you got some use out of my GCP guide, thank you!

Regarding the microphone, I suspect you need to setup HTTPS. When testing the microphone locally, Chrome and Firefox are happy with a standard HTTP connection, but as soon as it’s from the cloud / an insecure connection, browsers will block microphone and camera access.

In order to quickly check if this is the issue, there’s a small section on the PS VR docs page which goes through setting up a really basic certificate for HTTPS. See here:

Try following the steps there to create the certificate on the GCP PS infrastructure and re-attempt the PS mic. If this works then we know thats the cause!

Just note that I wouldn’t recommend using the example certificate for production, it’s not the most secure option.

Yes, I had already configured all the HTTPS part because I knew about this problem, as audio and video go over WebRTC, a secure connection is needed. With SSL certificates, everything seems to work perfectly, except for the microphone. I have checked in several browsers and with different microphones and there was no way. Is there some configuration point that is escaping?

I have the machine inside a VPC with some firewall rules (I have disabled them in case it could be some port that is stopping) and routed with an external DNS to an external domain. I have tried Compute Engine alone (no VPC) and it gives the same error.

It sounds as though you have everything set up as needed for this to work and have covered a lot of bases for trouble shooting (in regards to clearing firewall rules etc)

To better clear what part of this is failing, have you tried running your exact project on a different cloud platform? To my understanding GCP shouldn’t have any other configurations stopping the microphone from working (over any other platform at least). Running the project elsewhere and confirming microphone response can at least eliminate the issue laying in the project config.

I assume the microphone works just fine with a local Pixel Stream?