All Projects → xuv → raspivj

xuv / raspivj

Licence: MIT license
Turn the Raspberry Pi into a portable lightweight VJ plateform

Programming Languages

C++
36643 projects - #6 most used programming language
HTML
75241 projects
CSS
56736 projects
GLSL
2045 projects
javascript
184084 projects - #8 most used programming language
QMake
1090 projects
shell
77523 projects

Projects that are alternatives of or similar to raspivj

System.Net.WebSockets.Client.Managed
Microsoft's managed implementation of System.Net.WebSockets.ClientWebSocket tweaked for use on Windows 7 and .NET 4.5
Stars: ✭ 41 (+51.85%)
Mutual labels:  websockets
spring-boot-chatrooms
Spring Boot chatroom with multiple rooms using STOMP over websockets.
Stars: ✭ 33 (+22.22%)
Mutual labels:  websockets
bitmex-client-websocket
🛠️ C# client for Bitmex websocket API
Stars: ✭ 60 (+122.22%)
Mutual labels:  websockets
diepssect
A public repo for hacky diep stuff - networking protocol, WebAssembly, memory editing, & physics
Stars: ✭ 26 (-3.7%)
Mutual labels:  websockets
py-graphql-client
Dead-simple GraphQL client with subscriptions over websockets
Stars: ✭ 36 (+33.33%)
Mutual labels:  websockets
channeled-dashboard
Repository for the talk `Building real time applications with Django and Channels`
Stars: ✭ 20 (-25.93%)
Mutual labels:  websockets
ofxPS3EyeGrabber
A Sony PS3 Eye Camera grabber for openFrameworks.
Stars: ✭ 83 (+207.41%)
Mutual labels:  openframeworks
showdown-battle-bot
Socket Battle Bot for Pokemon Showdown (http://pokemonshowdown.com/)
Stars: ✭ 19 (-29.63%)
Mutual labels:  websockets
Atmosph4rX
Atmosphere Framework version 4 for Reactive Streams
Stars: ✭ 34 (+25.93%)
Mutual labels:  websockets
anycable-client
AnyCable / Action Cable JavaScript client for web, Node.js & React Native
Stars: ✭ 40 (+48.15%)
Mutual labels:  websockets
ofxSpaceColonization
Space Colonization algorithm implementation in openFrameworks
Stars: ✭ 62 (+129.63%)
Mutual labels:  openframeworks
spring-websocket-angular6
Example for using Spring Websocket and Angular with Stomp Messaging
Stars: ✭ 18 (-33.33%)
Mutual labels:  websockets
docs
The official soketi documentation. 📡
Stars: ✭ 55 (+103.7%)
Mutual labels:  websockets
ofxVui
✨ Such Wow! View + GUI System for openFrameworks ✨
Stars: ✭ 48 (+77.78%)
Mutual labels:  openframeworks
soketi
Just another simple, fast, and resilient open-source WebSockets server. 📣
Stars: ✭ 2,202 (+8055.56%)
Mutual labels:  websockets
ImGui Widgets
my imgui widgets/skin including custom UI on openFrameworks
Stars: ✭ 24 (-11.11%)
Mutual labels:  openframeworks
ofxPubSubOsc
bind OSC messages and values with only writing tiny codes on setup once.
Stars: ✭ 72 (+166.67%)
Mutual labels:  openframeworks
wocket
A WebSocket library for Deno
Stars: ✭ 103 (+281.48%)
Mutual labels:  websockets
btc-ticker-esp8266
realtime bitcoin price on 7 segment display with arduino on esp8266
Stars: ✭ 18 (-33.33%)
Mutual labels:  websockets
ofxTimeMeasurements
OpenFrameworks add-on to easily measure execution times on different parts of your code.
Stars: ✭ 90 (+233.33%)
Mutual labels:  openframeworks

RaspiVJ

Turn the Raspberry Pi into a portable lightweight VJ plateform.

screenshot

Please note that this is in an early stage (alpha), so it lacks functionnality and might require patience to get it working. But I'll be happy to reply to your issues and help you in the best I can.

I've been running this app on a Raspberry Pi B bought in 2013. I would not try to run it on a Raspberry Pi A as it requires some RAM, but you could try to run it on a B+ or Pi2. But for the Pi2, I'm pretty sure the video player will need to be compiled again.

Any input, test or remark from you will help improve this application.

Installation

  • Have a fresh Raspbian system running on your SD card.
  • You have to set your RAM split to at least 128MB. You can use sudo raspi-config for that. (Iv'e set it up to 256MB)
  • Install latest Node.js (I'm using v0.12.0) http://node-arm.herokuapp.com/
  • Clone this repository in the /home/pi folder.
  • Go into raspivj/ folder and do npm install. This should install the necessary node modules.

I think that's all you'll need. Please tell me if there is something I'm missing. If you'd like to modify the video player (multiPlayer), you will need openFrameworks (I've used v0.8.4).

Manual

This is a rough manual. Since I've written this app mainly for my own use, there is things that are obvious for me and that correspond to the way I work live with videos. So don't hesitate to ask if there is someting unclear.

About the videos

This is where your work goes. Please note that at this stage of development, it's not very flexible. So to be certain that it will work as expected, be sure to follow all these guidelines.

  • All your videos should be in the videos/ folder. And only videos should be in that folder.
  • You will need to make thumbnails of your videos yourself and have them in the subfolder called thumbs/, inside the video/ folder.
    So yes, you read right, there is something else other that video files in that video/ folder. But it's only that thumbs/ folder.
    Be sure to name your thumbnails the same way you name your video files. It's important that all your videos have thumbnails.
    The app is quite stupid right now. It assumes that each video has a thumbnail and that the first thubmnail in the thumbs/ folder corresponds to the first video in the video/ folder.
  • Your videos need to be h264 encoded in a mov container with some sound (even if it's silence) for best results.
    Follow this short guide to convert your videos using FFmpeg
  • The resolution of your videos should not be higher than 1024px, although you might try a 720p. Don't try to go higher than that as it will certainly crash the player. For fast transitions and loading, keep it as low as possible.

Starting the app

The app is started like this:
node raspivj/raspivj.js

There is a raspivj.crontab file that you can use to start up the app everytime the Pi is booting. It' more convenient to use it that way, as you will only need a browser to start playing.
crontab raspivj/raspivj.crontab

To access the interface, you should know the IP of the Raspberry Pi. Then point a browser to this address:
http://ip-of-your-raspberry:3000

Using the app

The interface has a series of 'system' command on top. Then there is 2 large frames, called Player0 & Player1. They can be seen as 2 video channels and represent the videos actually playing. You can have up to two videos playing at the same time. Under all this, there is a serie of small thumbnails, representing the videos available in your video/ folder.

Once the interface (web page) is fully loaded in your browser, you can start looping videos:

  • Press the "Start video" button to launch the video player on the screen attached to the Raspberry Pi.
  • Press "Stop video" to stop the video player.
  • Press "Shutdown" to turn off the Pi.
  • Select "Player0" (or "Player1") by clicking the corresponding radio button. Now, clicking any thumbnail will load the corresponding video in that "channel" 0 (or 1, depending on your selection).
  • The horizontal slider allows to change the mix between the two channels (0 & 1). So when put at 50%, you can see both videos playing.
  • The vertical slider controls the "fade to black".
  • All sliders are know to be buggy and fuzzy. Will change/remove this in the future.
  • Clicking directly in the frame of Player0 or Playe1 will stop or start the video loaded in that channel. When the frame has a green border, video is playing. When the border is grey, video is not playing. When a video doesn't play, it's not shown.

Author

Julien Deswaef @xuv

TODO

  • Make an external config file for setting up the video folder
  • Rework the web interface (add icons,…)
  • Add shaders

Video examples

All videos in the video/ folder were downloaded from http://www.beeple-crap.com/resources.php
"These files are available under a sort of "open source" concept. They are intended for educational use but really can be used for whatever the fuck you want. You don't need to credit me for whatever commercial or non-commercial use you make of them, but if you could shout me a holla with any project that do come from them, I'd love to see it :)"

Further notes

http://w.xuv.be/projects/raspivj

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].