xuv's notebook

Side notes, howtos and random bits of information related to Julien Deswaef's projects

User Tools

Site Tools


projects:raspivj

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projects:raspivj [2014/06/05 21:26] Julien Deswaefprojects:raspivj [2015/03/17 01:04] (current) – [Specs] Julien Deswaef
Line 3: Line 3:
 //A long lasting idea (first occurence was during residency of the Metahub Nuit Blanche in Brussels) trying to come to life out of necessity.// //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 VJ plateform+**Concept:** use the Raspberry Pi as a lightweight, portable, plug and play VJ plateform
  
-//Sure, why not. It's cheap, light weight, small, has RCA or HDMI output, can play h264 HD videos, works already well as a media center,…//+//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 [[http://pocketvj.com/|PocketVJ]] which has opened my eyes on the web interface to control the videos and by showing the way to do things. A lot of credit has to be given to [[http://pocketvj.com/|PocketVJ]] which has opened my eyes on the web interface to control the videos and by showing the way to do things.
  
-===== Set Up ===== 
  
 +
 +===== Concept =====
 +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.
 +
 +Features:
 +  * Videos play in loop
 +  * Crossfade or cut between two videos
 +  * Fade to/from black
 +  * A grid of thumbnails displays the list of videos available. A click on a thumbnail selects and playx the video.
 +  * Plays videos up to 720p, but for better reactivity, better stay slightly under a PAL format
 +
 +Planned features:
 +  * Create and run playlists
 +  * "orverlay" filters and effects like darken, lighten, color burn, greyscale, red, green, blue,...
 +  *  Manage videos (upload, remove, etc...) 
 +
 +===== Use cases =====
 +
 +The RasPIVJ has already been used in a public performance with the band [[http://www.leftaobuddha.com/|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.
 +===== Specs =====
 === oF === === oF ===
 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. 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.
Line 20: Line 47:
   * osc   * osc
  
 +== How to install latest Node on the RPi ==
 +http://node-arm.herokuapp.com/
  
-===== References: =====+===== Download ===== 
 + 
 +All files will be published on http://github.com/xuv/RasPiVJ 
 + 
 +===== How to convert your videos fro the RasPiVJ ===== 
 +  
 +=== FFMPEG === 
 +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.// 
 + 
 + 
 +===== References =====
 Projects that already exist and other related tools. Projects that already exist and other related tools.
  
Line 44: Line 95:
   * https://github.com/jvcleave/ofxOMXPlayer   * https://github.com/jvcleave/ofxOMXPlayer
  
-=== FFMPEG === 
-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.// 
 ==== pyomxplayer ==== ==== pyomxplayer ====
 Python wrapper module around OMXPlayer for the Raspberry Pi. Python wrapper module around OMXPlayer for the Raspberry Pi.
projects/raspivj.1401996403.txt.gz · Last modified: 2014/06/05 21:26 by Julien Deswaef