ViveSoftware / ViveMediaDecoder

A high performance video decoding Unity plugin for Windows.
http://u3d.as/usf
Other
133 stars 36 forks source link

Video not getting displaying on Quad following the guide #16

Open spaul13 opened 5 years ago

spaul13 commented 5 years ago

As specified in Readme, I have added the required ffmpeg dlls, Using the quad one from the demo, just specified the video and enable Play on Awake. After playing this on the editor, the logs have shown seems to have no error but I can't see my video on the Quad mesh renderer. shader is YUV2RGBA.

Can anyone please tell me why? I am using Unity 2018.1.0b4. Here is the log what I am getting

[ViveMediaDecoder] play on wake. [ViveMediaDecoder] init Decoder. [ViveMediaDecoder] Init success. [ViveMediaDecoder] Video format: (4096, 2048) [ViveMediaDecoder] Total time: 0.015625 [ViveMediaDecoder] OnApplicationQuit

Can anyone please tell me why my video not being displayed?

kyo8568131 commented 5 years ago

Hi spaul13, From the log message, the total time is only 0.015625 so the frame may not enough to fill the decode buffer in native. Please help to try with other video or modify native buffer size. Thanks.

spaul13 commented 5 years ago

Thanks for the reply. @kyo8568131 . I have used a bigger size video and it works but I want to use ViveMediaDecoder for the previous smaller size video. As per guideline, I have changed the _BUFF_VIDEOMAX value to 1 in the config file under Assets/ViveMediaDecoder/

but still, the same problem prevails. I can't see the video. can u plz tell me whether I am changing the buffer_size at correct place or properly or not?

kyo8568131 commented 5 years ago

You could move the config file to the project path(i.e. ./YourProject/ rather than ./YourProject/Assets/ViveMediaDecoder). If the issue remains, please help to provide sample video for further evaluation. Thanks.

spaul13 commented 5 years ago

I have tried to move my config file under my project folder and checks whether it works or not but still, the issue remains, I am here sharing the google drive link of the video which I was trying. Mainly it consists I single I frame (intra-frame encoded frame)

https://drive.google.com/open?id=131kWXgWgSSRLOUGNiIkU0ojPxJj36MxZ

Please ask me for further queries and please let me know whether this video can work or not?

kyo8568131 commented 5 years ago

It is an issue that the native decode incomplete. And I also found the native buffer state might be imprecision. I will trigger update process soon. Thanks.

spaul13 commented 5 years ago

@kyo8568131 Thanks for the reply. I will wait for the issue to be solved. I didn't understand why the decode is incomplete for these small-sized videos. @kyo8568131 can u please commit or send me the build file for the native scripts so that I can also try a little bit from my end.

What I noticed the config file is loaded using the loadconfig() func which is defined in DecoderFFmpeg.cpp which is not compiled in the .dll so from c# script there is not loading and reading of the configuration file done so any change in the config file is likely to affect. This is my probable observation. Any comment on this?

kyo8568131 commented 5 years ago

I've push the new update both on here and Unity Asset store. Please give it a try, thanks.

spaul13 commented 5 years ago

@kyo8568131 thanks a lot. It's working properly.

One small query can u please tell me how to switch between multiple videos, let's say after each update, I want to switch the video I am playing using ViveMediaPlayer.

(e.g. If u want I can create a different query (or issue) regarding this).

kyo8568131 commented 5 years ago

You can call stopDecoding and then initDecoder with other video path.