LogWmfMedia: Error: An error occured when preparing the topology

Hello,

I’ve been trying to get a media file to play on a set of televisions I have in a room. The televisions are both blueprint actors with a static mesh of 1 material, and a plane of a material with the base colour and emissive colour both being a media texture.

I get this error on almost every time I execute the game to test, when the media starts playing.

Below are some screenshots of the blueprints which start the media playing.

Material used for the plane on the TV actor

StartVideo Function

303693-show1television-startvideo.png

Initialise Function

303694-show1television-initialise.png

StartVideo call from LevelBlueprint

The process is meant to work like this…

  1. ‘Initialise’ is called from the LevelBlueprint on ‘Event BeginPlay’ (which it is)
  2. When the media is ready to be played (after a custom event is triggered in the LevelBlueprint), ‘StartVideo’ is called on each TV (of which there are 2) from the LevelBlueprint.

I have tested the LevelBlueprint and both of these functions are called successfully at the correct time but I get the error ‘LogWmfMedia: Error: An error occured when preparing the topology’ almost every time the media tries to start up. This is the only error given in the Output Log, no other context is given.

It seems like I have tried everything to fix this issue, I’ve tried…

  • Precaching the video
  • Using both WMV and MP4 types (I’m running on Windows)
  • Not using the ‘Initialise’ function for the Televisions
  • Switched between using RGB and RGBA, in the material, for both the Base Colour and Emmissive Colour.

Some have suggested that all media needs to be in the ‘Content/Movies’ directory, which all my media is yet this issue persists.

Does anyone have any ideas of what might be causing this issue and how I could fix it? Let me know if you need more details and I’ll provide them.

Thanks in advance for any help!

I’ve managed to solve this.

It turns out using ‘Open Source’ for a media player doesn’t work well when inside of an actor blueprint. Instead, I had to call this from the level blueprint by doing the following…

  1. I made a new function called ‘StartShow1’ in the LevelBlueprint
  2. When I want the media to start, I call this function which calls ‘OpenSource’ once for the single MediaPlayer which plays the media on both screens since they are both using the same MediaTexture in their materials, which are in turn linked to the same MediaPlayer.
  3. The new function also plays a seperate audio asset but that is irrelevant here.

Working function to start the media