Server to manage piSignage players in a LAN or Private Network
##Getting Started 1.Install mongodb
-
Ubuntu
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list sudo apt-get update sudo apt-get install -y mongodb-org
check for
/data/db
directory , If not found create usingsudo mkdir -p /data/db
and change the owner if needed using sudo chownUSERNAME
/data/db -
CentOS
echo -e "[mongodb-org-2.6] \nname=MongoDB 2.6 Repository \nbaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ \ngpgcheck=0 \nenabled=1" | sudo tee /etc/yum.repos.d/mongodb-org-2.6.repo sudo yum install -y mongodb-org
check for
/data/db
directory , If not found create usingsudo mkdir -p /data/db
and and change the owner if needed using sudo chownUSERNAME
/data/db -
Mac
Please use Homebrew
brew update brew install mongodb
check for
/data/db
directory , If not found create usingsudo mkdir -p /data/db
and and change the owner if needed using sudo chownUSERNAME
/data/db -
Windows
Please refere here
For More info please refer here
2.Install node.js and npm
In some installations there is another program called node, be sure to install nodejs. If other node program is laready installed you can find out by node --version command, it will not output anything. Uninstall the node program in that case
-
Ubuntu
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash - sudo apt-get install -y nodejs
-
CentOS
sudo yum install -y epel-release sudo yum install -y nodejs sudo yum install -y npm sudo yum install -y git
-
Mac
brew install node
You may be asked to run above command as super user. If asked please do so.
-
Windows
get .msi from here
-
For more info on node installation, please refer here
3.Install ffmpeg
-
Ubuntu
sudo apt-get update sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev \ libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \ libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev mkdir ~/ffmpeg_sources cd ~/ffmpeg_sources sudo apt-get install yasm sudo apt-get install libx264-dev cd ~/ffmpeg_sources wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master tar xzvf fdk-aac.tar.gz cd mstorsjo-fdk-aac* autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared make make install make distclean cd ~/ffmpeg_sources wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 tar xjvf ffmpeg-snapshot.tar.bz2 cd ffmpeg PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ > --prefix="$HOME/ffmpeg_build" \ > --pkg-config-flags="--static" \ > --extra-cflags="-I$HOME/ffmpeg_build/include" \ > --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ > --bindir="$HOME/bin" \ > --enable-gpl \ > --enable-libass \ > --enable-libfdk-aac \ > --enable-libfreetype \ > --enable-libtheora \ > --enable-libvorbis \ > --enable-libx264 \ > --enable-nonfree PATH="$HOME/bin:$PATH" make make install make distclean hash -r
Create a symboloic for ffprobe and ffmpeg (could be in /usr/local/bin or ~/bin)
sudo ln -s ~/bin/ffmpeg /usr/local/bin/ffmpeg (or the directory where ffmpeg/ffprobe programs are created) sudo ln -s ~/bin/ffprobe /usr/local/bin/ffprobe (or the directory where ffmpeg/ffprobe programs are created)
-
Mac
-
brew install ffmpeg
You may be asked to run above command as root user
4.Install imagemagik
-
Ubuntu
sudo apt-get install imagemagick
-
Mac
brew install imagemagick
5.Clone this reporsitory and run follwing commands
git clone https://github.com/colloqi/pisignage-server
cd pisignage-server
npm install
6.Currently network port is configured as 3000 in local server. Modify in the file config/env/development.js
for the port
7.Run node server with sudo node server.js
8.Open Chrome browser and check at http://localhost:3000 OR http://[your-ip]:3000
(ex: 192.168.1.30:3000, 10.50.16.110:3000)
NOTE: Please make sure mongod process is running and /data/db owenership is changed to regular user. If not use, sudo chown -R your-username:user-group /data
###Configure Pi
-
Download the pisignage player software here
-
Once installed and Powered-ON Configure admin and media server to your local address and port using one of the below methods
a. Using the webUI of the player at http://:8000/settings
b. Connect Keyboard and press Ctrl-N or F6
- Change config and media server to
http://[your server ip]:port
(ex: 192.168.1.30:3000, 10.50.16.110:3000) - Open terminal
ctrl+Alt+ t
and delete any existing _config.json and _settings.json file from/home/pi/piSignagePro/config
directory
c. Connect through ssh
- Edit
/home/pi/piSignagePro/package.json
for admin and media server configuration - delete any existing _config.json and _settings.json file from
/home/pi/piSignagePro/config
directory
- Change config and media server to
##Features
1.Player management
- Auto discovery of players in a network
- Monitor Players
2.Group management - create groups and assign players to groups
- Display settings - 1080p/720p and landscape or portrait mode
- Deploy default playlist, scheduled playlists and advt playlist
- Assign Players to Groups
3.Assets Management
- Upload assets (video,mp3,html/zip,images, links, google calendar feed)
- Videos are automatically converted to mp4 using ffmpeg
- Thumbnail creation for videos and video metadat extraction to store in data base
- Add labels to manage assets
- View Details of files
- rename or delete files
- view assets locally
- auto label creation for uploaded time (in coming releases)
4.Playlist management
- Create, rename or delete playlists
- Assign assets & drag to change order
- assign duration for non-video assets
- select a layout to show (1,2a,2b,3a,3b,4,4b,2ab)
- Enable ticker & set Ticker text
- Make it ad playlist with configurable interval timer
5.Reports & Logs
- Not planned (Feature requests welcome)
###Points to remember
1.angularjs-dropdown-multiselect is taken directly from
https://github.com/dotansimha/angularjs-dropdown-multiselect/pull/23/files instead of bower (for close-on-select to work)
2.Requires following programs to work
- ffmpeg >= 0.9 (in certain Os, these may have to be compiled since the package does not exist,
please see the issue #9, it is not that scary!)
- ffprobe associated with ffmpeg needed to convert videos
- imagemagick creates thumbnails
3.Two directories are created by the program ../media and ../media/_thumbnails. If these directories are not created server won't work as expected (for e.g. thumbnails won't be created if _thumbnails directory does not exit). In that case create those directories manually.
####You can also manage players using Browser(http://playerip:8000) or downloading Chrome app
####The code is still in early release, Please raise an issue for problems or send an email to [email protected]