The Media Plate Actor

Using the Media Plate Actor in Unreal Engine

The Media Plate Actor is a pre-built Actor that you can add to your scene to play video, image sequences, and any URL towards a Media framework supported asset.

The Media Plate Actor shown streaming media in the Viewport

The Media Plate Actor supports:

  • A simplified process for importing video

  • Optimized streaming for tiled EXR image sequences with the built-in Sphere and Plane meshes. Requires DX12 or higher.

  • Media Playlists

  • Drag and drop assets and Actors

  • Sequencer integration

  • View frustum culling

Creating a Media Plate Actor

There are multiple ways to create a Media Plate Actor.

You can either:

Importing Media Sources

Media Plate supports both video files and image sequences. Depending on which media type you use, there are different ways to import them and denote the reference path of the related assets in Unreal Editor.

Common to both of these ways is that they immediately create the Media Plate Actor, which you can then configure using the Media Plate Controls.

Import Video Files

To import a video file:

  1. Open the Content Browser.

  2. Drag your video file into the Content Browser and drop it there.

  3. Drag the file from the Content Browser into the Viewport. This creates the Media Plate Actor.

Drag a video file into the Content Browser

Import Media Sequences

To import a media sequence:

  1. In the Content Browser, create an Img Media Source.

  2. Under Sequence > Sequence Path, assign the path to the folder containing your images.

  3. Optional: Under Advanced > Frame Rate Override, set the image sequence frame rate. If you don't specify anything here, the Media Plate Actor uses the default frame rate under your global settings.

  4. Drag the Img Media Source from the Content Browser into the Viewport. This creates the Media Plate Actor.

Media Plate Settings

In the Media Plate Actor settings, you can adjust the look and playback of your video or image sequence. You do not need to create a Media Texture or Media Player.

The Media Plate has the following settings


Here, you can select whether to use a Plane, Sphere, or a Custom mesh. When you select one, the referenced mesh automatically appears and the relevant settings for that mesh type become available for you to configure.

If you are using a tiled EXR image sequence and have DX12, or above, graphics capability, we recommend you select a Plane or Sphere mesh. Both these pre-built meshes use the Media Plate Actor's optimized streaming, so only the tiles visible to the camera are streamed. Custom meshes stream all tiles, regardless of their visibility to the camera. If you want to convert your media to the EXR format, you can use the Process EXR tool.


When you add a video or image sequence, Unreal Editor automatically creates a Media Playlist to hold the video asset reference, visible in the Media Playlist section. This section also displays the references to the initial Media Source as well as the Media Path.

This section also contains clickable icons you can use to Restart, Rewind, Play, Pause, Fast Forward, Open, and Close the playlist.

The pen Media Plate button lets you open a media plate window with a flat-facing mesh that shows you more in-depth information about the media. In this window, you can also use the Previous and Next icons to access other media in your playlist.

General Settings



Media Details

Expand this to see the details about your media's resolution, frame rate, size, method, format, combined level of detail bias, and its number of mips and tiles.

Play on Open

Makes the video or image automatically start playing when opened.

Auto Play

Automatically opens the video or image sequence when you enter game mode.

Enable Audio

If an audio track exists, this setting enables audio for the active video decode engine.

Start time

You can use this to set a custom start time. This allows different Media Plate Actors that use the same source video to start at different times. You can then use the same loopable clip in multiple instances in your level, appearing different each time.

Play Only when Visible

Applies frustum culling to the Media Plate Actor so the whole video decode and streaming stops when the Actor is outside of the frustum.

This is typically useful for large installations with clustered rendering like nDisplay. Especially if you're using several large and resource heavy Media Plates.


Automatically loops the video when it reaches the last frame.

Advanced Settings



Sound Component

Contains details of any sound components used.

Static Mesh Component

Contains advanced details and properties of the mesh component used.


Contains details of any letterboxes used.

Cache Settings

Override makes the Media Plate cache settings override global cache settings. Enabled by default. The Time to Look Ahead is expressed in seconds. For adequate caching, we suggest 2-4 frames. At 24fps, 2 frames should take 0.084 seconds. The default value is 0.2s.

Caching with tiles is a balancing act. The more frames you cache, the more frames need to be invalidated and reloaded when the camera moves.

Visible Mips Tiles Calculations

By default, this setting matches the static mesh you've chosen. If you want to use a Plane or Sphere, but do not want the Media Plate to only stream pixels visible to the camera, you can set this to None.

This can be useful for debugging, but we recommend that you do not use this for production.

Mip Map Bias

Sometimes, a PC is unable to playback a certain EXR sequence because of bandwidth, even though the sequence is split in tiles and mips. This setting lets you hint the Media Plate Actor in one direction or the other in order to load higher mips (lower resolution), which saves on input / output bandwidth. The estimated mip level matches the renderer by default, which makes it FOV / resolution dependent.

Transform Settings

In the Transform section, you can adjust the position, scale, and orientation of the Media Plate Actor. To read more about these settings, refer to Transforming Actors in Unreal Engine.


The Materials section allows you to pick another Material to override the existing default Media Plate Material. The default is a translucent and non-lit Material that renders pixels in the emissive channel. This Material is bundled within the Media Plate Plugin content directory.

You can drag the default or custom Materials within the Materials section of the Media Plate actor.

The Media Plate Actor looks for a special Texture parameter called MediaTexture. This parameter must exist within the chosen Material so that it can bind and access the pixels received from the video decoder MediaTexture.

Media Plate comes with the following default materials:

For 2D plates:

Material name



Is translucent. This is the default selection.

If you move away from a translucent material, you might experience TSR ghosting artifacts.


Color correction material.

For Skies:

Material name



Opaque, with the IsSky boolean enabled.


Color correction material for skies.

Sequencer integration

Sequencer integration is important to precisely control when video or image sequence clips start, end, or loop. You can also use it to make sure all clips are framelocked to the exact Sequencer time, providing you the means to finely control sequences with the overall level animation and logic.

To add your Media Plate Actor to Sequencer:

  • Drag the Actor from within the World Outliner and drop it in your Sequencer Track.

Drop the Actor into the Sequencer track

For proper sync in Sequencer, you must disable audio in the Media Plate Controls (general settings > uncheck Enable Audio) or any manually-created Blueprint using Electra Media Player.

Considerations and Limitations

When you use the Media Plate Actor, be aware of the following considerations and limitations:

  • Media Players: Only Electra and IMGMedia Players support synchronization. By default, the engine picks the first player it finds. To guarantee sync playback, you can manually force Electra as your player by selecting it inside FileMediaSource > Player Overrides > Windows > Electra player (ElectraPlayer).

  • Genlock: If you are using an nDisplay cluster setup and want to optimize image playback frame accuracy, you can use a custom timestep known as Genlocked Fixed Rate.

  • Real-time skylights and reflections: If you want to use the mips and tiles outside of your viewport to contribute to real-time skylights and reflections, you must use the [anchor link upscalehigherlevelmip] console variable.

Genlocked Fixed Rate

To implement the Genlocked Fixed Rate timestep, follow these steps:

  1. In the Content Browser, click Add (+) > Media and create a new Media Profile.

  2. Under Media Sources > Index [0], choose File Media Source.

  3. Tick Override Project Settings.

  4. Click Genlock > CustomTimeStep > Genlocked Fixed Rate.

  5. Untick Should Block.

    Genlock settings

  6. Save the Media Profile, but do not load it on your editor machine. This Media Profile is for nDisplay nodes only.

  7. After creating the Media Profile, you need to deploy it to the nDisplay nodes. In the Switchboard settings menu, click the Media Profile dropdown, then select the media profile.

    1. You can also set the Media Profile for individual nodes using the Media Profile dropdown in each node's settings.

Useful Console Variables

  • ImgMedia.FieldOfViewMultiplier: (ImgMedia.FieldOfViewMultiplier=1)

    Since Media Plate only loads tiles visible by the current views, in some cases a fast-panning shot can cause temporary missing tiles around the edges. This console variable lets you increase the number of tiles loaded around the edges of the view.

  • ImgMedia.MipMapLevelPadding: (ImgMedia.MipMapLevelPadding=0)

    If the mipmap estimation doesn't match the renderer with sufficient precision, this value is padded onto the calculated minimum and maximum mipmap levels.This increases the number of loaded tiles but can help eliminate artifacts under exceptional conditions.

  • Concert.EnableLoopingOnPlayer: (Concert.EnableLoopingOnPlayer=1) (Default)

    By default, the Multi-User Sequence Manager ensures media playback is looped when looping is enabled on the Sequencer player. Prior to 5.1 Multi-user would not enable looping on the nDisplay sequence player and the looping would be handled by the reset of the play head with sequencer. This allows the playhead to remain in sync with the content on an ICVFX wall. If you prefer the playhead to be synchronized between the editor and nDisplay cluster then set this value to 0.

  • r.EXRReaderGPU.UpscaleHigherLevelMip: (r.EXRReaderGPU.UpscaleHigherLevelMip=-1)

    Normally, Media Plate only loads the required quality mips and tiles in the viewport. However in some cases, such as reflections and skylights, you might want to load lower-quality tiles outside of the viewport for the areas of the EXR texture that are not filled with any data, in order for them to contribute to lighting and reflection.

    For example, if you set this console variable to a mip level of 3, then mip level 3 will be fully read, loaded and upscaled into mip 0, 1, 2. Mip levels including and above 3 (4, 5, 6 etc) will be fully read into the texture. When recording, the area visible by the camera contains the proper quality mips, while everything not directly visible by the active views contains lower quality mips.


You can use the following Stat commands for debugging the Media Plate Actor:

  • Stat Media: Displays information about the current Media being played.

  • ImgMedia.MipMapDebug 1: Prints visible tile and mip debug information to the screen in game mode. Only usable for files in the .exr media format.

  • Log LogImgMedia Verbose: Enables verbose log data specific to ImgMedia.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey