Unity Video player - Performance issues, any upcoming improvements?

Hello!

I’ve been having some performance issues with the built in Unity video player. Even running basic h264 1080p 60 fps videos seems to be very taxing compared to using other 3rd party options in the asset store. Which I’d use, but I’ve built pretty much everything on my project around the built in video player, so reworking all that now would be an incredible amount of extra work.

I thought the performance was initially okay, but then I received some reports from some testers with relatively modern media laptops, that they can’t run the game at all, that all video segments are a slideshow, even when I’ve built the project using the transcoding options within Unity. Although it works a quite a bit better compared to the h264 videos I output straight from premiere, but of course the quality takes a noticeable hit as well. The premier videos have a bit rate of around 10 Mbps.

Now I’ve been doing tests with my own work computer, by limiting the amount of cores used to run the “game”, and sure enough it turns into a slideshow during video sections when going under 3 cores. 2 is kind of manageable, but 1 is entirely unplayable. Initially I just thought it was something to do with my project or videos, but then I tried it out in a clean scene with a single video player object, and it had the same issue, until I tried the same videos with one of the 3rd party option’s trials, which played them at a full framerate, even with a single core.

So my main question is, is there a work around for these issues, or alternatively are there any fixes in the relatively near future(as in within a year or two)? Or should I just give up, and start working with a completely different 3rd party solution? I mean I can always just drop the video resolution, and I have been releasing separate lower resolution versions for those who can’t run the project, but that option is far from optional. Not only does it mean that I have to transcode all my videos between each release, which can take hours, it also means the customer will receive a poorer experience, despite having a laptop that normally handles 4K videos with a standard windows video player just fine.

Interestingly the project runs fine on a Moto G5S Plus Android Phone, using the full 1080p videos without using transcode. Well almost. The videos run at the correct framerate, but every time a video loop ends, the video freezes for about 5-10 frames, before restarting again. This seems to happen regardless of the video’s size (tested with 1080p and 540p). I wonder if there’s a solution to that? But that’s not as big of an issue, as it’s at least playable.

Just in case it got lost in the text, these tests were done in a clean scene, with a single video player object.
Unity versions tested on: 2018.2.13f1 and 2018.3.0b8

Example of a laptop’s specs which had the above mentioned issues:
Processor: Intel(R) Core™ i7-6500U CPU @ 2.50GHz
Graphics: Intel(R) HD Graphics 520
Physical Memory: 8049 MB
Operating System: Windows 10 Home

My own specs, for the tests with limited cores:
Processor: Intel(R) Core™ i7-5820K CPU @ 3.30GHz (12 CPUs)
Graphics: NVIDIA GeForce GTX 1080 Ti
Memory: 16384MB RAM
Operating System: Windows 10 Pro 64-bit

1 Like

Has anyone else bumped into either of these issues, and possibly found a fix?

I’m currently on 2018.3.2f1 and I still experience both of the above mentioned problems. (Android not playing loops smoothly, and video playback using a lot more resources than expected on PC, making for a bad experience on even some relatively modern laptops, see above example for specs)