iOS: Critical error when cooking video files

Hi,

I’m having a strange problem when i try to package my game for iOS with videos, using a Mac. The editor initiates another process to cook the assets, opening a console window which shows the cook log and progress, but when it comes the time to cook the movie asset, this second process crashes. The building process continues as if nothing happened, but most of the assets do not get cooked.

Upon looking into the cook log i found this line:

[2016.04.15-19.37.08:730][  0]LogMac: === Critical error: ===
SIGSEGV: invalid attempt to access memory at address 0x30

[2016.04.15-19.37.08:730][  0]LogMac: UMediaTexture::InitializeTrack() Address = 0x74030ae  (filename not found) [in UE4Editor-MediaAssets.dylib]
TBaseUObjectMethodDelegateInstance<false, UMediaTexture, void ()>::ExecuteIfSafe() const Address = 0x740e597  (filename not found) [in UE4Editor-MediaAssets.dylib]
TBaseMulticastDelegate<void>::Broadcast() const Address = 0x7405894  (filename not found) [in UE4Editor-MediaAssets.dylib]
TBaseUObjectMethodDelegateInstance<false, UMediaPlayer, void ()>::ExecuteIfSafe() const Address = 0x740d8d7  (filename not found) [in UE4Editor-MediaAssets.dylib]
TBaseMulticastDelegate<void>::Broadcast() const Address = 0x31a08f84 (filename not found) [in UE4Editor-AvfMedia.dylib]
invocation function for block in FAvfMediaPlayer::Open(FString const&) Address = 0x31a060f5 (filename not found) [in UE4Editor-AvfMedia.dylib]
invocation function for block in PerformBlockOnThread(FCocoaRunLoopSource&, void () block_pointer, NSArray*, NSString*, bool) Address = 0x123af60  (filename not found) [in UE4Editor-Core.dylib]
FCocoaRunLoopSource::Process(__CFString const*) Address = 0x1253ac6  (filename not found) [in UE4Editor-Core.dylib]
-[FCocoaRunLoopSourceInfo perform] Address = 0x12297a9  (filename not found) [in UE4Editor-Core.dylib]
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__() Address = 0x90bd1a01 (filename not found) [in CoreFoundation]
__CFRunLoopDoSources0() Address = 0x90bc3b8d (filename not found) [in CoreFoundation]
__CFRunLoopRun() Address = 0x90bc31bf (filename not found) [in CoreFoundation]
CFRunLoopRunSpecific() Address = 0x90bc2bd8 (filename not found) [in CoreFoundation]
ProcessGameThreadEvents() Address = 0x1229ff6  (filename not found) [in UE4Editor-Core.dylib]
FMacPlatformMisc::PumpMessages(bool) Address = 0x12c109e  (filename not found) [in UE4Editor-Core.dylib]
UCookCommandlet::ProcessDeferredCommands() Address = 0x91471bc  (filename not found) [in UE4Editor-UnrealEd.dylib]
UCookCommandlet::NewCook(TArray<ITargetPlatform*, FDefaultAllocator> const&, TArray<FString, FDefaultAllocator>&) Address = 0x914f4c9  (filename not found) [in UE4Editor-UnrealEd.dylib]
UCookCommandlet::Main(FString const&) Address = 0x914a2ab  (filename not found) [in UE4Editor-UnrealEd.dylib]
FEngineLoop::PreInit(wchar_t const*) Address = 0x107eca1  (filename not found) [in UE4Editor]
GuardedMain(wchar_t const*) Address = 0x108f224  (filename not found) [in UE4Editor]
-[UE4AppDelegate runGameThread:] Address = 0x109ee83  (filename not found) [in UE4Editor]
-[FCocoaGameThread main] Address = 0x1229a3b  (filename not found) [in UE4Editor-Core.dylib]
__NSThread__main__() Address = 0x9b4bde92 (filename not found) [in Foundation]
_pthread_body() Address = 0x9be6905a (filename not found) [in libsystem_pthread.dylib]
_pthread_body() Address = 0x9be68fd7 (filename not found) [in libsystem_pthread.dylib]
thread_start() Address = 0x9be663ed (filename not found) [in libsystem_pthread.dylib]

The full log is included as an attachment. I already tried many times to:

  • Change the video file format
  • Rebuild the project
  • Eliminate “Intermediate” and “Saved” folders
  • Recompile everything
  • Fix all redirectors and other missing references.

But nothing seems to work. Please if somebody could help, it’ll be greatly appreaciated, i don’t know what else i can do.

More info:

  • Unreal 4.10.4
  • Mac OS/X 10.10.5
  • XCode version 6.4

Cook Log

Bump! Please, if anyone from Epic could give a look into this - I really need this thing sorted out, even if the response is “it won’t work”.

Btw, i’m using Unreal for almost a year now and have never had a question answered so far…

Hi TiagoLing,

Due to the large volume of questions and comments concerning the Engine, we did not have a chance to respond to your post at the time you submitted it. However, if you are still interested, the following documentation describes Media Framework and why video files aren’t working when packaging for iOS: Media Framework

Under “What is Media Framework” it states, “There is also a plug-in for MacOS, which uses Apple’s AV Foundation, however it is currently quite limited but should work on iOS.”

This was written for UE4.9 so some improvements have likely been made to the plug-in however, in any event, this is not built in functionality of the Engine and a third person plug-in will be required in order for this to work.

-.