Giter VIP home page Giter VIP logo

pivt's Introduction

PiVT

PiVT is a VT playout server for Raspbery Pi, which wraps OMXPlayer to provide seamless(-ish) playback and network control. Written in Python.

Executes commands given over a network with a simple telnet interface (connect and press h <ENTER> for a list of the commands). A client, PiVTDesktop is available at https://github.com/YSTV/PiVTDesktop

Downloading PiVT

git clone git://github.com/YSTV/PiVT.git

Prerequisites

The YAML and pexpect modules for Python are required for PiVT. For Raspbian, run something like this to install them:

sudo apt-get install python-pexpect python-yaml

For smooth video playback, at least 128MB RAM must be assigned to the GPU, use raspi-config to configure this.

Configuration

Configuration can either be supplied on the command line or within a YAML configuration file. A sample, config.yaml, is provided.

To specify arguments with the command line, say python PiVT.py --help for a full listing of command line options. It is not possible to set some options (such as playlists) from the command line

Using PiVT

Ensure you can launch OMXPlayer and play a video correctly. Then do:

python PiVT.py --config config.yaml

Daemonise

sudo python PiVTDaemon.py start --config /absolute/path/to/file.yaml

This will start PiVT as a daemon and return immediately, it will run in the background

Changelog

v2.1.1 (13/08/2014)

  • Further stability improvement work to fix occasional video freeze (caused by omxplayer not shutting down correctly, now timeouts checked)
  • Log level improvements

v2.1.0 (01/08/2014)

  • Removed playlist feature as it was broken by Pi firmware updates
  • Migrated to showing a freeze-frame of video until started
  • Stability improvements

v2.0.1 (18/01/2014)

  • Added a more helpful error message when no stopvideo/playlist video could be loaded at all
  • Version number now shown as part of help output

v2.0 (16/01/2014)

  • Complete rewrite to hook OMXPlayer using pexpect and Python
  • Significantly increased stability and reduced random crashes, added error handling and recovery
  • Playlist can be set in config file in place of a single stop video - will loop continuously for digital signage applications unless overridden by network
  • Added auto mode to play next loaded video immediately instead of returning to playlist
  • Added seamless loop mode for stop videos which line up exactly, provided suitable OMXPlayer version installed (see above)
  • Added daemonisation system to run PiVT with console disconnected
  • File list now maintained internally and updated periodically, retrieval of list for clients is much faster
  • Bugs when changing file types now resolved
  • Configuration can be loaded from text file or set on command line
  • Reduced delays switching between videos
  • Added option to log to file

OMXPlayer

All credit to Edgar Hucek and Petr Baudis (and others!) for the underlying video playing software, see http://github.com/popcornmix/omxplayer

pivt's People

Contributors

agherzan avatar bendenoz avatar bengt avatar hackedd avatar huceke avatar julianscheel avatar maxnet avatar pasky avatar popcornmix avatar roel-gerrits avatar ryatkins avatar samdbmg avatar skgsergio avatar stasik0 avatar torarin avatar turingmachine avatar xavm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

samdbmg deedos

pivt's Issues

Stop video crashes after several hours

After a few hours the stop video fails to restart and the software locks up. This does not happen when playing a video on loop. This may be related to the specific video (YSTV_LogoRotate).

Switching playback between mp4 and mov files

When playing an mp4 file, then playing a mov file while the mp4 is still running (or vice verse) causes playback issues. Stopping and restarting the file resolves this, but is impractical for panicked VT ops when mistakes are made.

ERROR:Startup failed! This is definitely not good!

python PiVT.py --videofolder videos --config config.yaml

getting:

2014-01-17 17:39:52,344:INFO:PiVT starting up
2014-01-17 17:39:52,526:INFO:Setting up logging to pivtlog.log
2014-01-17 17:39:52,530:INFO:Configuration loaded
2014-01-17 17:39:52,534:INFO:Getting playlist item durations...
2014-01-17 17:39:52,730:ERROR:Startup failed! This is definitely not good!
Traceback (most recent call last):
File "/home/pi/src/PiVT/pivtgapless.py", line 77, in init
self._playing = self._load_internal(self._playlist[0][0],
IndexError: list index out of range
Traceback (most recent call last):
File "PiVT.py", line 186, in
main()
File "PiVT.py", line 143, in main
player = PiVTGaplessVideo(playlist, videofolder, omxcommands, omxpath, cleanloop)
File "/home/pi/src/PiVT/pivtgapless.py", line 94, in init
raise Exception
Exception

What shuld I do ?

File "/home/pi/PiVT/pivtgapless.py", line 90, in __init__

Hi got this error on a clean new install any ideas?

2014-06-01 18:22:33,133:INFO:Getting playlist item durations...
2014-06-01 18:22:37,409:ERROR:Failed to load the first two videos. Shutting down
2014-06-01 18:22:37,412:ERROR:Startup failed! This is definitely not good!
Traceback (most recent call last):
File "/home/pi/PiVT/pivtgapless.py", line 90, in init
raise Exception
Exception
2014-06-01 18:22:37,419:ERROR:Exception caught, shutting down

shared libriaries?

Hi,

I am fairly new to raspberry pi and linux in general. I really want to run the PiVT Server. I downloaded the binaries, but every time I go to run ./PiVT i get
error while loading shared libraries: libboost_system.so.1.49.0: cannot open shared object file: No such file or directory.

Any help would be appreciated.

Thanks,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.