Virtualized Win10 - How to get a reasonable video framerate over network?

I’ve an Ubuntu 24.04 server, with quite a few services running on it. Some of those are running in virtualbox. As I already use virtualbox quite a bit, I added a win10 VM - mostly to remote in and use bluebeam, which doesn’t work on my linux workstations. Works very well for this over RDP.

I was trying to watch the football game on Amazon, and it only gives a garbage-quality unusable feed to linux clients. So, why not fire up the windows VM and watch it in Edge? Well, because apparently RDP will only feed me a few frames per second. I have gigabit ethernet between the machines, so it shouldn’t be limited by the network, and was not saturating the connection.

I’ve tried getting sunshine to work in the VM, to no avail - it can’t find the monitor or encoder. Start up a headless X session on the server, sunshine/moonlight into that, and then display the VM might be some kind of option. Or perhaps the problem is the Virtualbox hypervisor, and I should migrate the VM to qemu or something?

What’s you guys experience been with getting a nice, snappy VM experience where you can watch a video reasonably?

1 Like

What are the results if you run the UFO motion test in browser on the windows VM?

My RDP sessions are pretty smooth, video is very easily watchable, although there is a default frame limit to 30 frames per second with RDP but I’m pretty sure it can be raised to 60fps via the registry.

3 Likes

Do the vms in question use a virtual gfx card or are you passing though a physical device? This sounds like a case of the cpu cannot render the graphics fast enough, and your suffering from the vm having no actual graphics card. Assuming this is the case passing through as little as an igpu would probably solve your issue.

1 Like

Yeah, it’s virtualized graphics. I wondered if that might be it, but seems like it should be able to handle just watching a video…

I’m not aware of any way to pass through the gpu in virtualbox, so if that’s the case I guess I’d have to migrate. It was a pain in the butt to get it to use the iGPU on the host for my X11 sessions, and the separate GPU installed doesn’t even initialize as there are no monitors plugged in… might be fighting uphill.

2 Likes

fwiw the smooth video I mentioned above is with a Windows 10 VM on a 12600T CPU with no graphics card passed through to it. As long as the CPU is relatively modern it should be able to run web video unless there is something wrong with the hypervisor (some would argue that virtualbox falls under the something wrong category because of how badly it performs compared to the type 1 hypervisors).

I suspect there would be bad performance <15FPS on the Windows VM in the UFO test which could point to the CPU being the problem (or more realistically a mix of the CPU and the hypervisor not doing it any favors).

1 Like

Some weird results. It says I’m getting 64 fps, which looks a touch stuttery - I suspect because my monitor is 60 hz. The 64 and 32 look identical, which is to be expected with RDP. I do not know how to set it at 60 hz, or deal with wayland / rdp vsync or whatever. But, it’s good enough to use.

Similarly, youtube test video looked pretty good. Using less than half of one core for the VM (i7-9700), so not bad.

I suspect there’s something fishy going on with the amazon video. Next time I catch a live stream on amazon through it, I’ll check the stats.

2 Likes

I think your right

We have RDP running 1080p @ 240 Hz in multiple environments
You need to pass the VM a GPU
A literal potato like the RX6400 will let you stream 1080p over RDP like butter

1 Like

It is the Amazon video eating up all the resources and chugging along slowly. As soon as you start amazon video, all 4 cores I’ve assigned max out. I suppose I’ll have to switch hypervisors and figure out how to forward the igpu, or initialize the dgpu and forward that. Any tips?

For some reason things like youtube work just fine.