I'm working on a VR application (in Unity) for the Quest that one of its features is to be able to record yourself from a camera. I have tried some assets like VR capture (by RockVR), but they only work on certain platforms such as Windows or macOS. I have also tried capturing frames and then converting them to a .gif or .mp4 file but that also requires a platform-specific library. Does anyone have a solution?
Related
My multiplayer VR project is based on Unity3D, Oculus Integration v1.39 and PUN2 running on Oculus Quest. I'm using the standard teleport script provided in the Oculus library. PhotonAvatarView is what I use to keep avatar position/rotation in sync across clients.
Unfortunately, when a player teleports to a new location, the other one doesn't detect any change in the remote avatar. It seems like PhotonAvatarView doesn't see the change in location of the user, which is really strange. How can I fix it?
PhotonAvatarView code is available at this URL: https://doc.photonengine.com/en-us/pun/current/demos-and-tutorials/oculusavatarsdk
I'm developping a Universal Windows Application to stream Hololens Camera and interact with it. Can you help ?
1st attack angle : Creating a Unity project and build in UWP.
I have succefully create the SharingServer from Holotoolkit-Unity and i can send custom message to the hololens from my unity app. But impossible to get video stream from device portal into a classic Unity video player
using https://[username]:[password]#[HololensIP]/api/holographic/stream/live.mp4?holo=true&pv=true&mic=true&loopback=true
returning WindowsVideoMedia error 0x80072f8f while reading [url]
I suppose the problem is comming from the video type (without duration) but it's .mp4 H264 witch should be accepted.
In front of that impossible wall, i start over into Visual Studio making directly a UWP.
2nd attack angle : UWP straight from VS2017
There i can use WindowsDeviceProtalWrapper to get the stream and display it into a MediaElement.
But right now impossible to import SharingClient.dll into VS.
So i can't send data to my hololens with my UWP.
Thank you for your help
I'm using MovieTexture now, but when a video file is added to unity Project, it will automatically be imported and converted to Ogg Theora format. and the quality is really bad.
I have tried changing the quality setting and even on the highest setting the video is still pretty bad quality, I have tried it in multiple file formats like .mov, .avi. .mpeg4 etc. I have even tried converting it to .ogv to try and get around unity converting it itself, and still the quality is poor. The platform is PC, and in the build the quality is the same as in the editor.
so the question is ,how to play high quality video in unity no matter using MovieTexture or anything else like some plugins?
Unity player on Windows only supports OGG, which is why Unity is transcoding your videos.
I have use the Renderheads AVPRo Quicktime plugin on Windows to play very high quality videos in kiosk setups. (They also have one for Windows Media format, but I used Quicktime).
Link: Renderheads AVPro (Quicktime)
I am not affiliated with them in any way, just a very happy customer, and here is the review I posted on the Unity Asset store:
Great work on your plugin! I've used so many plugins that don't work well over multiple platforms, or require switching between platforms, or manual steps, or manual licensing, or DLL hell, etc. I have to say you nailed it.
I develop on a Mac (and your plugin runs in the Unity Editor), then deploying on Windows. It all worked well straight forward and as documented. Even the events to detect when a video has loaded and is ready to play just what I needed (as we are loading a large video file).
Additionally, the error messages are very precise and pin-point a problem (missing file, bad format, etc) which means less time debugging.
We are working on a prototyp application using unity3d. Your goal is to create a fluid and fun to use cross platform app.
The problem we facing right now is streaming (h.264 - mp4) video content over the web. This will be a major feature of our app.
I have already tried MovieTextures and the www class but it seems the files must be in ogg format which we can not provide. On the other hand handheld.playfullscreenmovie seems to be an android and ios only feature which uses the build in video player. This would be great if it would be supported on other platforms (e.g. Win8-Phone) as well.
Is there another cross platform option to stream (h.264 - mp4) video content over the web and display in full screen or as gui object? Or are there any plans to support something like this in the near future? Or is there a stable plugin for such a task?
Thanks
As of Unity 5 Handheld.PlayFullScreenMovie supports Windows Phone and Windows Store as per http://docs.unity3d.com/ScriptReference/Handheld.PlayFullScreenMovie.html
On Windows Phone 8, Handheld.PlayFullScreenMovie internally uses Microsoft Media Foundation for movie playback. On this platform, calling Handheld.PlayFullScreenMovie with full or minimal control mode is not supported.
On Windows Store Apps and Windows Phone 8.1, Handheld.PlayFullScreenMovie internally uses XAML MediaElement control.
On Windows Phone and Windows Store Apps, there generally isn't movie resolution or bitrate limit, however, higher resolution or bitrate movies will consume more memory for decoding. Weaker devices will also start skipping frames much sooner at extremely high resolutions. For example, Nokia Lumia 620 can only play videos smoothly up to 1920x1080. For these platforms, you can find list of supported formats here: Supported audio and video formats on Windows Store
mp4 is not a streamable container. If you read the ISO specification, you will see that MP4 can not be streamed. This is because the MOOV atom can not be written until all frames are know and accounted for. This 100% incompatible for live video. There are supersets of MP4 used in DASH that make this possible. Essentially, they create a little mp4 (called a fragment) file every couple seconds. Alternatively you can use a container designed for streaming such as FLV or TS.
You will probably need to step outside the unity sdk a bit to enable this.
I have a video in .avi format which needs to be rendered in a UI developed using GWT.The video does not play in Windows Media Player but opens up smoothly in VLC media player.Is there some way to use VLC media player to render the video in the GUI without changing video format(or any other processing on the video).
Thanks,
In pure GWT it's not possible. Imagine that GWT is environment of HTML and JavaScript language so you are limited by them and your app is encapsulated what browser serve to you. However you could put Java applet that could force to run VLC.
Another way of playing movie in the browser is to use flv player or use HTML5 (like youtube), but in this solution you must convert your video file.