Remote Play from an Azure VM?
Hello. I'm experimenting with the Steam Remote Play feature using an Azure Virtual Machine. The VM is running Windows Server 2022, and appears to load TransOcean 2 without a problem on the host (Azure) server, although it is slow (I think this is because a good GPU on Azure is expensive, so I've gone with something more basic). When I try to stream from one of two test laptops, one running Windows 11 and one running Linux Mint, the stream crashes, even though Steam runs fine on the host machine, and doesn't give any indication of what's wrong (I'm actually starting this discussion from Steam on the Azure host machine).

I'm wondering if my configuration on Azure is wrong. I've left the network settings in default, albeit with the Bastion running so that I can access the server without a public IP. If there's some specific box that I have to check, or NSG rule that I have to open, I'm thinking that could be it, but I don't know what it would be.

Obviously, my first attempted fix was to rebuild the server from scratch, but my second attempt is giving me exactly the same problem as the first.

I can send more detailed specs if you need something specific, but basically this is what I have:

Standard D4s v6 (4 vcpus, 16 GiB memory, VM Generation 2, x64 architecture)
Windows Server 2022 Datacenter Azure Edition
256GB Standard SSD (Disk controller type NVMe)
Trusted Launch on
Secure Boot enabled
vTPM enabled
Integrity monitoring disabled
Microsoft Defender for Cloud enabled
No public IP, but Internet access allowed. (I'm accessing the server on Azure using the Bastion service.)
The Steam app on the server is reachable from both of my laptops, and appears to behave normally (with the PIN being accepted) with only the stream failing.

In case you're wondering what's in the Event Viewer on the server, there aren't any (obvious) errors specific to Steam or TransOcean 2. I did get some errors when I tried to run Production Line, but it failed to load properly on the host machine, giving me errors on-screen because most Azure VM's (including mine) don't fully support sound. If you can think of something in Event Viewer that I specifically should look for, please let me know and I can tell you what I find.

I would like to get the Azure server up and running, since it would have a number of advantages, like saving disk space and allowing me to use a cheap laptop to game while travelling. Thanks in advance if anyone has any experience with this.

UPDATE: I've discovered one more weird detail, namely that my Windows test laptop can stream to the Windows server on Azure, just not the other way around. Does anyone know why this would be? Thanks.
Last edited by Battlewagon; 28 Aug @ 9:56am
< >
Showing 1-8 of 8 comments
The Azure VM isn’t going to have accelerated video encoding which is likely the issue.

Regardless, this seems like a very expensive way to accomplish remote play since you could pretty easily build a budget PC to host your remote play games for cheaper than you’ll end up paying for a capable Azure VM to stream a game for a decent amount of time.
_I_ 17 hours ago 
also check the log file
\steam\logs\streaming_log.txt

it will show encode times
if its not able to use hardware encoding it will take more than a couple ms to encode each frame
Originally posted by _I_:
also check the log file
\steam\logs\streaming_log.txt

it will show encode times
if its not able to use hardware encoding it will take more than a couple ms to encode each frame
It doesn’t need to be “hardware encoding” specifically; meaning encoding with hardware accelerated GPU encoding. But when that isn’t present it must use software encoding which requires the CPU to have support for accelerated encoding for the encoding type, which the vCPUs likely doesn’t have the required CPU features to support the encoding. I believe they do have some VE options which support directed IO with a MIG partitioned GPU which would support hardware accelerated GPU encoding, but again this doesn’t really make financial sense.
Originally posted by PopinFRESH:
The Azure VM isn’t going to have accelerated video encoding which is likely the issue.

Regardless, this seems like a very expensive way to accomplish remote play since you could pretty easily build a budget PC to host your remote play games for cheaper than you’ll end up paying for a capable Azure VM to stream a game for a decent amount of time.

I agree with you on the financial end...sort of. I already have an old laptop that I could use as a bare metal server.

Partly, this is an experiment, rather than a serious deployment, and partly it's that I would rather have a server in a datacenter than an old PC that could burn my house down while I'm out.

The main thing is I'm trying determine how to do this, regardless of whether I settle on it. Again, I'm tinkering. I'm also thinking of investigating whether it would work on AWS.
Originally posted by Battlewagon:
Originally posted by PopinFRESH:
The Azure VM isn’t going to have accelerated video encoding which is likely the issue.

Regardless, this seems like a very expensive way to accomplish remote play since you could pretty easily build a budget PC to host your remote play games for cheaper than you’ll end up paying for a capable Azure VM to stream a game for a decent amount of time.

I agree with you on the financial end...sort of. I already have an old laptop that I could use as a bare metal server.

Partly, this is an experiment, rather than a serious deployment, and partly it's that I would rather have a server in a datacenter than an old PC that could burn my house down while I'm out.

The main thing is I'm trying determine how to do this, regardless of whether I settle on it. Again, I'm tinkering. I'm also thinking of investigating whether it would work on AWS.
Same thing would apply on AWS. In either cloud you’d want to provision a GPU resource and it should work.

Another issue you might be encountering is that you don’t have sufficient firewall rules to allow the inbound ports needed to establish the session or the outbound rules for the udp ports that are needed for the audio/video stream.
Originally posted by PopinFRESH:
Originally posted by Battlewagon:

Another issue you might be encountering is that you don’t have sufficient firewall rules to allow the inbound ports needed to establish the session or the outbound rules for the udp ports that are needed for the audio/video stream.

Yes. This is maybe the main reason I started the thread. I'm not clear on which Network Security Groups (NSG's) I should have for running Steam. In Azure, for the uninitiated, these are de facto firewall rules. I left everything in default, but I'm not convinced this is correct. On the other hand, I haven't found any obvious errors related to the NSG's. If anyone knows if I need something specific, like a particular port open, this would be helpful. Again, I'm running with the defaults at the moment.
Originally posted by PopinFRESH:
Originally posted by _I_:
also check the log file
\steam\logs\streaming_log.txt

it will show encode times
if its not able to use hardware encoding it will take more than a couple ms to encode each frame
It doesn’t need to be “hardware encoding” specifically; meaning encoding with hardware accelerated GPU encoding. But when that isn’t present it must use software encoding which requires the CPU to have support for accelerated encoding for the encoding type, which the vCPUs likely doesn’t have the required CPU features to support the encoding. I believe they do have some VE options which support directed IO with a MIG partitioned GPU which would support hardware accelerated GPU encoding, but again this doesn’t really make financial sense.
if hes only giving the vm 4 cores/threads, that will restrict the software encoding too

steams streaming_log.txt would still show where the slow point for streaming
capture, encode, network, decode, display etc..
Originally posted by Battlewagon:

Yes. This is maybe the main reason I started the thread. I'm not clear on which Network Security Groups (NSG's) I should have for running Steam. In Azure, for the uninitiated, these are de facto firewall rules. I left everything in default, but I'm not convinced this is correct. On the other hand, I haven't found any obvious errors related to the NSG's. If anyone knows if I need something specific, like a particular port open, this would be helpful. Again, I'm running with the defaults at the moment.

https://help.steampowered.com/en/faqs/view/3E3D-BE6B-787D-A5D2

https://help.steampowered.com/en/faqs/view/2EA8-4D75-DA21-31EB
< >
Showing 1-8 of 8 comments
Per page: 1530 50