RenderHeads / UnityPlugin-AVProVideo

AVPro Video is a multi-platform Unity plugin for advanced video playback
https://www.renderheads.com/products/avpro-video/
235 stars 28 forks source link

I can not play 8K 60fps Hap-Q videos fluently #388

Closed keitasumiya closed 4 years ago

keitasumiya commented 4 years ago

Describe the bug I would like to play 8K 60fps Hap-Q videos with AVPro, but I CAN not play it fluently. The playing fps is about 30. What should I do to play it? This issure is relevant to https://github.com/RenderHeads/UnityPlugin-AVProVideo/issues/152 and https://github.com/RenderHeads/UnityPlugin-AVProVideo/issues/86 .

Your Setup (please complete the following information):

To Reproduce 0-1. install LAVFilters: https://github.com/Nevcairiel/LAVFilters/releases 0-2. install hap-directshow: https://github.com/Vidvox/hap-directshow/releases

  1. make new Unity project with importing AVPro 1.11.3
  2. open 04_Demo_uGui.unity
  3. put a 8K 60fps Hap-Q video into Assets\StreamingAssets\AVProVideoSamples
  4. set the 8K 60fps Hap-Q video in AVPro Media Player
  5. set Prefered API as Direct Show
  6. play

Logs

Screenshots AVPro-test_8K-60fps-Hap-Q

MediaInfo_8K-60fps-hap-q

Videos

Please DO NOT LINK / ATTACH YOUR PROJECT FILES HERE

Instead email the link to us unitysupport@renderheads.com

fingerx commented 4 years ago

I would also like to know how to play videos in 8K hap format smoothly.

AndrewRH commented 4 years ago

Hi @keitasumiya

I think it may work better if you uninstall the DirectShow Hap plugin. It shoudln't be needed for decoding and could be affecting performance. If that doesn't work then also try removing LAV Filters.

Interestingly from your video, I don't see any activity on the HDD, which is very strange considering it's a massive file and I would have expected the bandwidth requirement to be very close (or perhaps exceeding) the limitations of your SSD.

If you still dont' have any luck, perhaps go into the NVida Control Panel and select the Quadro as your main GPU. I think right now it might be using the Intel, or even a mix of the two.

Let me know how it goes.

Thanks,

keitasumiya commented 4 years ago

Thank you so much for your reply.

I installed the DirectShow plugin to play hap/hap-q video with AVPro (preferred Video API: direct show). And I installed the LAV Filters plugin to play hevc mp4 video with AVPro (preferred Video API: direct show). Because I had not be able to play those videos with AVPro (preferred Video API: Media foundation). So, I couldn't understand why uninstalling those plugins is effective for this problem. Moreover, I am happy if you tell me how I can play hap video with AVPro only.

For my disk information, I used

Therefore, I think my disk spec is enough to play these hap-q video.

I am really looking forward to gettin your reply.

Best regards, Keita

AndrewRH commented 4 years ago

Hi @keitasumiya,

Yes the MEdia Foundation API setting doesn't have any support for Hap. So you must set the video API to DirectShow. There should be no other requirement for playing back Hap using AVPro Video - the DirectShow codec is not required.

Did you encode your videos with the chunk setting?

I tested 8K60 video with HapQ, and I also was only able to achieve 30fps. But then I encoded with "-chunks 8" setting and then it went up to 60fps:

image

This video clip only had a disk bitrate of 500MB/s though, and also didn't contain any audio tracks...

Thanks,

fingerx commented 4 years ago

@AndrewRH Thank you for the information. Can you provide specific information on what you play. Computer hardware configuration and specific hap code info. I think another thing people overlook, in avpro for projection or performance, often unity also needs to be 8K Resolution running.

fingerx commented 4 years ago

One more thing, the complexity and motion of the video image can also have an impact on performance. If hap had a sound channel, I think it would also require more resources.

keitasumiya commented 4 years ago

@AndrewRH I am so sorry for my late reply. And thank you very much for your reply.

I tried your suggestion (uninstalling LAVFilter plugin, DirectShow plugin). As a result, As you saied, I can play hap-video with the DirectShow as a preferred API. HOWEVER, AVPro doesn't output the sound and the playing fps doesn't reach 60 (about 35).

Moreover, I encoded the hap-q-video with chunk 8, 16, 32. HOWEVER, it also doesn't improve...

AndrewRH commented 4 years ago

@AndrewRH Thank you for the information. Can you provide specific information on what you play. Computer hardware configuration and specific hap code info.

It's HapQ that I'm test (as per the original posters spec). I'm using FFMPEG to encode the video via:

ffmpeg -hide_banner -y -i %1 -ss 16 -t 1 -s 7680x4320 -chunks 8 -compressor snappy -vcodec hap -format hap_q %1-c8n-hapq.mov

It produces a 500MB file which is only 1 second long - so not quite the same as his video, but it definitely played at 60fps.

The hardware is an Alienware 13 R3 laptop:

I think another thing people overlook, in avpro for projection or performance, often unity also needs to be 8K Resolution running.

I'm not sure what you mean :) Do you mean that you need to have the Windows desktop running in 8K? I don't think this matters...

Thanks,

AndrewRH commented 4 years ago

One more thing, the complexity and motion of the video image can also have an impact on performance. If hap had a sound channel, I think it would also require more resources.

Since Hap is a key-frame only encoding, the motion of a video doesn't impact it's encoding. What does impact the encoding is the complexity of each frame. Is there is a lot of detail or noise then snappy will not be able to get such a high compression ratio, which means the file size and thus bitrate will increase, requiring more from the SSD and the system in general.

Having an audio track can affect performance as Windows often favours the quality of the audio track and will drop video frames if needed to keep the audio playback perfect.

AndrewRH commented 4 years ago

@keitasumiya

Are you using snappy compression when you're using your Hap videos? I see from your MediaInfo that the bitrate is constant (and extremely high). Please check that you're using snappy.

Here is the MediaInfo of my file for comparison:

image

Thanks,

keitasumiya commented 4 years ago

@AndrewRH Thank you so much!!

Yes, I tested both snappy and no snappy compression. And the file size of no snappy one is greater than snappy one as you said. But I couldn't feel the big difference when I play those videos with AVPro.

Actually, to encode and make videos, I tested the followings settings: 1) premiere pro + HAP Video :

Moreover, I made these video from some tiff sequences and the Mediainfo of the tiff is an attached image. tiff-mediainfo I hope this information will help to solve this problem...

Best regards,

AndrewRH commented 4 years ago

If you encode a simpler video does it play back smoother? I mean a video with more flat colour - something that will compress a lot more. I'm wondering where this is all related to the massive bitrate of the file you're using compared to mine.

Also another thing to try - if you remove the audio track does that helps?

Thanks,

keitasumiya commented 4 years ago

@AndrewRH Thank you for your comment.

[1] Yes, a simpler video is better than before. I made the simpler video like : https://youtu.be/k_g7DiIJ4KM

The result is as following:

[2] I also tried playing a video which do not have the audio track. However, the result is as same as a video with audio track.

fingerx commented 4 years ago

@keitasumiya AVPro Video v2.0.0-beta2 is better, you can test it.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 4 years ago

This issue has been automatically closed because it has not had recent activity. If you wish to continue this issue, then please create a new issue as we do not monitor closed issues.