

If it is not configured or you are writing your own Dockerfiles then you can configure it yourself by specifying the appropriate directives in the PulseAudio configuration files.įirst, ensure the following directive is present in the /etc/pulse/default.pa configuration file: # Automatically create a null sink to act as a virtual audio output device # when there are no physical audio devices availableīy default, the null sink will use different audio parameters to those used by the Unreal Engine under Linux, which may lead to audio distortion issues. If you are using an existing runtime or development container image then be sure to check whether this functionality is already configured for you. This is the recommended approach when running Unreal Engine containers on virtual machines in the cloud. (This is actually the default behaviour unless explicitly disabled in a configuration file.) So long as the PulseAudio server is configured to enable a null sink, this will ensure audio output is always available without the need to run a PulseAudio server manually or interact with the host system. The PulseAudio client can automatically spawn a PulseAudio server on demand if no existing server is available. Automatically spawning a PulseAudio server inside the container There are multiple approaches available when configuring PulseAudio to suit the requirements of a given use case.
AUDIO LOOPBACK LINUX DRIVER
Enabling a PulseAudio null sink to act as a virtual audio output device requires only a single directive in a configuration file.ĭue to its flexibility, PulseAudio is the recommended audio driver for Linux containers. PulseAudio is a higher-level sound server and provides far more flexibility as a result of its client/server model. Creating an ALSA loopback device to act as a virtual audio output device involves loading kernel modules, which requires running containers with specific security privileges.
AUDIO LOOPBACK LINUX DRIVERS
These drivers include the Advanced Linux Sound Architecture (ALSA) and PulseAudio:ĪLSA is the lower-level option, and provides less flexibility than a sound server such as PulseAudio. As a result, the Audio Mixer system will only initialise successfully under Linux if one of the supported SDL audio drivers is available.

The SDL2 audio backend for Linux does not support the use of a null audio device. For more details, see the specific sections for Linux and Windows. However, support for using a null audio device varies between the backend implementations for different platforms. The Audio Mixer system supports the concept of a “null audio device”, which allows the Engine to generate audio output even when there are no physical audio devices available. This is particularly relevant for use cases such as Pixel Streaming, which leverages the Audio Mixer system in order to capture generated audio and transmit it to client devices over WebRTC. This is important when discussing Unreal Engine containers because the Engine’s Audio Mixer system must still be initialised in order to use audio mixing functionality, even when the generated audio data will be written to file or transmitted over a network rather than sent to an output device. When running applications inside a container, there are no physical audio devices available by default.

AUDIO LOOPBACK LINUX WINDOWS

