VideoController

Plugins VideoController 2


VideoController v2.0

Full documentation below in v1.0
  • Triggers - can play videos outside the VAM folder, even URLS and can specify which screen.
  • Looping, Autoplay, Local paths, Packaged videos, Screens slider (thanks RedEyes), Path fixes.
VideoController v1.0 - Main documentation including patches

This uses the built in Unity Video Player to play videos directly from your PC hard drive inside VAM. It is fast and lightweight and can cope with lots of videos simultaneously.


(Please put requests and bugs into the Discussion section above)

It supports most video formats including mp4, mpg, m4v, mpeg, webm, wmv, vp8, ogv, mov, dv, avi and asf.
It supports audio playback (can get noisy with lots of videos).
It supports multiple videos streaming at the same time in various layouts, performance will depend very much on your hardware and the amount of compression.

(Ideally use well compressed videos with low bitrates e.g. 1100kbps. With good compression you should manage at least 9 streams even from an old hard drive. SSD drives will go a lot higher.)

Instructions
  • Collect your favorite videos inside a folder inside the VAM folder - as many as you want, the plugin will randomly shuffle them.
  • Add an atom to the scene - it can be any type of atom such as a cube or a bed. Basically this is going to be the projector. You can move the atom around and rotate it and the screens will go with it.
  • Add a plugin to the atom and select this script.
  • In the settings start by browsing to the folder containing your videos. They should appear in the list on the right, only videos we support will show in the list.
  • Hit Play to get the first screen running.
  • Tweak the settings and save the scene, it should reload correctly.
Settings
  • Layout
    • Wall is simply a wall of screens all the same size - X,Y large e.g. 3x3
    • Cylinder will arrange the screens around the atom as a cylinder. X,Y will control how many.
    • Dome - is a bit experimental, try it you may like it. It's hard fitting rectangles to a hemisphere!
    • Arch will curve the screens overhead as you increase Y.
    • 5GridH is a fixed layout with a large screen in the middle and 4 smaller screens to the sides.
    • 5GridV is the same except the smaller screens are above and below
    • 13Grid is 13 screens. A large one in the middle surrounded by 11 smaller screens.
  • Number of Screens X,Y sets the number of screens across and up for all modes except the Grid ones.
  • Distance sets the distance in metres from the atom to the screens.
  • Curvature applies a curve to each screen like a curved TV.
  • Aspect Ratio sets the aspect ratio of all screens - not much use if you have multiple aspect ratios. Unfortunately Unity doesn't pick up the aspect ratio automatically.
  • Screen Size makes all the screens larger or smaller.
  • Loop Mode - makes all screens loop seemlessly instead of randomly picking the next video.
  • Animate In - adds a little ease animation when a video ends and the next one starts.
  • Rotate - rotates all screens around the up axis of the atom.
  • Audio Volume - sets the volume of all screens (also see _nosound below).
  • Alphabetical Order - normally the videos are shuffled randomly, this will play them in alphabetical order.
On top ofthe overall volume you can tell the plugin to not play the sound on specific videos. You do this by adding "_nosound" to the file name.
E.g. rename "Kittens.mp4" to "Kittens_nosound.mp4" - other videos will still play sound, this one won't. This is particularly useful where you have a lot of movies with music.
(It's fiddly doing complex UI in VAM so this was a lot easier).

Triggers
With the browse to folder option you can only play videos that are inside your VAM folder. Triggers let you play videos form anywhere (including URLS).
To add a trigger, locate the atom with this script on it, then locate the VamSander.VideoController.

Added Triggers Are:
  • Play Once - play the video once, the screen will then stop, will not be added to video list. More options documented below.
  • Add Files - add multiple files to the video list, options to specify screen and if there is audio, files can be outside VAM path. More options documented below.
  • Play
  • Stop
  • Refresh/Clear - will reset video list to whatever is in the browsed folder, videos added by triggers will be gone.
  • Play Once and Add Files can have extra parameters to specify the screen they target and if they play audio.
Play Once and Add Files Triggers

Files can be anywhere on your hard drives.
Files can also be URLS, but they need to end with known movie types - to be clear pointing this at a YouTube page won't work, it has to be an actual video file path ending in e.g. "mpg"

Simple Example:
C:\MyVids\Video1.mpg

You can add additional options to the end of the file path to force a specific screen or to mute audio. These options have to be at the end of the line and seperated by commas.

More Complex Example:
E:/abcdef/4.mp4, screen:3, audio:false
https://somewebsite.com/vids/5.mpg, screen:0

This will try and play 4.mpg on sreen 3 without audio and 5.mpg on screen 0, with audio.

Screen Numbers

Screens are numbered from bottom left to top right going horizontally first.
The first screen is always 0 (not 1).

1632606975884.png


For cylinder and dome modes you will probably need to experiment.
For Grid modes, the large screen at the centre is always screen 0 - the rest are ordered as above.

Note: The Browse folder has the advantage that if you save the scene and make a package including the video folder - it should work on another machine as you've bundled the videos as well. Using URLs should work too.

Maintenance and Support
I'm providing this free of cost, no Patreon. I've had it kicking round on my hard drive for a bit meaning to post it here for others to use.
I'm probably going to fix the first few rounds of bugs people report (assuming people use it) - I already noticed some while making the video. I'll probably do a few feature requests too - I already have some TODO's below.
I'm not planning long term maintenance on this however.
So feel free to take the code and re-release it in the future.

TODO:
Add support for still image slide shows.
See if there's some way to fix aspect ratio.

FAQ:
Does it support URLS?
Yes, but only with triggers, and the URL has to point at a video file - youtube pages won't work.
Can I add collisions to the screens?
The screens aren't physical objects and don't have a collider. What you can do however is place a cube or something else behind them.
Do I have to put the videos inside the VAM folder?
No, you can use triggers. You can't browse outside of the VAM folder, but you can put full video paths into triggers.
Author
VamSander
Downloads
12,848
Views
12,848
First release
Last update
Rating
5.00 star(s) 17 ratings

Share this resource

Latest updates

  1. Added triggers and other fixes

    Triggers added: Play Once - play the video once, the screen will then stop, will not be added...

Latest reviews

Really like this. One suggestion, if you can add the ability to slow down the videos or control what point they are at with a slider like in VLC media player.
Amazing! just what I needed, thank you so much for sharing
goooooog
A MUST HAVE. What else?
Your work is awesome. Thanks for sharing my friend. Greetings from Germany
works perfectly, thanks very much for sharing
amazing!
Awesome work - this makes video playback from local files so easy. Great features with the different screen layout options.
As a concept this looks very promising and will definitely come in pretty handy creating some crazy effects out of this world! 5 stars just for the development, effort and the idea. Might become a standart plugin.

At the moment we keep this plugin in "standby" until we can control features such as for example like you already mentioned....

-> trigger various events like "play", "video of choice", "Loop"
-> safe var handling

Great work so far!
Excellent !
Top Bottom