vimeo / aframe-vimeo-component

Stream Vimeo videos into WebVR.
https://aframe-vimeo-component.glitch.me/
MIT License
81 stars 23 forks source link

Safari on Mac #6

Closed SteveX closed 5 years ago

SteveX commented 6 years ago

Viewing the demo using Safari on a current Mac the video plays but isn't visible. I can hear the audio but the video screen in the scene remains black. Safari 11.0.3 macOS 10.12.6

Works fine on Firefox on macOS 10.12.6.

Also, personally speaking, it would be great to see this working without React as a requirement. Any chance of a demo using a plain old a-frame component?

caseypugh commented 6 years ago

Thanks for pointing this out, I also see the same issue. Apparently there is a CORS issues with Safari specifically. Supposedly it has been recently fixed in Safari 11.1, but I have yet to test it out (will try soon) https://github.com/mrdoob/three.js/issues/8110

Regarding your React comment: Unfortunately, there needs to be a server-side component so that you can securely store your private Vimeo token. So yes, this could be built without React, but it'd have to be replaced with another server side framework (Rails, PHP, Sinatra, etc)

SteveX commented 6 years ago

PHP would work for me. Without any understanding of React (I have zero understanding of React) it's difficult to extract the a-frame required code from the demo.

I'd love to pursue this though, if you can ever find the time to make your inspiring demo a little more broadly applicable I would jump into this.

I have been successful with safari (both on Mac and mobile) when converting to m4v and then streaming from our server.

caseypugh commented 6 years ago

If you're familiar with PHP, then you could pretty easily rebuild this using Vimeo's PHP library https://github.com/vimeo/vimeo.php

You essentially just have to remake the server.js class in PHP: https://github.com/vimeo/vimeo-webvr-demo/blob/master/server.js#L16 - all it does is fetch your Vimeo video files for you.

Some quick pseudo code...

$response = $lib->request('/videos/1234567', [], 'GET');
SteveX commented 6 years ago

Ok thanks for the pointer, I will look into that. Much appreciated!

juniorxsound commented 5 years ago

This was fixed in #10 and tested with Safari Version 12.0.3 on macOS 10.13.6. Feel free to re-open the issue or open a new one if you are still seeing this behavior.