Hi.
I have been reading the Pixel Streaming documentation where it says that only Windows OS is supported.
I find it very strange since WebRTC, NVENC and UE4 all supported by Linux and today’s cloud solutions are mostly Linux based. Why Epic restricted the PS support to Windows? Is it a temporary decision? I am asking this since I need to know whether to start rolling my own offscreen rendering → encoding-> streaming solution for Linux or wait for some future release of the engine.
Thanks.
Best guess is that because the inhouse Linux team is fairly small there was not enough people to work on the Linux part of it.
But the question is…did you try it on Linux? What is the major factor from stopping it from working? Can you make a PR to make it work somewhat easily?
Instead of rolling your own it might be beneficial to answer the above questions and see if you can just finish what was started from Epic’s side.
Adam Rehn and his team in Australia have been building Linux Pixel Streaming for 4.25. They are Epic Mega Grants recipients and I wouldn’t be surprised if this is pushed into the master branch eventually. I have gotten my Pixel Streaming builds working within his UE4 Docker pipeline () and deploying with kubernetes across a global cluster I work on (). Be mindful when launching in a cloud environment that you need to have some level of permissions that allows you to open ports for coturn.
Here is a link to where you can find Linux Pixel Streaming:
one other thing, you need to soft link libnvidia-encode.so
ln -s /lib/x86_64-linux-gnu/libnvidia-encode.so.460.39 /home/ue4/project/MyProject/Binaries/Linux/libnvidia-encode.so
My nvidia driver is 460.39, whatever driver version you have you’ll need to adjust for it
I hope this is what you were looking for
Thanks for the tip. Yes,I have checked their branch and I will be using their implementation to get what I Need.
Currently the official engine release cannot stream video from Linux as the implmentation uses NVIDIA VIDEO ENCODER API. And Epic implemented it via DirectX interface. On Linux we have Vulkan,and to get it working with Vulkan RHI there is a need to set CUDA as a bridge (NVENC doesn’t have direct interface with Vulkan).So that’s the reason why it can’t work on Linux. The guys from Australia (see below) are doing exactly that - adding CUDA module to allow passing Vulkan RTs into the encoder
Hello, Agent-Joel-Bot!
Can you explain how did you build pixel streaming in linux? And your provided links are not working.
So under the line,
IF we setup this days a new server,
THEN it makes sense to knot a bit longer and use the Linux way?