D
D
Daniil Bakalin2018-05-08 16:26:33
Game development
Daniil Bakalin, 2018-05-08 16:26:33

How to achieve 8K video playback in Unity?

Good afternoon!
The question is actually even more general - how to achieve the highest possible quality video playback in Unity?
Standard tools (video player), as well as third-party assets (easy video texture) - with difficulty, somehow, pull 4K video.
Despite the fact that the hardware is quite good (nVidia 1060 6Gb card, i7 processor).
An attempt to increase the resolution - leads to the strongest friezes (up to several seconds).
What are the reasons for such severe restrictions - it is not clear. Even on my mobile phone (samsung s7) - although a little slower than the norm, it pulled 4k (easy video texture in unity). And then a full-fledged desktop system, and such brakes ...
At the same time, 4k for VR is very, very small. Firstly, you need stereo, and this already doubles the picture (from 3840 * 2160 to 3840 * 3840), and the computer no longer pulls it. Secondly, 4k, being expanded onto a sphere, gives a very blurry picture ... Ideally, you need to play 6400 * 6400, but this is far beyond the possibilities ...
I tried different codecs (unity supports h264 and V8) - there is almost no difference. I tried to compress unity itself (i.e., compressing a video clip into an internal format) - again, the difference is minimal. Loading the entire clip into memory also does not affect the result.
In this regard, questions:
1. Any idea what can be done?
2. Are there any technologies for "pitched" video rendering? To calculate only the part of the video that the user sees (of course in the application to unity)?
3. You can add a sphere of video from N-fragments and calculate only the visible ones, but it will be very difficult to achieve perfect synchronization. Perhaps there are developments in this area?
3. Advise settings / codecs / formats for video? Maybe some assets?
4. My videos are short, up to 1 minute. It is an option to store the video decompressed in memory, but some intermediate format is needed, since a simple data dump will of course be too large ...
I would be grateful for any ideas!

Answer the question

In order to leave comments, you need to log in

3 answer(s)
D
Daniil Bakalin, 2018-05-09
@Quiensabe

For those who are interested in the answer to the question, and not advice to change the architecture or exercises in wit - I am writing what I have come to at the moment.
Of the assets and libraries I tested, AVPro Video showed the best result.
It can play videos over 4K using the hardware. On my system, 2*4K video (stereo) plays without problems. CPU load ~40%, graphics card ~30%.
Thus, the performance of this solution on unity, in the tested case, is not inferior to "native" solutions (of the tested ones, Virtual desktop player, GoPro Player, Steam 360 Player).
If someone can add information on the question (and not on why this question is stupid) - I will be very grateful. With the release of new helmets (for example, Pimax) - a quality player will become a big problem. So a solution like a patched render is necessary anyway, and will appear sooner or later.
Any additional information, at least indirectly related to the original question, will be happy to note the solution. So far, there is NO solution to the question.

M
Maxim Timofeev, 2018-05-09
@webinar

You are trying to cool your beer with air conditioning and you are complaining about the speed of the process. (But the air conditioner is not cheap, even if it is a top one). No need to think about how to speed up the process, you just need to use a refrigerator for this task.
Open beer with your teeth
Block telegrams by ip
Have sex with a partner of the same gender
Earn on bitcoins
Program in html
Render video using a game engine

G
GavriKos, 2018-05-09
@GavriKos

it's probably not clear from the question, but of course it means a 360-degree panoramic video. 3/4 of the frame remains out of view.
See, you're trying to use a 3D graphics engine to render a fucking video. This is a rather rare case in games, and no one has optimized it for your tasks, and even more so for culling and so on.
Especially since the unit did not know how to play video at all, versions like 4 without plug-ins for sure.
Tip - don't use units. Write your renderer in DirectX/OpenGL, where you will implement the optimal algorithm for your SPECIFIC task. And using a combine on narrow and specific cases is a bad option.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question