Movie materials disappear with 4.12 standalone preview and in packaged project

I had a similar problem when I upgraded to 4.11…
2 out of my 3 movie materials are not working in standalone preview or when I package. They all work in the viewport.
The materials make the entire mesh disappear.
The weird thing is one of them is working fine…

I tried reimporting, resetting the directory to the one inside the project…I cooked the project but saw no errors…
any other troubleshooting ideas? Or is this another bug?

Hey jeremycouillard,

So I would take a look at the differences in your media files. Are they all encoded under the same format? Do they exist in your project in the correct folder location i.e. Content/Movies?

Can you reproduce this in a blank project with just the video files and packaging it out?

Thank you,

Thanks for your help. Yes they are in Content/Movies. I’ve set and reset the directories many times. Two are wmv’s and one is mp4. One of the wmv’s works, the other does not as well as the mp4. I just tried the movies in the first person template in 4.12 and to my surprise they still did not work. I made a sphere with one of the wmv’s as its material. It played in the viewport and then in standalone the sphere disappeared. In addition, strangely, the wmv that works in my game does NOT work in a fresh blank project.
To be specific about what I did - I imported the video, made a media texture, made a material from that. Then I made an actor blueprint with a sphere and applied the media material to the sphere. I also made a media player variable in the blueprint and set the media file to that variable. In an event (in this case, begin play) I dragged out the variable and connected it to a play node so it would be sure to play. In the viewport - all is well. In package AND in standalone, the actor blueprint is vanished.
Thanks for any help!

Could you provide me with your test project so I can test it on my end?

Sure thing - here is a link with both wmv files - https://dl.dropboxusercontent.com/u/7072449/unreal_fp_blank.zip
Thanks!

Hey Jeremy,

I was able to reproduce the issue with the content and information you provided. Thank you for clarifying the issue and providing a reproducible case. I have entered a bug, UE-31715, for this issue. Once the bug has been addressed by the developers a fix will be made and integrated into an upcoming full engine release or hotfix, and then added to the list of fixed issues.

Let me know if you have further questions or need additional assistance.

Cheers,

The following is an answer I recently posted on UDN. You’re probably seeing the same problems.


So, there are two issues here, and both of them are my fault.

The first issue is that the fix for the missing MediaAssets module in Standalone didn’t make it into 4.12, but 4.11. I checked it into the correct branch this time, and it should be in 4.12 Hotfix 2, which is scheduled for June 27th right now (we already passed testing on the upcoming Hotfix 1, unfortunately). If you’re compiling the Engine from source, you can fix this locally by adding one line of code to the end of FEngineLoop::LoadStartupCoreModules() in Runtime/Launch/PrivateLaunchEngineLoop.cpp to make it look like this:

#if WITH_ENGINE
	// Load runtime client modules (which are also needed at cook-time)
	if( !IsRunningDedicatedServer() )
	{
		FModuleManager::Get().LoadModule(TEXT("GameLiveStreaming"));
		FModuleManager::Get().LoadModule(TEXT("MediaAssets"));
	}
#endif

The second issue is a workflow problem when working with Media in 4.10, 4.11, and 4.12. The MediaPlayer instance automatically loads the media URL on PostLoad. In the Editor, this happens when the Editor starts up, so by the time you’re running the game in PIE, the movie is already loaded. In Standalone, this happens on or around BeginPlay, which is also when you trigger the Play function. Since the movie takes some time to load, chances are that it is not yet ready to play by the time you call Play, so that call fails and does nothing.

The correct way to do this is to listen to the OnMediaOpened event on the MediaPlayer instances. In 4.13 and forward we will no longer auto-load movies, and you will have to explicitly Open them in your blueprint. In 4.12 and earlier, you can use the following trick to make it work in both PIE and Standalone:

Note that we’re binding to the OnMediaOpened event, so we only call Play once the movie actually finished loading. In PIE this won’t work, because that event will never be called (the movie already finished loading on startup), so we’re also calling Play via BeginPlay.

In 4.13 and forward, your blueprint will look more like this:

Thanks this is super helpful.

Hey guys, just wanted to let you know I have verified this as fixed for an upcoming hotfix release. Thanks again for your help in getting this bug reported.