Code Monkey home page Code Monkey logo

vimeo-unity-sdk's Introduction

Vimeo Unity SDK

This plugin has two major features:

Installation

Download the most recent .unitypackage from the latest releases and open it up.

Recording

Features

The Vimeo Recorder is built on top of Unity's native MediaEncoder to make it simple to capture your Unity scene and share to Vimeo. Features include:

  • Easy Vimeo uploading: Customize your video title, privacy levels, downloads, and which project to add it to.
  • Record up to 4K video
  • Record 360 and stereo 360 video and publish to Vimeo's 360 platform
  • Record from the Unity Editor on Windows and Mac.
  • Capture from Screen, Camera, or Render Texture
  • Adjustable capture frame rate
  • Record in real-time or render offline
  • Control recording length manually, by duration, or via a custom script
  • *NEW* The Vimeo Recorder is now compatiable with AVPro Movie Capture. You should go check out their full feature list, but here are some of the most notable improvements:
    • Extremely robust & higher quality video recording
    • Works in the editor and also in standalone builds

Requirements

  • Requires a basic Vimeo account or higher.
  • Unity 2017.2 or higher.

Getting started

1. Setup

We provide a simple demo scene in the Vimeo/Scenes folder called Recorder. The Recorder scene contains the prefab, [VimeoRecorder]. Select it and in the component inspector you'll see the recording settings.

In order to add the Vimeo recorder in your own Unity scene simply go to the menu, GameObject > Video > Vimeo Recorder. You can also right-click in your Game Hierarchy and go to Video > Vimeo Recorder.

Sign into your Vimeo account by clicking Get Token. After you authorize Unity with Vimeo, copy the token, paste it into the Vimeo Token field, and click Sign into Vimeo.

2. Recording

Once you're signed in, all you have to do is click the Start Recording button. When you're done recording, click Finish & Upload.

Control recording via a script

Probably the most powerful part about this plugin is that you can control recording via a script. Below is a simple code snippet on how you would do that.

using UnityEngine;
using Vimeo.Recorder;

public class CustomRecorder : MonoBehaviour {
  VimeoRecorder recorder;

  void Start() {
    recorder = gameObject.GetComponent<VimeoRecorder>();
    recorder.defaultVideoInput = Vimeo.Recorder.VideoInputType.Camera;		
    recorder.defaultResolution = Vimeo.Recorder.Resolution.x2160p_4K;
    recorder.defaultAspectRatio = Vimeo.Recorder.AspectRatio.x16_9;
    recorder.frameRate = 60;
    recorder.recordMode = Vimeo.Recorder.RecordMode.Duration;
    recorder.recordDuration = 5; // in seconds
    recorder.autoUpload = true;

    recorder.videoName = "My Custom Video";
    recorder.privacyMode = Vimeo.Services.VimeoApi.PrivacyModeDisplay.HideThisFromVimeo;
    recorder.autoPostToChannel = false; 

    recorder.OnUploadComplete += UploadComplete;

    recorder.BeginRecording();
  }
  
  void UploadComplete() 
  {
    Debug.Log("Uploaded to Vimeo!");
    // Now you could change the scene and then immediately queue up another recording.
    // ...
    // recorder.BeginRecording();
  }
}

In this sample, CustomRecorder is assuming that it is a part of the same GameObject as the VimeoRecorder. All the settings that are avaiable in the editor GUI can be controlled via code.

Streaming

The SDK comes with the following example Unity scenes in the Vimeo/Scenes folder. Please note these demos don't work out of the box. You will need to authorize your Vimeo account and select your own video test.


Player - Demos simple video streaming inside of a 3D environment.

360Player - Demos how to stream 360 videos from Vimeo (supports 3D / stereoscopic video).

CanvasPlayer - Demos how to build a canvas-based player with basic playback controls.

Streaming Features

  • Vimeo Streaming leverages Unity's native VideoPlayer behind the scenes.
  • 4K video (on supported hardware)
  • 360 and stereo 360 video (equirectangular)
  • Select your preferred streaming video quality
  • Search for your Vimeo video within the Unity Editor, or manually specify via URL
  • Easy to use GUI and drag & drop components
  • We are now compatible with AVPro Video. You should go check out their full feature list, but here are some of the most notable improvements:
    • Versions for iOS, tvOS, macOS, Android, WebGL, Windows, Windows Phone and UWP
    • Adaptive video support. Vimeo supports HLS & DASH streaming. And with Vimeo Live you can even livestream into Unity.
    • 8K video (on supported hardware)
    • VR support (mono, stereo, equirectangular and cubemap)
  • *NEW* We now support streaming volumetric video using Depthkit. To learn more checkout our step by step walk-through on our wiki

Streaming Requirements

  • Unity 5.6.0 or higher.
  • Streaming Vimeo videos requires video file access via the Vimeo API. Accessing video files is limited to Vimeo Pro and Business customers.
  • You can only stream videos from your own Vimeo account. Access to all videos is limited to partnership-level integrations. If you are interested in a partnership, reach out to [email protected]

Setting up

1. Choose your playback method

Open up your Unity scene or create a new one. For streaming any Vimeo video, you will be using the VimeoPlayer component. There are two ways to setup the Vimeo player in Unity:

Prefab setup

The easiest way to get started is to either drag in one of the prefabs from Vimeo/Resources/Prefabs or simply right-click on your scene and the Vimeo Player from the Video menu:

Manual setup

If you are setting up your own scene and want to specify your video "screen" and audio outputs, you can add the Vimeo Player component to your GameObject.

2. Sign into your Vimeo account

Sign into your Vimeo account (or create one if you haven't already) and make sure you have some videos uploaded.

  • Click the "Get Token" button which will ask you to authorize with your Vimeo account.
  • After authorizing, copy the token and paste it into the Vimeo Token field in Unity.
  • Find your video and then copy the full URL or the video ID and paste it into the Vimeo Video URL field.
  • If you are not using one of the existing prefabs, then you will need to assign a GameObject to the Video Screen field. Currently, we only support Mesh and RawImage GameObjects.
  • Audio Output is optional. If left empty, a new audio object will be attached to the video screen.
  • For security reasons, the Vimeo token is not saved into the scene. But when you build it, the token will be included in the build itself automatically.

You're all set! Press play and you should now see your Vimeo video streaming in your app.

Vimeo & AVPro

If you're looking for an even more robust streaming and/or recording solution, we have integrated into AVPro's Video and Movie Capture plugins.

After installing either of AVPro's tools, the Vimeo plugin will automatically detect AVPro and a new option will appear.

Streaming with AVPro Video and Vimeo

The Vimeo Player component will now show a Video Player dropdown letting you to switch between Unity's native video player and AVPro Video. After selecting AVPro, you will need to assign their Media Player to the Vimeo Player component. Now when you run Unity, the Vimeo Player will automatically set the URL in the Media Player.

Recording with AVPro Movie Capture and Vimeo

The Vimeo Recorder component will now show a Video Encoder dropdown letting yo uswitch between Unity's native Media Encoder and AVPro Movie Capture. Select AVPro Movie Capture and assign the Capture component. Now when you record with AVPro's tools, Vimeo will automatically upload the video after it is finished recording.

Questions, help, and support

For questions and support, ask on StackOverflow. If you found a bug, please file a GitHub issue.

Make pull requests, file bug reports, and make feature requests via a GitHub issue.

Thanks

Big thanks to the Unity teams building MediaEncoder, GenericFrameRecorder, SkyboxPanoramicShader, and DepthKit

vimeo-unity-sdk's People

Contributors

caseypugh avatar frankcarey avatar juniorxsound avatar michaelboccara avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vimeo-unity-sdk's Issues

TestConfig could not be found

It appears that I have these problems:
In general it is a"The type or namespace name `TestConfig' could not be found" in different scripts:

  • Assets/Tests/Play/AVProMovieCaptureTest.cs(14,38): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/EncoderManagerTest.cs(10,35): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Play/AVProVideoPlayTest.cs(9,35): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Play/DepthkitPlayTest.cs(10,33): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Play/VimeoPlayerPlayTest.cs(8,36): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Play/VimeoRecorderPlayTest.cs(10,38): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Play/VimeoUploaderPlayTest.cs(10,38): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/EncoderManagerTest.cs(10,35): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VideoChunkTest.cs(10,31): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VideoChunkTest.cs(10,31): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VimeoPlayerTest.cs(9,32): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VimeoPlayerTest.cs(130,31): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VimeoPublisherTest.cs(12,35): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VimeoRecorderTest.cs(10,34): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VimeoSettingsTest.cs(8,34): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VimeoUploaderTest.cs(11,34): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?
  • Assets/Tests/Unit/VimeoVideoTest.cs(10,31): error CS0246: The type or namespace name `TestConfig' could not be found. Are you missing an assembly reference?

Any idea how to resolve it?

Vimeo 360 player using Google Cardboard modules in Unity?

Describe the issue

Google Cardboard modules and head movement appear to not function properly when a VimeoPlayer 360 prefab is included in the project. Is this a known thing?

Steps to reproduce the problem

Create a scene, drop in Google cardboard modules:
GVRControlerMain
GVREventSystem
GVREditorEmulator
as well as
VimeoPlayer360 (or even the flat VimeoPlayer)

And when compiled for iOS, head movement does not move the FOV.

Unity version

Versuib 2018.2.10f1 Personal

Operating system

Mac OS High Sierra

NullReferenceException when linking Vimeo Player with AVPro Video

Working on a project in Unity 2017.4.16f1 (macOS Mojave 10.14) with both Vimeo Player and AVPro Video, I have set up the MediaPlayer such that I can play local files or files from Google Drive just fine, but I get a NullReferenceException when I run in-editor with the Vimeo Player added, which prevents the URL from being set on the AVPro MediaPlayer.

The VimeoPlayer component has been set up as per the documentation, with the MediaPlayer linked, logged into a Pro account and with a video selected from the drop-downs in the editor. The error occurs regardless of the resolution setting, with only the line numbers in the error changing.

The full error:
NullReferenceException: Object reference not set to an instance of an object
Vimeo.VimeoVideo.GetVideoFileByResolution (StreamingResolution resolution) (at Assets/Vimeo/Scripts/Config/VimeoVideo.cs:148)
Vimeo.VimeoVideo.GetVideoFileUrlByResolution (StreamingResolution resolution) (at Assets/Vimeo/Scripts/Config/VimeoVideo.cs:136)
Vimeo.Player.VimeoPlayer.VideoControllerPlayVideo () (at Assets/Vimeo/Scripts/Player/VimeoPlayer.cs:221)
Vimeo.Player.VimeoPlayer.Play () (at Assets/Vimeo/Scripts/Player/VimeoPlayer.cs:199)
Vimeo.Player.VimeoPlayer.VideoMetadataLoad (System.String response) (at Assets/Vimeo/Scripts/Player/VimeoPlayer.cs:354)
Vimeo.VimeoApi.ResponseHandler (UnityEngine.Networking.UnityWebRequest request) (at Assets/Vimeo/Scripts/Services/VimeoApi.cs:219)
Vimeo.VimeoApi+c__Iterator3.MoveNext () (at Assets/Vimeo/Scripts/Services/VimeoApi.cs:238)
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

Steps to Reproduce:
1- Set up new Unity Project and scene.
2- Import AVPro Video and set up a MediaPlayer, either custom-built or using one of the provided prefabs.
3- Add a Vimeo Player to the scene, get token, set to use AVPro Video player.
4- Assign the MediaPlayer to the AVPro Media Player field on the Vimeo Player.
5- Assign a video using either the Vimeo URL or using the drop-downs to select an uploaded video.
6-Set the Resolution option to any of the options available.
7-Click Play to run the scene in-editor.

Two errors will appear in the console: One from AVPro stating that no file path has been provided and the other as detailed above.

Support files json response in addition to play

please help me as soon as possible
I used your unity package fro Vimeo player(vimeo-0.9.3, 2018.10.25)
But it doesn't work
I used unity5.6.4p2(64bit)

I checked from debug
VimeoVideo.cs/
public VimeoVideo(JSONNode video)

there is no field "play" in video parameter
"if (video["play"] != null) {"

video parameter : "{"uri":"\/videos\/302984985", "name":"BodyScan", "description":null, "duration":2312, "width":1280, "height":720,

"files":[ {"quality":"hd", "type":"video\/mp4", "width":1280, "height":720, "link":"https:\/\/player.vimeo.com\

/external\/302984985.hd.mp4?s=80ebdc48ac5716e7761311a87c1f80eb7b524d73&profile_id=174&oauth2_token_id=1145180683", "created_time":

"2018-11-27T05:34:51+00:00", "fps":29.97, "size":442058005, "md5":"99ad44e7987d11bfdc66619328f57a73"}, {"quality":"sd",

"type":"video\/mp4", "width":640, "height":360, "link":"https:\/\/player.vimeo.com\/external\/302984985.sd.mp4?

s=3e4daba0527b1e13eec170add39a51a61cd7b0d4&profile_id=164&oauth2_token_id=1145180683", "created_time":"2018-11-27T05:34:51+00:00",

"fps":29.97, "size":191057949, "md5":"d2d1fe825bd85fb276300402d8b869cd"}, {"quality":"sd", "type":"video\/mp4", "width

":960, "height":540, "link":"https:\/\/player.vimeo.com\/external\/302984985.sd.mp4?

s=3e4daba0527b1e13eec170add39a51a61cd7b0d4&profile_id=165&oauth2_token_id=1145180683", "created_time":"2018-11-27T05:34:51+00:00",

"fps":29.97, "size":371977428, "md5":"20fe11071133fde843bc21f936fc685c"}, {"quality":"hls", "type":"video\/mp4", "link

":"https:\/\/player.vimeo.com\/external\/302984985.m3u8?s=3ee90c44741843840e83f3182c1236a793d136f4&oauth2_token_id=1145180683",

"created_time":"2018-11-27T05:34:51+00:00", "fps":29.97, "size":442058005, "md5":"99ad44e7987d11bfdc66619328f57a73"} ]}"
2018-11-26_23-23-55

2018-11-26_23-23-55

Null Reference (Unity Player)

Describe the issue

I'm facing a Null Reference on the Sample scene.
I'm trying to use the Canvas player.
I haven't changed anything, just logged in, selected (from inside) recent videos, and took the last one.
The video is from our dev account and is private, with file access (I'm not sure if I've done it right).

Steps to reproduce the problem

Open the Canvas Player Canvas Screen.
Login with Token
Tried to reproduce my video:
https://vimeo.com/306040507/dd4982ae5c

I've noticed if I turn off autoplay, it just gives me the erros once I press Play.

Unity version

2018.2.13f1

Operating system

Windows 10

Errors on Play

Describe the issue

I get an error message on the console:

NullReferenceException: Object reference not set to an instance of an object
Vimeo.Player.VimeoPlayer.LoadVimeoVideoByUrl (System.String vimeo_url) (at Assets/Vimeo/Scripts/Player/VimeoPlayer.cs:95)
UnityEngine.Events.InvokableCall1[System.String].Invoke (System.String args0) (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207) UnityEngine.Events.CachedInvokableCall1[System.String].Invoke (System.Object[] args) (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEvent.cs:345)
UnityEngine.Events.UnityEvent.Invoke () (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:70)
UnityEngine.UI.Button.Press () (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:36)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:45)
UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update()

Steps to reproduce the problem

Just unpacked and run on canvas

Unity version

2018.2.12f1

Operating system

MAC High Sierra 10.3.3

Can't build

Describe the issue

Try to build and given 6 errors

Steps to reproduce the problem

Build to either platform

Unity version

Unity 2018.1.0f2

Operating system

Windows 10 64bit
image

Error when switching to the latest sdk

NullReferenceException: Object reference not set to an instance of an object
Vimeo.VimeoPlayer.Start () (at Assets/Vimeo/Scripts/VimeoPlayer.cs:84)

Looks like you can add an object that doesn't have an audio-source as the audio source

Video Quality defaulting to highest.

Hey I am using your plugin for a project I am working on, and I have had to change a few things to make it work/work cleaner, I will be posting my solutions over the next few weeks. Using unity 2017.3.0f3. First was that it was automatically going to the highest quality, this was because VimeoPlayer.GetPreferredQualities()
wasn't determining if the quality selected existed, and just throughing the highest one back.

Here is my code.

VimeoPlayer.GetPreferredQualities.txt

Video streaming problem with android huawei tablet

The video player works in unity editor, but when I build single scene on android Huawei tablet, the video not working, but the audio is fine even with seeking.

I am using Unity version 2017.2.0f3

build on android Huawei Mediapad T2, Model : BG0-DL09

screenshot_2018-06-12-17-54-31

iOS

Describe the issue

Is this supposed to work if you create an iOS App? I can stream a video to the Editor in Unity but I do not see anything when exported out to iOS.

Steps to reproduce the problem

I used the 360Video scene, added my Vimeo account, added a URL to a video, tested in the editor. Then exported out to iOS. I compiled the project with Cardboard, then Vuforia, then None, in the XR settings. None of these worked.

Unity version

2018.1.3f1

Operating system

OSX High Sierra. Tested on iPhoneX iOS 11.4. The target Minimum for iOS in Unity was set to 9.1 and then I also tried targeting 11.4

Enable sharing to social networks

Describe the issue

I would need, after having uploaded a video to Vimeo, to be able to share it to social network from my Unity app. It may be a low hanging fruit for you guys since the feature exists on the website, although I couldn't find it in the HTTP SDK. Anyway, that would save us a lot of effort of implementing each service's protocol.

Canvas video playback does not work in WebGL

Describe the issue

If you try to export a Unity scene that uses the Vimeo video canvas, it doesn't show the video. It only plays the audio.

Unity version

Tested on 2017.1 and 2018.1

Operating system

Windows & Mac

(also see #32)

Token missing from build if VimeoPlayer component is on a child gameobject in scene

Describe the issue

The VimeoBuildProcessor's OnProcessScene assumes that the player will be direct child of the scene root. My setup positions VimeoPlayer in a gameobject parented to a gameobject that is used for other means (Augmented reality tracking) thus not being able to be found by the build processor.

Issue #37 also mentions this exact same problem and suggests a pull request for it

Will there be an official fix to this?

Steps to reproduce the problem

Import the assets
Create a scene with the [VimeoPlayer] prefab in it
Parent the [VimeoPlayer] gameobject to another gameobject so that it is a child of the gameobject
Assign a token and url of video to play etc to the vimeo player so that it has a video to play
Build the app
See that the VimeoPlayer doesn't play and an error about not having a license token is presented

Unity version

2018.2.6f1

Operating system

Build: IOS/Android
Editor: Window/MacOS

Recording not available in the last Release.

Describe the issue

It simple does not exist either in the Sample scene nor when trying to add the game object from the contextual menu:

screen shot 2018-04-06 at 10 31 25

Steps to reproduce the problem

I just downloaded the latest Release (0.9). Maybe it simply not included by mistake in that Release package?

Unity version

2017.4.0f1 Personal

Operating system

macOS High Sierra 10.13.3

complete mess with UnityEditor

Hi,

Tried to migrate from 2017.2 to 2017.3, used your last sources pack (unity package is far outdated) and just realised that it's not usable for mobile at all. Some scripts reference to other scripts which uses UnityEditor assembly, but you didn't add it to EditorFolder of #if UNITY_EDITOR check..

Adaptive Video doesn't work with AVPro Video on Windows

Describe the issue

When selecting the adaptive option and using AVPRo Video on Windows, the stream doesn't open (may be PC configuration / OS version specific).

It seems to be related this method GetAdaptiveVideoFileURL() which returns an HLS stream for Apple, and a DASH stream for everything else (Windows and Android mainly).

A possible fix

Perhaps there should be an option to rather expose the HLS stream for Windows+Android? They both have pretty good HLS support and it would be very handy to be able to select either. HLS probably even has better support as it is more widely used, so it could be the default.

    public string GetAdaptiveVideoFileURL() 
    {
        switch (Application.platform)
        {
            case RuntimePlatform.Android:
            case RuntimePlatform.WindowsPlayer:
            case RuntimePlatform.WindowsEditor:
            case RuntimePlatform.OSXPlayer:
            case RuntimePlatform.OSXEditor:
            case RuntimePlatform.IPhonePlayer:
            case RuntimePlatform.tvOS:
                return files["hls"]["link"];

            default:
                return files["dash"]["link"];
        }
    }  

Videos not displaying on Android

I am using the Vimeo 360 Video prefab but when I stream the videos on Android the audio plays but the video does not display within a sphere. When it first plays i see a flicker of the first frame but after that I don't see anything.

The audio plays all the way through with the videoPlayer triggering the loopPointReached event.

Any ideas what might be going on? The only errors in LogCat is this:
E/WVMExtractor: Failed to open libwvm.so: dlopen failed: library "libwvm.so" not found

Video which is cached locally is working without a problem.

Any help would be appreciated.

Enumrate errors and responses from the API

Describe the issue

Error messages for various VimeoAPI responses are currently passed on as strings from the VimeoApi class. Given there are many responses from the API (e.g Quota exceeded, No access to a file...etc) it would make sense to enumerate these responses into something like Vimeo.ERROR.QUOTA_EXCEEDED

Build warning: UnityEditor.BuildTargetGroup.PSP2 is obsolete on 2018.3 and higher

Describe the issue

On Unity 2018.3 and higher UnityEditor.BuildTargetGroup.PSP2 is obsolete and thorws a warning when building. This might turn into a breaking build error in the future.

Assets/Vimeo/Scripts/Editor/VimeoPlugin.cs(63,30): warning CS0618: `UnityEditor.BuildTargetGroup.PSP2' is obsolete: `PSP2 is no longer supported as of Unity 2018.3'

Steps to reproduce the problem

Open Unity 2018.3 or higher and build any example scene to any platform

Unity version

Tested against 2018.3.6f1

Operating system

Windows 10 64bit

Sound is reduced in Unity 2019.1

Describe the issue

We've been using Vimeo Unity SDK without problems thus far, but the sound output has suddenly changed to be very low for all our videos, without us making any changes in the Unity scene or with the videos. Although, we did recently upgrade to Unity 2019.1, but I'm not sure if it's related or not.

The sound from the Vimeo video is playing and is synced, but I have to put my speakers to very high sound levels to hear it properly. All other sounds and music files in the project sound like in previous versions. We only have this issue with our Vimeo videos.

Audio Source is set to volume = 1, Stereo Pan = 0, Spatial Blend = 0.

Any ideas why this happens?

Steps to reproduce the problem

Add Vimeo Player Canvas to any scene and play any video.

Unity version

Unity 2019.1

Operating system

Windows 10

Vimeo and AVpro namespace error

I am trying to implement AVPro with Vimeo but I keep getting the following error:

Assets/Vimeo/Scripts/Config/PlayerSettings.cs(31,16): error CS0246: The type or namespace name `RenderHeads' could not be found. Are you missing an assembly reference?

I have tried re-importing both libraries but cannot seem to remove the error.

Any idea how i can resolve it?

Unity version

Unity 2018.2.16f1

Operating system

Mac 10.14

Unity-iOS Video play with low frame-rate

Describe the issue

When a video is played, the video looks quite laggy as like it has low frame rate. I tested the project build for android and everything in this platform looks good instead of iOS the videos are playing with low frame rate.

Steps to reproduce the problem

Just play a video from an account.

Unity version

2018.1.6f1

Operating system

MAC - iOS Device.

VimeoPlayer.Play() not working.

I am trying to create a player in unity canvas, so I disabled autoPlay in the inspector of VimeoPlayer and then I am loading a video using:
VimeoPlayer.LoadVimeoVideoByUrl(url);

And then when the player press a button I use:
VimeoPlayer.Play();

screen shot 2018-09-25 at 17 08 15

But it doesn't work, also, I tried using functions like Load, and LoadVideoById.
I tried to use the "Play Video" inspector button but it also doesn't work, but the "Load Video" button makes it work, but it inside its code it makes autoPlay active again, and that's not what I want. It seems the video can't be played except when autoPlay is active.

screen shot 2018-09-25 at 17 08 37

Steps to reproduce the problem:

  1. Open "CanvasPlayer.unity" scene that comes with the project.
  2. Set "Auto Play" as false in the Vimeo Player Inspector.
  3. Set Vimeo Video as "Get video by ID or URL" in the Vimeo Player Inspector.
  4. Copy any video from your vimeo account in Vimeo Video URL.
  5. Create a button and assign VimeoPlayer.Start() (EDIT: VimeoPlayer.Play()) in the On Click () event.
  6. Play unity.
  7. Click the button you created to play the video. (It doesn't work)
  8. Click the "Play Video" button in the Vimeo Player inspector. (It also doesn't work).
  9. Click the "Load Video" button in the Vimeo Player inspector and it will play the video.

Unity version: 2017.3.1f1

Operating system: macOS High Sierra 10.13.6

VimeoPlayer: You do not have access to this video's files

Using 2017.2.1f1 Personal..

VimeoPlayer: You do not have access to this video's files. You must be a Vimeo Pro or Business customer and use videos from your own account.
UnityEngine.Debug:LogError(Object)
Vimeo.VimeoPlayer:GetVideoFiles(JSONNode) (at Assets/Vimeo/Scripts/VimeoPlayer.cs:251)
Vimeo.VimeoPlayer:OnLoadVimeoVideoComplete(String) (at Assets/Vimeo/Scripts/VimeoPlayer.cs:241)
Vimeo.Services.<Request>c__Iterator5:MoveNext() (at Assets/Vimeo/Scripts/Services/VimeoApi.cs:235)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

When just using the Prefab "Vimeo Player (Screen)" .. I even updated my token. I was trying to use this video.. https://vimeo.com/22715565

Doesn't sign in outside of Unity Editor. Movies don't play

Unity version Unity 2017.4.11f1

I can play movies in editor, after entering API token and clicking the sign in button.
But on an android build, It errors saying I'm not signed in.
I tried calling VimeoPlayer.SignIn() with our token before trying to stream anything , I don't get the error after that, but it still doesn't play the movie.

What is the recommended method of signing in to Vimeo (without user interaction) that will allow me to play a movie in an android build outside of the Unity editor?

"Save token with scene" option missing

Describe the issue

The "Save token with scene" option in vimeo player as described in readme is missing. When building no video is streaming.

Steps to reproduce the problem

Created scene and draged in vimeoplayer prefab. Generated token and signed in through inspector. Expected "Save token with scene" option which is not present. Streaming working perfectly in editor. Not in builds to WebGL and Windows.

Unity version

2018.1.5f1 Personal

Operating system

Windows 10

P.S Love this valuable project!

empty screen (white)

Describe the issue

Hi everyone.

After sign-in in unity and Vimeo and add my video from "most recent videos" and play the scene I can't see my video it says:

ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
System.Collections.Generic.List1[SimpleJSON.JSONNode].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633) Vimeo.Player.VimeoPlayer.GetPreferredQualities (System.Collections.Generic.List1 qualities, StreamingResolution resolution) (at Assets/Vimeo/Scripts/Player/VimeoPlayer.cs:357)
Vimeo.Player.VimeoPlayer.GetVideoFiles (SimpleJSON.JSONNode json) (at Assets/Vimeo/Scripts/Player/VimeoPlayer.cs:334)
Vimeo.Player.VimeoPlayer.OnLoadVimeoVideoComplete (System.String response) (at Assets/Vimeo/Scripts/Player/VimeoPlayer.cs:237)
Vimeo.VimeoApi+c__Iterator6.MoveNext () (at Assets/Vimeo/Scripts/Services/VimeoApi.cs:341)
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

Unity version

2017.3

Operating system

Windows 10

JSON build error

Describe the issue

Build errors:

Assets/Vimeo/Scripts/Player/VimeoPlayer.cs(339,34): error CS0234: The type or namespace name Parse' does not exist in the namespace JSON'. Are you missing an assembly reference?
Assets/Vimeo/Scripts/Recorder/VimeoPublisher.cs(55,42): error CS0234: The type or namespace name Parse' does not exist in the namespace JSON'. Are you missing an assembly reference?
Assets/Vimeo/Scripts/Recorder/VimeoPublisher.cs(129,34): error CS0234: The type or namespace name Parse' does not exist in the namespace JSON'. Are you missing an assembly reference?
Assets/Vimeo/Scripts/Recorder/VimeoPublisher.cs(147,34): error CS0234: The type or namespace name Parse' does not exist in the namespace JSON'. Are you missing an assembly reference?
Assets/Vimeo/Scripts/Services/VimeoUploader.cs(93,37): error CS0234: The type or namespace name Parse' does not exist in the namespace JSON'. Are you missing an assembly reference?

Steps to reproduce the problem

Import package vimeo-0.9.3.unitypackage
Build

Unity version

Unity 2017.3.1f1
vimeo-0.9.3.unitypackage

Operating system

Windows 10

Record in standalone build

Unfortunately, this is limitation of MediaEncoder, Unity's video encoder. Hopefully this changes in the future.

360 video playback on Oculus Go

Describe the issue

When streaming a 360 video using the Vimeo 360 prefab on an Oculus Go, the display comes up gray, with no video. The audio is playing just fine, but there is no video at all. The Vimeo player for traditional media works fine on the Go, just not 360 Video. I'm not seeing any errors from the Oculus Go in the Unity error log connected to the device.

Steps to reproduce the problem

Created the project, added in the Vimeo SDK. Added the 360 player prefab, connected account selected video to play. Allow play on load for testing. Build the app and installed to Go, run the app. The screen starts black, switches to grey, audio plays, the video does not.

Unity version

2018.3.8f1

Operating system

Oculus Go - Android.

Poor 360/3D video streaming performance with spherical prefab - Unity performance issue?

Describe the issue

When playing a Vimeo video using the 360 player prefab in this Vimeo SDK for Unity, the streaming is significantly more fragmented and poorer at high resolutions compared with streaming directly using the Vimeo app (outside of Unity app). As expected, selecting a lower default resolution remedies this problem, but I wonder if there are some rules of thumb in terms of graphics settings in the Unity player settings that would ameliorate this - or whether there will inherently be poorer streaming performance when viewed through Unity app (compared with just using the Vimeo app on the same device).

Steps to reproduce the problem

Create new 3D Unity project, add in Vimeo SDK assets, use 360 player prefab in a scene, link to a 3D 360 video, select highest resolution output (or even 1440). Place main camera within sphere.

Unity version

Unity 2018.3.0f2

Operating system

Project created on Mac OS 10.13.6 (High Sierra)
But the project was built to iOS and viewed on an iPhone 7. This is where I find the poor streaming performance.

Streaming video protected by password

Describe the issue

In Vimeo player for Unity (Vimeo Unity SDK), is it possible to play videos which are protected by password. If so, how? and is there a way to hardcode (i.e. remember) this password?

Steps to reproduce the problem

Unity version

Unity 2017 and higher

Operating system

Windows

Video freezes on Android

Describe the issue

After a few minutes of playing the video, it freezes.
With the same video, this happens at about the same time at a difference of a few seconds.
Logs:
11-08 13:20:27.770: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus Failed to readFile
11-08 13:20:27.770: E/MM_OSAL(1071): Read File Error!
11-08 13:20:27.770: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus VIDEO_FMT_FAILURE
11-08 13:20:27.770: E/MM_OSAL(1071): Mpeg4File::getSample FATAL starting at 5507377, size 337
11-08 13:20:27.770: W/NuMediaExtractor(29456): read on track 1 failed with error -1004
11-08 13:20:27.850: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus Failed to readFile
11-08 13:20:27.851: E/MM_OSAL(1071): Read File Error!
11-08 13:20:27.851: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus VIDEO_FMT_FAILURE
11-08 13:20:27.851: E/MM_OSAL(1071): Mpeg4File::getSample FATAL starting at 57596232, size 32069
11-08 13:20:27.851: W/NuMediaExtractor(29456): read on track 0 failed with error -1004

11-08 13:30:45.672: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus Failed to readFile
11-08 13:30:45.672: E/MM_OSAL(1071): Read File Error!
11-08 13:30:45.672: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus VIDEO_FMT_FAILURE
11-08 13:30:45.672: E/MM_OSAL(1071): Mpeg4File::getSample FATAL starting at 37037493, size 1860
11-08 13:30:45.672: W/NuMediaExtractor(30751): read on track 0 failed with error -1004
11-08 13:30:45.674: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus Failed to readFile
11-08 13:30:45.674: E/MM_OSAL(1071): Read File Error!
11-08 13:30:45.674: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus VIDEO_FMT_FAILURE
11-08 13:30:45.674: E/MM_OSAL(1071): Mpeg4File::getSample FATAL starting at 3663184, size 343
11-08 13:30:45.674: W/NuMediaExtractor(30751): read on track 1 failed with error -1004
11-08 13:30:46.870: D/(1049): DpmQmiMgr areAllIfaceActive
11-08 13:30:46.935: E/NetlinkEvent(1074): NetlinkEvent::FindParam(): Parameter 'INTERFACE' not found
11-08 13:30:46.935: E/NetlinkEvent(1074): NetlinkEvent::FindParam(): Parameter 'STATE' not found
11-08 13:30:46.935: E/NetlinkEvent(1074): NetlinkEvent::FindParam(): Parameter 'TIME_NS' not found
11-08 13:30:46.935: E/NetlinkEvent(1074): NetlinkEvent::FindParam(): Parameter 'UID' not found

11-08 18:08:06.387: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus Failed to readFile
11-08 18:08:06.387: E/MM_OSAL(1071): Read File Error!
11-08 18:08:06.387: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus VIDEO_FMT_FAILURE
11-08 18:08:06.387: E/MM_OSAL(1071): Mpeg4File::getSample FATAL starting at 2473320, size 361
11-08 18:08:06.387: W/NuMediaExtractor(14626): read on track 1 failed with error -1004
11-08 18:08:06.719: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus Failed to readFile
11-08 18:08:06.719: E/MM_OSAL(1071): Read File Error!
11-08 18:08:06.719: E/MM_OSAL(1071): Mpeg4File::mp4ReadStatus VIDEO_FMT_FAILURE
11-08 18:08:06.719: E/MM_OSAL(1071): Mpeg4File::getSample FATAL starting at 22387482, size 17010
11-08 18:08:06.719: W/NuMediaExtractor(14626): read on track 0 failed with error -1004
11-08 18:08:08.516: D/(1049): DpmQmiMgr areAllIfaceActive
11-08 18:08:08.569: E/NetlinkEvent(1074): NetlinkEvent::FindParam(): Parameter 'INTERFACE' not found
11-08 18:08:08.569: E/NetlinkEvent(1074): NetlinkEvent::FindParam(): Parameter 'STATE' not found
11-08 18:08:08.569: E/NetlinkEvent(1074): NetlinkEvent::FindParam(): Parameter 'TIME_NS' not found
11-08 18:08:08.569: E/NetlinkEvent(1074): NetlinkEvent::FindParam(): Parameter 'UID' not found
11-08 18:08:08.702: I/mmid(822): select timeout: wait for receiving msg
11-08 18:08:10.049: I/Finsky(9321): [4202] com.google.android.finsky.bp.am.run(6): Stats for Executor: Db-verify_apps.db com.google.android.finsky.bp.an@9e941f6[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]
11-08 18:08:10.710: I/Finsky(9321): [4202] com.google.android.finsky.bp.am.run(6): Stats for Executor: Db-scheduler com.google.android.finsky.bp.an@4ae39f7[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 11]
11-08 18:08:10.711: I/Finsky(9321): [4202] com.google.android.finsky.bp.am.run(6): Stats for Executor: InstallQueueDatabaseManager com.google.android.finsky.bp.an@fe22064[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]

Unity version

2017.4.3f

Operating system

Android

Saving the Token with the Unity Project - Is this possible?

We build our app across a mac and a windows PC, the project is shared with Unity Teams Git so that it is shared between the PCs - during our testing of our app, sometimes I will build the app only to find that the Vimeo Token is missing and the vimeo plugin then doesn't work, but this seems to be intermittent. We are saving the scene that contains the scripts with the token inbetween working on them.

To reproduce, make a scene with the vimeo player in

Activate it with a token
Share the scene with source control of some form - ideally Unity Teams
Edit the scene on another pc, if you like - also make sure that on that pc you activate the same scripts with the token
Save the changes to the scene and share it back to the original pc
See that the token is suddenly missing

Unity version 2018.2.10f1

Windows 10/Mac OS

Is there a way to save the token with the project? This would be ideal, it is very easy to miss the fact that the token hasn't saved before building, especially when maintaining IOS and Android builds across a development machine for each

Video will not play when called started by Vuforia on Android

Describe the issue

I'm trying to track down the cause of this problem. I can play Vimeo videos on an Android device with just using the example scene which uses just the Viemo Player Prefab. When I add Vuforia and using a simple addition to their scripts to activate the VimeoPlayer, which boils down to SetActive(True) on the prefab, when in the editor it plays fine. When I build and Run it on the same Android device as the example screen, the Vimeo player does load, It sets up the Video Controler, Calls LoadAndPlay Video goes to start the video but doesn't continue from there. I found that it is loading all of those functions with debug.log messages throughout the SDK, but I seem to be stuck at this point trying to figure out what's not allowing the video to play. Seeing as it's streaming video across web / wifi and such, I am waiting a few minutes to see if the video eventually plays. I've also set the resolution to x360p to try to minimize the effects of high-resolution video streaming.

Steps to reproduce the problem

Follow the directions to make a Vueforia AR target.
added VimeoPlayer Prefab(Got token, logged in, selected video) as a child object of the Image Target.
adjusted VimeoPlayer for proper sizing.
Extended Default vuforia event script to make VimeoPlayer active when the target is found.
White screen shows up and stays there.

Unity version

tried in 2018.2 and 2018.3

Operating system

Android

Missing token in WebGL builds

Describe the issue

I build for WebGL and the token is missing (either stripped by the building process or not included at all). I see that there is a VimeoSettings class that is used in VimeoBuildProcessor to set the token on build but nowhere in the README file says I should include a VimeoSettings component in the scene. Is the documentation missing something? Should the VimeoPlayer contain the settings?

Steps to reproduce the problem

  1. Added package in the project
  2. Added a VimeoPlayer (Canvas) object in my scene
  3. Removed the Canvas and made it a child on my already existing Canvas and configured the video surface size to fit my scene.
  4. Used the VimeoPlayer component to successfully login
  5. Added a link for a private video (owned by me/in my account)
  6. Built for WebGL
  7. Deployed to test hosting
  8. This error is displayed after scene loading is complete:
{
    "error": "Something strange occurred. Please contact the app owners.",
    "link": null,
    "developer_message": "No user credentials were provided.",
    "error_code": 8003
}

I inspect the requests sent by the browser and I see an API request to Vimeo with the following header:

Authorization: Bearer

which means the token is missing.

Unity version

2018.2.0f2

Operating system

Ubuntu 16.04 (KDE neon User Edition 5.13)

AVPro Video Trial not exposing MediaPlayer to SDK

img_6194

Describe the issue

Hi - I tried to reopen this issue (this is closed issue #30) but I don't have permission. As the previous user experienced, AvPro video is not a player option after installing both the 30-day AVPro video trial and the vimeo sdk in a project.

When I create a NEW project, yes, it works. However in an EXISTING project scene, it does not. You mentioned adding VIMEO_AVPRO_VIDEO_SUPPORT to the list of defines. How does one do that?

I'm attaching a screenshot showing that I have the SDK installed yet the player is not an option.

Steps to reproduce the problem

Take an existing Unity project that has the Vimeo SDK installed but not AVPro video; install the AVPro video trial asset custom package; drag and drop the Vimeo player prefab (I am using the 360 player prefab). I'd like to do this without creating a new project from scratch.

Unity version

I'm using Unity version 2018.3.0f2 Personal.

Operating system

Mac OS High Sierra

AVPro Video Trial not exposing MediaPlayer to SDK?

Describe the issue

I have downloaded the free trial of AVPro Video and added both that package and the Vimeo Unity SDK to a demo scene. The Vimeo SDK doesn't seem to recognise the existence of the player, since I cannot select it as my main Video Player in the [VimeoPlayer] component.

We would like to stream Vimeo Live via the combination of these two packages in a Unity Scene (AR, eventually). Any ideas on what is going wrong?

Steps to reproduce the problem

  • New Unity project

  • add Vimeo SDK

  • add AVPro Video free trail package

  • VimeoPlayer GameObject doesn't have a Video Player prop to switch to the MediaPlayer from AVPro Video

  • (see my screenshot for the current setup)

Unity version

v2018.1.4f1

Operating system

macOS High Sierra 10.13.6

screen shot 2018-08-09 at 16 48 46

AVPro 360 playback flickering when using Vimeo SDK?

Describe the issue

Hi - I'm using AVPro as a player option for the Vimeo 360 player. I was able to get playback to work, however in the game view the playback has immense flickering. The scene uses cardboard as well.

Steps to reproduce the problem

Create scene with the following gameobjects:

GvrControllerMain
GvrEventSystem
GvrEditorEmulator
360SphereVideo
Sphere
AVPro Video Media Player
[VimeoPlayer]

In the vimeo player script options, set player to AVPro Video Media Player, select 360 vimeo video of choice, set resolution to Adaptive (or anything actually).

Unity version

Version 2018.3.0f2 Personal

Operating system

Mac OS High Sierra

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.