xbapps / xbvr

Tool to organize and stream your VR porn library
344 stars 129 forks source link

Fisheye 200 degree video play as regular 180 #338

Closed hjs0007 closed 3 years ago

hjs0007 commented 4 years ago

Player usually use naming convention to determine how to play a file. Because the filename returned to the player in the json from deo portal is not the original name, the player can't detect how to play a video and seem like to fallback to VR180 automatically. You should set stereoMode and screenType parameters (see https://deovr.com/doc#single-video-deeplink) based on original filename.

theRealKLH commented 4 years ago

if the video could be downloaded in multiple versions, how do you choose the "original filename"? outside of video preview generation is xbvr looking inside the video to determine the type of encode/format?

hjs0007 commented 4 years ago

By original filename, I mean the filename I use on my local storage.

theRealKLH commented 4 years ago

Gotcha. But my original filename doesn't specify VR180 or VR200 or even SBS, TB, OU, etc (playing devil's advocate).

hjs0007 commented 4 years ago

You should. This is how most players detect how to play the file.

To return to the main issue, I tried to fix the issue. I see that SLR is sending this json:

 "stereoMode": "sbs2l",
 "projection": "fisheye_regular",

Unfortunately, when I send the same data with XBVR, Deo is still playing the video as 180 SBS. Seem like Deo is using an SLR "proprietary" extension again...

theRealKLH commented 4 years ago

but xbvr isn't a player. If you are saying your filename specifies VR220, then isn't it deovr that's not handling it? Or... (back to your original statement) are you saying xbvr is sending something other than the true filename?

hjs0007 commented 4 years ago

are you saying xbvr is sending something other than the true filename

Yep. XBVR return an url with the original name that is gone. Also, even if the name would be retained, I'm not sure if the detection based on name would override the json data. This is why this is important that xbvr return the right configuration (based on original name or technical data about the video file). But I discovered that it seem like the deo api doesn't allow it right now. It works with SLR because Deo use a proprietary api for them.

github-userx commented 4 years ago

Noob here, not sure if this might help but see from deovr dev:

Content producers can enjoy ZCam K1 Pro fish-eye mesh support. That way you can get original 220º FOV with no distortion caused by equirectangular conversion. Simply add "MKX220" into filename and it will be recognised automatically.

Source: https://i.reddit.com/r/xvr/comments/gl48g6/deovr_update_headtracking_axes_default_180_sbs/

flightsim73 commented 3 years ago

Any other thoughts on this? Is there a way to parse the filename and then update the screenType? https://deovr.com/doc

"stereoMode" can be set to "sbs" for side by side stereoscopic layout, "tb" for top-bottom layout or "off" for monoscopic videos. "stereoMode": "tb"

"screenType" can be set to "flat" for a 2D quad display inside of VR, "dome" for 180° videos, "fisheye" for fisheye lens videos and "sphere" for 360° videos, “220” for 220° mesh and “250” for 250° mesh. "screenType": "sphere"

hjs0007 commented 3 years ago

Fixed in #433