• Stars
    star
    424
  • Rank 98,889 (Top 3 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Application to turn your Raspberry Pi into a dedicated looping video playback device, good for art installations, information displays, or just playing cat videos all day.

pi_video_looper

An application to turn your Raspberry Pi into a dedicated looping video playback device. Can be used in art installations, fairs, theatre, events, infoscreens, advertisements etc...

Works right out of the box, but also has a lot of customisation options to make it fit your use case. See the video_looper.ini configuration file for an overview of options.

If you miss a feature just post an issue here on Github. (https://github.com/adafruit/pi_video_looper)

Currently only the Legacy version of Raspberry Pi OS Lite is supported. You can download it from here: https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-legacy

For a detailed tutorial visit: https://learn.adafruit.com/raspberry-pi-video-looper/installation
There are also pre-compiled images available from https://videolooper.de (but they might not always contain the latest version of pi_video_looper)

Changelog

new in v1.0.12

  • date/time display option allows you to display the current date and time between the videos
  • added "back" keyboard shortcut to play previous file

v1.0.11

  • fixed skip bug with image_player
  • fixed possible dependency issue

new in v1.0.10

  • NEW PLAYER: "Image Player" (beta)
    Displays images in a slideshow instead of playing videos. Display duration and other options can be controlled via the "image_player" section in video_looper.ini
    All other settings, like background image, color, wait time, copy mode, keyboard shortcuts, etc. should work as expected
    Currently tested formats: jpg, gif, png (others might work also - you need to adapt the extensions setting)

new in v1.0.9

  • fixed: background image is reloaded in copymode without restart

new in v1.0.8

  • playlist resume option
    when enabled will resume last played file on restart
  • console output now has a timestamp for easier event tracking
  • Keyboard key for shutdown added ("p")

new in v1.0.7

  • huge improvements to CPU utilisation with keyboard_control enabled
  • better randomness for random playback

new in v1.0.6

  • Support for omxplayer ALSA sound output.
    Enabled by setting sound output for omxplayer to alsa in video_looper.ini. A new config key alsa.hw_device can be used to specify a non-default output device.
  • Support for ALSA hardware volume control.
    The new config keys alsa.hw_vol_file and alsa.hw_vol_control can be used to set the output device volume in a text file provided with the videos.
  • The sound_vol_file functionality can now be disabled by leaving the config value empty.

new in v1.0.5

  • Support for M3U playlists.
    To be enabled by specifying a playlist path in config key playlist.path. It can be absolute, or relative to the file_reader's search directories (directory: path given, usb_drive: all USB drives' root).
    Paths in the playlist can be absolute, or relative to the playlist's path.
    Playlists can include a title for each item (#EXTINF directive); see next point. If something goes wrong with the playlist (file not found etc.) it will fall back to just play all files in the file_reader directory. (enable console_output for more info)

  • Support for video titles (omxplayer only).
    Can display a text on top of the videos.
    To be enabled by config key omxplayer.show_titles. Without a playlist file, titles are simply the videos' filename (without extension).
    If an M3U playlist is used, then titles come from the playlist instead.

    An easy way to create M3U files is e.g. VLC. For an example M3U file see assets/example.m3u

new in v1.0.4

  • new keyboard shortcut "k"
    skips the playback of current video (if a video is set to repeat it only skips one iteration)
  • new keyboard shortcut "s" stops the current playback. pressing s again starts the playback
  • reworked shortcut handling

new in v1.0.3

  • major new feature: copymode
    files will be copied from the usb stick to the player (with fancy progress bar)
    you can choose if the current files should be deleted beforehand (replace mode is default) or if files from the stick should be added (add mode)
    the copymode is protected with a "password" which is represented with a file on the drive (set it via the video_looper.ini for more infos see "copymode explained below"

  • advanced playlist feature: add _repeat_Nx to any filename (N is a positive integer) and file will be looped that many times (additional infos see below)

  • added reload.sh to restart the looper and reload the settings from the ini

new in v1.0.2:

  • in directory mode the directory is now monitored; if the number of files changes the playlist is regenerated (useful if the folder is filled e.g. via a network share)
  • some defaults have changed
  • new option for the countdown time (default is now 5 seconds)
  • new option for a wait time between videos (default is 0 seconds)
  • tweaks to the install script (skip the build of hello_video by using (sudo ./install.sh no_hello_video))
  • cleanup of the directory structure
  • added enable.sh analogous to disable.sh
  • added ntfs and exfat support for the usb drive

new in v1.0.1:

  • reworked for python3
  • keyboard control (quitting the player)
  • option for displaying an image instead of a blank screen between videos

How to install

sudo apt-get install git
git clone https://github.com/adafruit/pi_video_looper
cd pi_video_looper
sudo ./install.sh

Default player is omxplayer. Use the no_hello_video flag to install without the hello_video player (a lot faster to install):
sudo ./install.sh no_hello_video

Features and settings

To change the settings of the video looper (e.g. random playback, copy mode, advanced features) edit the /boot/video_looper.ini file, i.e. by quitting the player with 'ESC' and logging in to the Raspberry with an attached keyboard, or remotely via ssh. Then edit the configuration file with sudo nano /boot/video_looper.ini.

Alternatively insert the SD card into your computer and edit it with your preferred text editor.

copymode explained:

By default, the looper plays any video files from a USB drive in alphabetical order. With copymode, you only need a USB drive once, to copy the video files directly onto the RPi's SD card. Once enabled in the video_looper.ini, all files from an attached USB drive are copied onto the RPi. A progress bar shows you, well, the progress of the operation.

To protect the player from unauthorised access you need to create a file on the drive called "videopi". The extension doesn't matter. This file acts as a password. (The wording of this "password" can be changed in the video_looper.ini)

You might also want to decide if new files on the drive should replace existing files or get added. "Replace" means that any existing videofiles on the RPi get deleted, and only the new files remain.
This setting can be overruled by placing a file named "replace" or "add" on the drive.
The default mode is "replace".

Note: files with the same name always get overwritten.

notable things:

  • you can have one video repeated X times before playing the next by adding _repeat_Nx to the filename of a video, where N is a positive number

    • with hello_video there is no gap when a video is repeated but there is a small gap between different videos
    • with omxplayer there will also be a short gap between the repeats
  • if you have only one video then omxplayer will also loop seamlessly (and with audio)

  • to reduce the wear of the SD card and potentially extend the lifespan of the player, you could enable the overlay filesystem via raspi-config and select Performance Options->Overlay Filesystem

keyboard commands:

The following keyboard commands are active by default (can be disabled in the video_looper.ini):

  • "ESC" - stops playback and exits video_looper
  • "k" - sKip - stops the playback of current file and plays next file
  • "b" - Back - stops the playback of current file and plays previous file
  • "s" - Stop/Start - stops or starts playback of current file
  • "p" - Power off - stop playback and shutdown RPi

troubleshooting:

  • nothing happening (screen flashes once) when in copymode and new drive is plugged in?
    • check if you have the "password file" on your drive (see copymode explained above)
  • log output can be found in /var/log/supervisor/. Enable detailed logging in the video_looper.ini with console_output = true.
    Use sudo tail -f /var/log/supervisor/video_looper-stdout* and sudo tail -f /var/log/supervisor/video_looper-stderr* to view the logs.

More Repositories

1

Adafruit_NeoPixel

Arduino library for controlling single-wire LED pixels (NeoPixel, WS2812, etc.)
C++
2,862
star
2

Adafruit-GFX-Library

Adafruit GFX graphics core Arduino library, this is the 'core' class that all our other graphics libraries derive from
C
2,111
star
3

DHT-sensor-library

Arduino library for DHT11, DHT22, etc Temperature & Humidity Sensors
C++
1,835
star
4

Fritzing-Library

Adafruit parts, components, breakouts, etc...in Fritzable format!
1,605
star
5

Adafruit_SSD1306

Arduino library for SSD1306 monochrome 128x64 and 128x32 OLEDs
C++
1,587
star
6

Adafruit-Raspberry-Pi-Python-Code

Adafruit library code for Raspberry Pi
1,414
star
7

Adafruit_Python_DHT

Python library to read the DHT series of humidity and temperature sensors on a Raspberry Pi or Beaglebone Black.
C
1,091
star
8

Adafruit-Eagle-Library

Slowly building up a collection of parts we use here ... This file includes some library parts from microbuilder.eu Most of 'em are either Eagle parts that I've changed a little to make them easier to solder, some are 'handmade' and a few are from microbuilder.eu Its released into the Public Domain - that means you can do whatever you want. We'd like it if you kept the author email/url in the part description, just so we can be alerted if there are errors. Enjoy!
1,005
star
9

Adafruit_Learning_System_Guides

Programs and scripts to display "inline" in Adafruit Learning System guides
C
952
star
10

Adafruit_Sensor

Common sensor library
C++
887
star
11

Adafruit-Pi-Finder

Find and set up your brand new Raspberry Pi
JavaScript
844
star
12

Adafruit_CAD_Parts

CAD files for various boards, components and parts
SMT
829
star
13

RTClib

A fork of Jeelab's fantastic RTC Arduino library
C++
760
star
14

Adafruit_CircuitPython_Bundle

A bundle of useful CircuitPython libraries ready to use from the filesystem.
Shell
737
star
15

awesome-circuitpython

A curated list of awesome CircuitPython guides, videos, libraries, frameworks, software and resources.
593
star
16

Adafruit_nRF52_Arduino

Adafruit code for the Nordic nRF52 BLE SoC on Arduino
C
588
star
17

Adafruit_MQTT_Library

Arduino library for MQTT support
C++
541
star
18

Adafruit_Python_SSD1306

Python library to use SSD1306-based 128x64 or 128x32 pixel OLED displays with a Raspberry Pi or Beaglebone Black.
Python
519
star
19

Adafruit-ST7735-Library

This is a library for the Adafruit 1.8" SPI display http://www.adafruit.com/products/358 and http://www.adafruit.com/products/618
C++
495
star
20

Adafruit-WebIDE

This is a simple editor to be used on the Raspberry Pi (or anywhere?).
JavaScript
474
star
21

adafruit-beaglebone-io-python

Adafruit's BeagleBone IO Python Library
C
465
star
22

Adafruit_GPS

An interrupt-based GPS Arduino library for no-parsing-required use
C++
450
star
23

Adafruit-PWM-Servo-Driver-Library

Adafruit PWM Servo Driver Library
C++
436
star
24

Adafruit_TinyUSB_Arduino

Arduino library for TinyUSB
C
432
star
25

Adafruit-PN532

Arduino library for SPI and I2C access to the PN532 RFID/Near Field Communication chip
C++
397
star
26

Adafruit_nRF52_Bootloader

USB-enabled bootloaders for the nRF52 BLE SoC chips
C
394
star
27

Adafruit_Python_GPIO

DEPRECATED! Please use Adafruit Blinka instead (was: Library to provide a cross-platform GPIO interface on the Raspberry Pi and Beaglebone Black using the RPi.GPIO and Adafruit_BBIO libraries.)
Python
393
star
28

Adafruit_Python_BluefruitLE

Python library to simplify access to Bluetooth low energy devices and services on Linux (using bluez) and Mac OSX.
Python
390
star
29

Adafruit-PCD8544-Nokia-5110-LCD-library

Arduino driver for PC8544, most commonly found in small Nokia 5110's
C++
385
star
30

Adafruit_Blinka

Add CircuitPython hardware API and libraries to MicroPython & CPython devices
Python
384
star
31

Adafruit-Fingerprint-Sensor-Library

Arduino library for interfacing to the fingerprint sensor in the Adafruit shop
C++
364
star
32

Adafruit_ILI9341

Library for Adafruit ILI9341 displays
C++
357
star
33

Adafruit_CircuitPython_HID

USB Human Interface Device drivers.
Python
355
star
34

Adafruit-Retrogame

Raspberry Pi GPIO-to-virtual-keyboard utility for classic game emulators
C
348
star
35

Raspberry-Pi-Installer-Scripts

Shell
348
star
36

Adafruit-Motor-Shield-library

Adafruit Motor shield V1 firmware with basic Microstepping support. Works with all Arduinos and the Mega
C++
329
star
37

Adafruit-MCP23017-Arduino-Library

Arduino Library for Adafruit MCP23017
C++
322
star
38

Adafruit_BME280_Library

Arduino Library for BME280 sensors
C++
312
star
39

Adafruit_BNO055

Unified sensor driver for the Adafruit BNO055 orientation sensor breakout
C++
308
star
40

TFTLCD-Library

Arduino library for 8-bit TFT LCDs such as ILI9325, ILI9328, etc
C
301
star
41

Adafruit-Thermal-Printer-Library

Arduino Library for Small Thermal Printers
C++
300
star
42

Reference-Cards

Business card-sized references for Arduino and basic electronics
294
star
43

Adafruit_LED_Backpack

Adafruit LED Backpack Library for our various LED backpacks.
C++
286
star
44

Adafruit_CircuitPython_NeoPixel

CircuitPython drivers for neopixels.
Python
277
star
45

RGB-matrix-Panel

Arduino library and example code for the 16x32 RGB matrix panels in the shop
C++
275
star
46

Adafruit_CC3000_Library

Library code for Adafruit's CC3000 WiFi breakouts &c
C++
270
star
47

Adafruit_ADS1X15

Driver for TI's ADS1015: 12-bit Differential or Single-Ended ADC with PGA and Comparator
C++
268
star
48

Adafruit_Python_PCA9685

Python code to use the PCA9685 PWM servo/LED controller with a Raspberry Pi or BeagleBone black.
Python
258
star
49

Adafruit_TouchScreen

Arduino library for 4-wire resistive touchscreens
C++
251
star
50

Adafruit_CircuitPython_SSD1306

Adafruit CircuitPython framebuf driver for SSD1306 or SSD1305 OLED displays. Not for use with displayio. See README.
Python
249
star
51

Adafruit_BMP280_Library

Arduino Library for BMP280 sensors
C++
230
star
52

Adafruit-BMP085-Library

A powerful but easy to use BMP085/BMP180 Arduino library
C++
223
star
53

Adafruit_SleepyDog

Arduino library to use the watchdog timer for system reset and low power sleep.
C++
218
star
54

Python-Thermal-Printer

Python
213
star
55

Adafruit_IO_Python

Adafruit IO Python Client Library
Python
213
star
56

LPD8806

Arduino library for LED strips and pixels using LPD8806 (and probably LPD8803/LPD8809)
C++
210
star
57

Adalight

Processing
210
star
58

Adafruit_Python_CharLCD

Python library for accessing Adafruit character LCDs from a Raspberry Pi or BeagleBone Black.
Python
208
star
59

Adafruit_BusIO

Arduino library for I2C & SPI abstractions
C++
206
star
60

Adafruit_FONA

Arduino library for the Adafruit FONA
C++
206
star
61

Adafruit-Trinket-USB

Arduino libraries allowing Trinket to act as USB devices
C
205
star
62

Bluefruit_LE_Connect

iOS app for use with Bluefruit Bluetooth LE breakout board
Swift
203
star
63

TinyWireM

I2C library for Trinket and Gemma, adapted from BroHogan's code on Arduino Playground
C++
196
star
64

Adafruit_Floppy

C++
193
star
65

Adafruit_BluefruitLE_nRF51

Arduino library for nRF51822-based Adafruit Bluefruit LE modules
C++
190
star
66

Adafruit_IO_Arduino

Arduino library to access Adafruit IO from WiFi, cellular, and ethernet modules.
C++
188
star
67

Adafruit-WS2801-Library

Arduino library for controlling strips/pixels using WS2801 driver chips
C++
185
star
68

Adafruit_INA219

INA219 Current Sensor
C++
181
star
69

Adafruit_AHRS

Arduino library for AHRS (Attitude and Heading Reference System) for Adafruit motion sensors
C++
175
star
70

Adafruit_Motor_Shield_V2_Library

Arduino library for Adafruit Motor Shield v2!
C++
171
star
71

AccelStepper

A small fork of AccelStepper v1.3 with AF_motor (Adafruit motor shield) support!
C++
167
star
72

Adafruit_NeoMatrix

Adafruit_GFX-compatible library for NeoPixel grids
C++
167
star
73

SD

fixes & updates to the Arduino SD library - totally in progress. works but in beta
C++
166
star
74

Adafruit_ESP8266

Example code for ESP8266 chipset
C++
165
star
75

RadioHead

A github'ified version of http://www.airspayce.com/mikem/arduino/RadioHead/
C++
164
star
76

Adafruit_CircuitPlayground

library for Circuit Playground board
C++
159
star
77

Raw-IR-decoder-for-Arduino

Take raw IR signal from a remote receiver and print out pulse lengths
C++
158
star
78

Bluefruit_LE_Connect_v2

iOS app for use with Bluefruit Bluetooth LE modules and dev boards from Adafruit (v2.0)
Swift
152
star
79

circuitpython-org

CircuitPython's website
HTML
141
star
80

MAX6675-library

Arduino library for interfacing with MAX6675 thermocouple amplifier
C++
136
star
81

CircuitPython_Community_Bundle

A bundle of useful CircuitPython libraries from the CircuitPython community.
Shell
134
star
82

Adafruit_TCS34725

Arduino library driver for Adafruit's TCS34725 RGB Color Sensor Breakout
C++
133
star
83

Adafruit-VC0706-Serial-Camera-Library

Library for VC0706-based Serial JPEG Cameras
C++
132
star
84

adafruit-bluefruit-le-desktop

Desktop application to interact with Bluefruit LE and other Bluetooth low energy devices on Mac OSX, Windows, and Linux.
JavaScript
131
star
85

Adafruit_VL53L0X

Arduino library for Adafruit VL53L0X
C++
131
star
86

Adafruit_NFCShield_I2C

I2C Driver for Adafruit's PN532-based NFC Shield
C++
128
star
87

awesome-feather

A curated list of awesome Feather form factor boards, guides, videos, libraries, software and resources.
127
star
88

Adafruit_CircuitPython_ADS1x15

CircuitPython drivers for the ADS1x15 series of ADCs.
Python
127
star
89

Adafruit_VS1053_Library

This is a Arduino library for the Adafruit VS1053 Codec Breakout and Music Maker Shields
C++
124
star
90

Adafruit_SPIFlash

Arduino library for external (Q)SPI flash device
C++
124
star
91

FreqShow

Raspberry Pi & PiTFT-based RTL-SDR frequency scanning and display tool.
Python
123
star
92

Adafruit_Adalink

Python wrapper for Segger's J-Link Commander & STMicro STLink V2 to flash various ARM MCUs
Python
122
star
93

FifteenStep

A general purpose Arduino MIDI sequencer library
C++
121
star
94

TV-B-Gone-kit

*Pew* *Pew* TV's are toast!
C
120
star
95

Adafruit-MLX90614-Library

Arduino library for the MLX90614 sensors in the Adafruit shop
C++
117
star
96

Bluefruit_LE_Connect_Android

Android port of Adafruit's Bluefruit LE Connect app
Java
117
star
97

Adafruit_Python_BME280

Python Driver for the Adafruit BME280 Breakout
Python
116
star
98

Adafruit_CircuitPython_BLE

Bluetooth Low Energy (BLE) library for CircuitPython
Python
116
star
99

Adafruit_Python_ADS1x15

Python code to use the ADS1015 and ADS1115 analog to digital converters with a Raspberry Pi or BeagleBone black.
Python
114
star
100

circup

CircuitPython library updater.
Python
112
star