What is the best way to live-stream from Unreal Engine?

A guide to the pros and cons of different live-streaming methods from Unreal Engine
Written by OWL
Updated 1 year ago

The traditional methods for live-streaming from Unreal Engine have been:

  1. NDI
  2. Capture cards
  3. OBS Studio screen capture

These all have issues such as:

  1. Latency: There is a time delay between the video leaving Unreal and arriving at the second program.
  2. Compression: The original video has been encoded/ decoded and pixels have been removed to reduce its size for easier transportation.
  3. Resolution cap: There is limit to the resolution of the video you can output either from your capture card or due to the size of your screen in the case of screen capture.
  4. Frame rate cap: There is a limit to the frame rate of the video you can output.
  5. Viewport control: You can't control Unreal because the viewport is being captured and so can't be touched.
  6. Overhead: You computer is working in the background to create the video which slows down your performance in Unreal Engine.

Our Live-streaming Toolkit avoids all these issues:

It uses a Windows utility called Spout to share the video texture on your GPU between Unreal and the other program.

This means that it doesn't have to encode/ decode it so there is no latency, compression or overheard.

It also means that there is no artificial cap on resolution or FPS. Whatever you can produce in Unreal you will be able to stream.

Finally, it all happens in the background, so you can retain control of Unreal if you need to control elements during your stream and be sure that it won't affect the output.

A comparison of all options for live-streaming from Unreal Engine:

NDI Capture card Screen capture Spout
Latency Yes Yes No No
Compression Yes Sometimes No No
Resolution cap Yes Yes Yes No
FPS cap Yes Yes No No
No viewport control No Yes Yes No
Overhead Yes No Yes No

Additional performance optimisation with the Live-streaming Toolkit

In addition to the capabilities above, the toolkit has further optimisations to increase your stream resolution and FPS including:

  1. DLSS (which renders your scene at a lower resolution and then upsamples it to the one you need).
  2. Viewport disable toggle (which switches off your Unreal viewport while you stream so it doesn't use GPU power)
  3. Live-editing which let's you only render cameras when you are streaming them using Spout's zero-latency capabilities to switch between them seamlessly.

This makes it by far the most simple and most effective method for live-streaming from Unreal Engine.

You can see a detailed benchmarking between the different methods listed above here.

Did this answer your question?