Skip to content
This repository has been archived by the owner on Jan 27, 2022. It is now read-only.


Folders and files

Last commit message
Last commit date

Latest commit



14 Commits

Repository files navigation

UE4 Cloud Rendering Demo

[DEPRECATED] Both this demo and the UE4Capture plugin it uses are now obsolete. All developers should migrate to the Unreal Engine's official Pixel Streaming system, which added support for Linux and container-based deployments in Unreal Engine 4.27. The direct equivalent to this cloud rendering demo is the Docker Compose demo for Pixel Streaming in the Unreal Engine source code, located under Engine/Extras/Containers/Examples/PixelStreaming (note that you will need to download the Unreal Engine source code and run to see all of the relevant files.) Please direct all support queries regarding Pixel Streaming to Epic Games through their official communication channels.

The code in this repository demonstrates performing cloud rendering using the NVIDIA Docker containers built by the ue4-docker Python package and then streaming the results to a web browser via WebRTC. Note that the demo uses the UE4Capture plugin, which was only ever designed as a proof-of-concept prototype and is not recommended for production use. Developers should instead upgrade to Unreal Engine 4.27 or newer and use the official Pixel Streaming system, which provides superior features and performance.



General requirements:

Audio output has a couple of extra requirements:

  • A PulseAudio server needs to be running on the host. This will already be the case by default for most modern desktop distributions of Linux.
  • You will need to ensure you have added a non-root user to the docker group as described by the Post-installation steps for Linux page of the Docker documentation., since the PulseAudio socket cannot be bind-mounted correctly if the commands for running the demo are invoked as the root user.

Running the demo

  • Ensure you have built the NVIDIA Docker image adamrehn/ue4-full:4.20.3 using ue4-docker version 0.0.5 or newer. Assuming you have the package installed and the host system is configured correctly, you can build the image using the following command:

    ue4-docker build 4.20.3 --no-engine
  • Run the appropriate shell script for the WebRTC server you want to use:

  • Docker will build and run the images for the demo. This may take some time. You will know everything is built and running when you see the following lines in the log output:

    Received Control Block:
    videoFormat = Packed BGRA 8:8:8:8
    width = 640
    height = 360
    bytesPerPixel = 4
    frameRate = 30
    audioFormat = PCM 32-bit floating-point little-endian
    channels = 6
    sampleRate = 48000
    samplesPerBuffer = 1024
    bytesPerSample = 4
  • Open the URL in a web browser with VP8 support such as Mozilla Firefox or Google Chrome. The exact details of the page that loads will depend on which WebRTC server is being used:

    • When using Janus, you will see a copy of the Janus Streaming plugin demo page. Press the "Start" button to bring up the list of available streams, and select "VP8/Opus live stream from UE4 and FFmpeg" from the dropdown list. Finally, press the "Watch or Listen" button to activate the WebRTC stream. Once it is active, you should see the live video output from the UE4 demo project displayed and you should hear the Mozart serenade Eine kleine Nachtmusik playing. (The audio file is the Creative Commons licensed recording from the Wikipedia article.)

Frequently Asked Questions

  • Q: Can the WebRTC video stream be viewed from a different machine to the host that is running the demo?

    A: The demo is only configured for HTTP, not for HTTPS, which means WebRTC will only function over localhost due to security restrictions. In production scenarios a TLS certificate would be used, which would allow access from other machines over HTTPS.

  • Q: Can the demo be modified to run under Windows or macOS?

    A: No, because NVIDIA Docker only supports Linux and the purpose of the demo is to illustrate Unreal Engine 4 running in an NVIDIA Docker container.


Copyright © 2018, Adam Rehn. Licensed under the MIT License, see the file LICENSE for details.

The demo project contains a recording of Eine kleine Nachtmusik by Wolfgang Amadeus Mozart as performed by the Advent Chamber Orchestra, which is licensed under a Creative Commons Attribution-Share Alike 2.0 Generic license. For more details, see the file's page on Wikimedia Commons.


Unreal Engine 4 cloud rendering demo for NVIDIA Docker containers