We are trying to play back 4K videos in our Windows-only project, but we just realized that some of our footage plays back only on some of our test machines. It looks like as if Unreal is not using built-in codecs but system codecs to decode the videos?
If this actually is the case, then how can we make sure that the videos play on all our end users’ machines?
The current documentation is quite vague on which formats, codecs, codec levels etc. are supported on a given platform.
Details:
We have created all our footage in Nuke and Premiere. In both cases, the final encoding is done in Adobe Media Encoder (AME) using h.264 wrapped in mp4.
On one of our three test machines (computer A), all videos play just fine in Unreal, including resolutions around 4096x2048. However, on the other two machines (computer B and C), the maximum that seems to work when encoding with AME is 3840x1080 (h.264 level 5.1). Anything above that resolution causes the UE Media Player panel to show the length of the clip correctly but being unable to start playing it.
Computer A has lots of video software installed on it, so it probably also has numerous video codecs installed at system level. Computer B has only certain Adobe Creative Cloud software installed, while computer C has no video software installed at all.
On the problematic machines, Windows Media Player plays or refuses to play exactly the same videos that Unreal plays or refuses to play → both depend on the same system codecs? (vlc plays everything just fine on all machines)
As said, everything works nicely on computer A.
On computer B, Unreal gives the following warning in the logs when trying to play an AME-encoded h.264 video that exceeds the aforementioned resolution: LogWmfMedia:Warning: Unsupported video type '1cva' (61766331-767a-494d-9df278b43790dc25) for stream 0
On computer C, Unreal does not log anything to the logs when trying to play such a video.
Some 3840x2160 and 4096x2048 h.264 videos downloaded from the internet do work also on computers B and C, so we could dig deeper into the video files that AME generates to see how they actually differ. However, this would not solve the primary problem:
If the decoding subsystem in Unreal really is not self-contained, and there is no documentation on what codecs, codec levels, resolutions etc. are supported and what auxiliary software needs to be installed on the target system, then it seems impossible to ensure that the packaged product will work for every end user?
Target platforms: Windows-only (VR)
UE version: 4.13.2 binary download