A long lasting idea (first occurence was during residency of the Metahub Nuit Blanche in Brussels) trying to come to life out of necessity.
Concept: use the Raspberry Pi as a lightweight, portable, plug and play VJ plateform
Sure, why not. It's cheap, small, has RCA or HDMI output, can play h264 HD videos, works already well as a media center,…
A lot of credit has to be given to PocketVJ which has opened my eyes on the web interface to control the videos and by showing the way to do things.
The system consists of a video player with functionnalities usefull for VJing (crossfade between videos, fade to/from black, some “overlay” filtres,…) and an interface that can be accessed from any browser (for the versatility of tools that can connect to the Raspberry Pi).
After connecting the RasPiVJ to a screen and power supply, the whole system starts on boot. The VJ then connects via Wifi or RJ45 to the Raspberry with a laptop, a tablet or a phone to access the interface and start plaing videos.
The RasPIVJ has already been used in a public performance with the band Left Arm of Buddha.
This system could be used by any band, musician or performer who needs an easy to set-up video system that can be controlled and activated either by the musicians themselves, the sound or light engineer,…
The hdmi and rca output makes it an all purpose video tool that can connect to old or new projection or display equipment.
The system could also easily be extende to support multiple screens with multiple raspberries.
The setup involve a custom application developped in openFrameworks. It uses ofxOMXPlayer addon to display two video as a textures (this provides the ability to crossfade between the two textures and have seamless loop) and ofxOsc for communication with the web interface.
A webserver pushed by nodejs with modules:
All files will be published on http://github.com/xuv/RasPiVJ
ofxOMXPlayer works best with h264 videos with sound. Since I don't need sound, here's a command to add silence to a video. The parameters have to be in that order (especially for the mapping). If you already have an audio channel in your source video, it's better to not do any compression on the video codec (-vcodec copy) while swapping the existing audio channel with the silent one. If you don't have any prior sound, you can do video and audio compression at the same time.
ffmpeg -ar 48000 -ac 2 -f s16le -i /dev/zero -i video.mp4 -shortest \ -vcodec copy -acodec pcm_s16le -map 1:v -map 0:a output.mov
ffmpeg -ar 48000 -ac 2 -f s16le -i /dev/zero -i video.mp4 -shortest \ -s 1024x768 -vcodec libx264 -b 2000k -acodec pcm_s16le \ --map 1:v -map 0:a output.mov
ffmpeg -i video.avi -s 1024x768 -vcodec libx264 -b 2000k \ -acodec pcm_s16le output.mov
It's /dev/zero that produces silence.
Projects that already exist and other related tools.
A full featured VJ software by the great Pikilipita
The oF toolbox ported to Raspberry Pi and its addon to use the OpenMAX video capabilities with it.
Python wrapper module around OMXPlayer for the Raspberry Pi.
To install the latest version of NodeJS:
wget http://node-arm.herokuapp.com/node_latest_armhf.deb sudo dpkg -i node_latest_armhf.deb
A NodeJS framework. Requires Mongodb